Populate the client website template with catalog feature flags.
Extract always-on public/portal/UTM plus optional email_sms, directmail, blog, payments, social, and social_ai so new client sites can be bootstrapped from this seed. Refs #1 Refs #2 Co-authored-by: Cursor <cursoragent@cursor.com>
No files matched your search
@@ -0,0 +1,9 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from accounts.models import RealtorProfile
|
||||
|
||||
|
||||
@admin.register(RealtorProfile)
|
||||
class RealtorProfileAdmin(admin.ModelAdmin):
|
||||
list_display = ("user", "display_name", "phone")
|
||||
search_fields = ("user__username", "display_name")
|
||||
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class AccountsConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "accounts"
|
||||
@@ -0,0 +1,33 @@
|
||||
# Generated by Django 6.1 on 2026-08-26 11:38
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='RealtorProfile',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('display_name', models.CharField(blank=True, max_length=120)),
|
||||
('phone', models.CharField(blank=True, max_length=32)),
|
||||
('title', models.CharField(blank=True, max_length=120)),
|
||||
('bio', models.TextField(blank=True)),
|
||||
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='realtor_profile', to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
|
||||
from core.models import TimeStampedModel
|
||||
|
||||
|
||||
class RealtorProfile(TimeStampedModel):
|
||||
user = models.OneToOneField(
|
||||
settings.AUTH_USER_MODEL,
|
||||
on_delete=models.CASCADE,
|
||||
related_name="realtor_profile",
|
||||
)
|
||||
display_name = models.CharField(max_length=120, blank=True)
|
||||
phone = models.CharField(max_length=32, blank=True)
|
||||
title = models.CharField(max_length=120, blank=True)
|
||||
bio = models.TextField(blank=True)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.display_name or self.user.get_username()
|
||||
@@ -0,0 +1,42 @@
|
||||
{% load static %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Sign in · Portal · {{ SITE_NAME }}</title>
|
||||
<link rel="icon" href="{% static 'brand/favicon-32.png' %}" type="image/png">
|
||||
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Work+Sans:300,400,500,700%7CPoppins:400,600,700">
|
||||
<link rel="stylesheet" href="{% static 'css/portal.css' %}">
|
||||
</head>
|
||||
<body class="portal">
|
||||
<div class="login-wrap">
|
||||
<div class="login-card">
|
||||
<h1>{{ SITE_NAME }} portal</h1>
|
||||
<p class="sub">{{ SITE_TAGLINE }}</p>
|
||||
<p class="sub" style="margin-top:0;margin-bottom:16px;font-size:13px">Leads, campaigns, and social — one place.</p>
|
||||
{% if form.errors %}
|
||||
<ul class="portal-flash">
|
||||
<li class="error">Invalid email or password.</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
<form class="form-grid" method="post" action="{% url 'accounts:login' %}">
|
||||
{% csrf_token %}
|
||||
{% if next %}<input type="hidden" name="next" value="{{ next }}">{% endif %}
|
||||
<div class="field">
|
||||
<label for="id_username">Email</label>
|
||||
<input id="id_username" type="text" name="username" autocomplete="username" required value="{{ form.username.value|default:'' }}">
|
||||
</div>
|
||||
<div class="field">
|
||||
<label for="id_password">Password</label>
|
||||
<input id="id_password" type="password" name="password" autocomplete="current-password" required>
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit" data-tianji-event="login_submit">Sign in</button>
|
||||
</form>
|
||||
<p style="margin-top:16px;font-size:13px;color:#6b7280">
|
||||
<a href="{% url 'public:home' %}">← Back to site</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,17 @@
|
||||
from django.contrib.auth import views as auth_views
|
||||
from django.urls import path
|
||||
|
||||
app_name = "accounts"
|
||||
|
||||
urlpatterns = [
|
||||
path(
|
||||
"login/",
|
||||
auth_views.LoginView.as_view(template_name="accounts/login.html"),
|
||||
name="login",
|
||||
),
|
||||
path(
|
||||
"logout/",
|
||||
auth_views.LogoutView.as_view(),
|
||||
name="logout",
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from analytics.models import Attribution, PageView, UTMVisit
|
||||
|
||||
|
||||
@admin.register(PageView)
|
||||
class PageViewAdmin(admin.ModelAdmin):
|
||||
list_display = ("path", "created_at")
|
||||
list_filter = ("created_at",)
|
||||
search_fields = ("path",)
|
||||
date_hierarchy = "created_at"
|
||||
readonly_fields = ("id", "path", "created_at", "updated_at")
|
||||
|
||||
|
||||
@admin.register(UTMVisit)
|
||||
class UTMVisitAdmin(admin.ModelAdmin):
|
||||
list_display = ("utm_source", "utm_campaign", "path", "created_at")
|
||||
search_fields = ("utm_source", "utm_campaign", "correlation_id")
|
||||
|
||||
|
||||
@admin.register(Attribution)
|
||||
class AttributionAdmin(admin.ModelAdmin):
|
||||
list_display = ("lead", "utm_source", "utm_campaign", "created_at")
|
||||
@@ -0,0 +1,17 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class AnalyticsConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "analytics"
|
||||
|
||||
def ready(self):
|
||||
from core.registry import register_portal_nav
|
||||
|
||||
register_portal_nav(
|
||||
section="analytics",
|
||||
label="Analytics",
|
||||
url_name="analytics:report",
|
||||
group="Overview",
|
||||
order=30,
|
||||
)
|
||||
@@ -0,0 +1,106 @@
|
||||
import logging
|
||||
|
||||
from django.utils.crypto import get_random_string
|
||||
|
||||
from analytics.models import Attribution, PageView, UTMVisit
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
CORRELATION_COOKIE = "ms_cid"
|
||||
|
||||
# Portal, auth, health, assets, and transactional public endpoints.
|
||||
_SKIP_PREFIXES = (
|
||||
"/portal/",
|
||||
"/admin/",
|
||||
"/accounts/",
|
||||
"/api/",
|
||||
"/healthz",
|
||||
"/static/",
|
||||
"/media/",
|
||||
"/unsubscribe/",
|
||||
)
|
||||
_SKIP_PATHS = frozenset({"/robots.txt", "/sitemap.xml", "/favicon.ico"})
|
||||
|
||||
|
||||
class PublicPageViewMiddleware:
|
||||
"""Record successful GET hits on public marketing pages."""
|
||||
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
response = self.get_response(request)
|
||||
if _should_record_page_view(request, response):
|
||||
try:
|
||||
PageView.objects.create(path=request.path[:512])
|
||||
except Exception:
|
||||
logger.exception("Failed to record page view for %s", request.path)
|
||||
return response
|
||||
|
||||
|
||||
def _should_record_page_view(request, response) -> bool:
|
||||
if request.method != "GET":
|
||||
return False
|
||||
if getattr(response, "status_code", 0) != 200:
|
||||
return False
|
||||
path = request.path
|
||||
if path in _SKIP_PATHS:
|
||||
return False
|
||||
return not any(path.startswith(prefix) for prefix in _SKIP_PREFIXES)
|
||||
|
||||
|
||||
class UTMTrackingMiddleware:
|
||||
"""Capture UTM params into UTMVisit and stash a correlation id cookie."""
|
||||
|
||||
def __init__(self, get_response):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
cid = request.COOKIES.get(CORRELATION_COOKIE) or get_random_string(32)
|
||||
request.utm_correlation_id = cid
|
||||
|
||||
params = request.GET
|
||||
has_utm = any(params.get(k) for k in (
|
||||
"utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content"
|
||||
))
|
||||
if has_utm or params.get("utm_source"):
|
||||
UTMVisit.objects.create(
|
||||
correlation_id=cid,
|
||||
path=request.path[:512],
|
||||
referrer=(request.META.get("HTTP_REFERER") or "")[:1024],
|
||||
utm_source=params.get("utm_source", "")[:128],
|
||||
utm_medium=params.get("utm_medium", "")[:128],
|
||||
utm_campaign=params.get("utm_campaign", "")[:128],
|
||||
utm_term=params.get("utm_term", "")[:128],
|
||||
utm_content=params.get("utm_content", "")[:128],
|
||||
user_agent=(request.META.get("HTTP_USER_AGENT") or "")[:512],
|
||||
)
|
||||
|
||||
response = self.get_response(request)
|
||||
if CORRELATION_COOKIE not in request.COOKIES:
|
||||
response.set_cookie(
|
||||
CORRELATION_COOKIE,
|
||||
cid,
|
||||
max_age=60 * 60 * 24 * 30,
|
||||
samesite="Lax",
|
||||
)
|
||||
return response
|
||||
|
||||
|
||||
def attribute_lead_from_request(request, lead) -> Attribution | None:
|
||||
cid = getattr(request, "utm_correlation_id", None) or request.COOKIES.get(
|
||||
CORRELATION_COOKIE
|
||||
)
|
||||
visit = None
|
||||
if cid:
|
||||
visit = (
|
||||
UTMVisit.objects.filter(correlation_id=cid).order_by("-created_at").first()
|
||||
)
|
||||
return Attribution.objects.create(
|
||||
lead=lead,
|
||||
visit=visit,
|
||||
utm_source=visit.utm_source if visit else "",
|
||||
utm_medium=visit.utm_medium if visit else "",
|
||||
utm_campaign=visit.utm_campaign if visit else "",
|
||||
)
|
||||
@@ -0,0 +1,66 @@
|
||||
# Generated by Django 6.1 on 2026-08-26 11:38
|
||||
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('leads', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='UTMVisit',
|
||||
fields=[
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('correlation_id', models.CharField(db_index=True, max_length=64)),
|
||||
('path', models.CharField(blank=True, max_length=512)),
|
||||
('referrer', models.URLField(blank=True, max_length=1024)),
|
||||
('utm_source', models.CharField(blank=True, max_length=128)),
|
||||
('utm_medium', models.CharField(blank=True, max_length=128)),
|
||||
('utm_campaign', models.CharField(blank=True, max_length=128)),
|
||||
('utm_term', models.CharField(blank=True, max_length=128)),
|
||||
('utm_content', models.CharField(blank=True, max_length=128)),
|
||||
('user_agent', models.CharField(blank=True, max_length=512)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-created_at'],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='PageView',
|
||||
fields=[
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('path', models.CharField(db_index=True, max_length=512)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-created_at'],
|
||||
'indexes': [models.Index(fields=['created_at', 'path'], name='analytics_p_created_9e8b64_idx')],
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Attribution',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('utm_source', models.CharField(blank=True, max_length=128)),
|
||||
('utm_medium', models.CharField(blank=True, max_length=128)),
|
||||
('utm_campaign', models.CharField(blank=True, max_length=128)),
|
||||
('lead', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='attribution', to='leads.lead')),
|
||||
('visit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='analytics.utmvisit')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,52 @@
|
||||
from django.db import models
|
||||
|
||||
from core.models import TimeStampedModel, UUIDPrimaryKeyModel
|
||||
from leads.models import Lead
|
||||
|
||||
|
||||
class PageView(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
"""One successful GET of a public marketing page."""
|
||||
|
||||
path = models.CharField(max_length=512, db_index=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["-created_at"]
|
||||
indexes = [
|
||||
models.Index(fields=["created_at", "path"]),
|
||||
]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.path or "/"
|
||||
|
||||
|
||||
class UTMVisit(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
correlation_id = models.CharField(max_length=64, db_index=True)
|
||||
path = models.CharField(max_length=512, blank=True)
|
||||
referrer = models.URLField(blank=True, max_length=1024)
|
||||
utm_source = models.CharField(max_length=128, blank=True)
|
||||
utm_medium = models.CharField(max_length=128, blank=True)
|
||||
utm_campaign = models.CharField(max_length=128, blank=True)
|
||||
utm_term = models.CharField(max_length=128, blank=True)
|
||||
utm_content = models.CharField(max_length=128, blank=True)
|
||||
user_agent = models.CharField(max_length=512, blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"{self.utm_source or 'direct'} / {self.path}"
|
||||
|
||||
|
||||
class Attribution(TimeStampedModel):
|
||||
lead = models.OneToOneField(
|
||||
Lead, on_delete=models.CASCADE, related_name="attribution"
|
||||
)
|
||||
visit = models.ForeignKey(
|
||||
UTMVisit, null=True, blank=True, on_delete=models.SET_NULL
|
||||
)
|
||||
utm_source = models.CharField(max_length=128, blank=True)
|
||||
utm_medium = models.CharField(max_length=128, blank=True)
|
||||
utm_campaign = models.CharField(max_length=128, blank=True)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"attr {self.lead_id} ← {self.utm_source or 'direct'}"
|
||||
@@ -0,0 +1,3 @@
|
||||
"""Analytics services."""
|
||||
|
||||
from analytics.middleware import attribute_lead_from_request # noqa: F401
|
||||
@@ -0,0 +1,150 @@
|
||||
{% extends "portal_base.html" %}
|
||||
{% block title %}Analytics · Portal{% endblock %}
|
||||
{% block topbar_title %}Analytics{% endblock %}
|
||||
{% block portal_content %}
|
||||
<div class="analytics-overview">
|
||||
<div class="stat-card">
|
||||
<div class="label">Views (last 30 days)</div>
|
||||
<div class="value">{{ pageviews_last_30_days }}</div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>Top pages</h2><span class="muted" style="font-size:12px">Public visits, last 30 days</span></div>
|
||||
<div class="panel-b" style="padding:0">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Page</th>
|
||||
<th>Visits</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in top_pages %}
|
||||
<tr>
|
||||
<td>{{ row.path }}</td>
|
||||
<td>{{ row.count }}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="2" class="empty-state">No public page views in the last 30 days.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stat-row">
|
||||
<div class="stat-card">
|
||||
<div class="label">UTM landings</div>
|
||||
<div class="value">{{ total_visits }}</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="label">Attributed leads</div>
|
||||
<div class="value">{{ total_attributed }}</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="label">Top source</div>
|
||||
<div class="value" style="font-size:18px">{{ top_source|default:"—" }}</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="label">Top campaign</div>
|
||||
<div class="value" style="font-size:18px">{{ top_campaign|default:"—" }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>Landing volume by source</h2></div>
|
||||
<div class="panel-b">
|
||||
<div class="chart-placeholder">
|
||||
{% for row in visits_by_source|slice:":8" %}
|
||||
<div class="bar" style="height:{{ row.bar_pct }}%" title="{{ row.utm_source|default:'(direct)' }}: {{ row.count }}"></div>
|
||||
{% empty %}
|
||||
<div class="bar" style="height:12%"></div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>UTM landings</h2><span class="muted" style="font-size:12px">From ?utm_* hits</span></div>
|
||||
<div class="panel-b" style="padding:0">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Source</th>
|
||||
<th>Medium</th>
|
||||
<th>Campaign</th>
|
||||
<th>Landings</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in visits_by_combo %}
|
||||
<tr>
|
||||
<td>{{ row.utm_source|default:"(direct)" }}</td>
|
||||
<td>{{ row.utm_medium|default:"—" }}</td>
|
||||
<td>{{ row.utm_campaign|default:"—" }}</td>
|
||||
<td>{{ row.count }}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="4" class="empty-state">No UTM landings yet. Open a public URL with ?utm_source=…</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>Recent landings</h2></div>
|
||||
<div class="panel-b" style="padding:0">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>When</th>
|
||||
<th>Path</th>
|
||||
<th>Source</th>
|
||||
<th>Campaign</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for visit in recent_visits %}
|
||||
<tr>
|
||||
<td>{{ visit.created_at|date:"M j, g:i A" }}</td>
|
||||
<td>{{ visit.path }}</td>
|
||||
<td>{{ visit.utm_source|default:"—" }}</td>
|
||||
<td>{{ visit.utm_campaign|default:"—" }}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="4" class="empty-state">No visits recorded.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>Lead attribution</h2><span class="muted" style="font-size:12px">After contact-form submit</span></div>
|
||||
<div class="panel-b" style="padding:0">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Source</th>
|
||||
<th>Medium</th>
|
||||
<th>Campaign</th>
|
||||
<th>Leads</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in leads_by_combo %}
|
||||
<tr>
|
||||
<td>{{ row.utm_source|default:"(direct)" }}</td>
|
||||
<td>{{ row.utm_medium|default:"—" }}</td>
|
||||
<td>{{ row.utm_campaign|default:"—" }}</td>
|
||||
<td>{{ row.count }}</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="4" class="empty-state">No attributed leads yet — submit the contact form after a UTM landing.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,84 @@
|
||||
from datetime import timedelta
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.test import Client, TestCase
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from analytics.models import PageView, UTMVisit
|
||||
|
||||
|
||||
class PublicPageViewTests(TestCase):
|
||||
def setUp(self):
|
||||
self.client = Client()
|
||||
|
||||
def test_home_records_page_view(self):
|
||||
response = self.client.get("/")
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(PageView.objects.count(), 1)
|
||||
self.assertEqual(PageView.objects.get().path, "/")
|
||||
|
||||
def test_about_records_page_view(self):
|
||||
self.client.get(reverse("public:about"))
|
||||
self.assertEqual(PageView.objects.filter(path="/about/").count(), 1)
|
||||
|
||||
def test_plain_visit_does_not_create_utm_visit(self):
|
||||
self.client.get("/")
|
||||
self.assertEqual(PageView.objects.count(), 1)
|
||||
self.assertEqual(UTMVisit.objects.count(), 0)
|
||||
|
||||
def test_utm_hit_records_both(self):
|
||||
self.client.get("/?utm_source=test&utm_campaign=demo")
|
||||
self.assertEqual(PageView.objects.count(), 1)
|
||||
self.assertEqual(UTMVisit.objects.count(), 1)
|
||||
|
||||
def test_healthz_not_recorded(self):
|
||||
self.client.get("/healthz/")
|
||||
self.assertEqual(PageView.objects.count(), 0)
|
||||
|
||||
def test_portal_and_admin_not_recorded(self):
|
||||
self.client.get("/portal/")
|
||||
self.client.get("/admin/")
|
||||
self.assertEqual(PageView.objects.count(), 0)
|
||||
|
||||
def test_robots_and_sitemap_not_recorded(self):
|
||||
self.client.get("/robots.txt")
|
||||
self.client.get("/sitemap.xml")
|
||||
self.assertEqual(PageView.objects.count(), 0)
|
||||
|
||||
def test_missing_page_not_recorded(self):
|
||||
response = self.client.get("/not-a-real-page/")
|
||||
self.assertEqual(response.status_code, 404)
|
||||
self.assertEqual(PageView.objects.count(), 0)
|
||||
|
||||
def test_contact_post_not_recorded(self):
|
||||
self.client.post(reverse("public:contact"), {})
|
||||
self.assertEqual(PageView.objects.count(), 0)
|
||||
|
||||
|
||||
class AnalyticsReportTests(TestCase):
|
||||
def setUp(self):
|
||||
self.client = Client()
|
||||
user = get_user_model().objects.create_user(
|
||||
username="monica", password="pass-word-1"
|
||||
)
|
||||
self.client.force_login(user)
|
||||
|
||||
def test_views_card_uses_public_pageviews(self):
|
||||
self.client.get("/")
|
||||
self.client.get(reverse("public:about"))
|
||||
self.client.get(reverse("public:about"))
|
||||
stale = PageView.objects.create(path="/terms/")
|
||||
PageView.objects.filter(pk=stale.pk).update(
|
||||
created_at=timezone.now() - timedelta(days=31)
|
||||
)
|
||||
|
||||
response = self.client.get(reverse("analytics:report"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.context["pageviews_last_30_days"], 3)
|
||||
top = {row["path"]: row["count"] for row in response.context["top_pages"]}
|
||||
self.assertEqual(top["/about/"], 2)
|
||||
self.assertEqual(top["/"], 1)
|
||||
self.assertNotIn("/terms/", top)
|
||||
self.assertContains(response, "Top pages")
|
||||
self.assertContains(response, "/about/")
|
||||
@@ -0,0 +1,9 @@
|
||||
from django.urls import path
|
||||
|
||||
from analytics import views
|
||||
|
||||
app_name = "analytics"
|
||||
|
||||
urlpatterns = [
|
||||
path("", views.report, name="report"),
|
||||
]
|
||||
@@ -0,0 +1,79 @@
|
||||
from datetime import timedelta
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.db.models import Count
|
||||
from django.shortcuts import render
|
||||
from django.utils import timezone
|
||||
|
||||
from analytics.models import Attribution, PageView, UTMVisit
|
||||
|
||||
|
||||
def _bar_pct(rows, key="count"):
|
||||
max_count = max((row[key] for row in rows), default=1) or 1
|
||||
for row in rows:
|
||||
row["bar_pct"] = max(12, int(100 * row[key] / max_count))
|
||||
return rows
|
||||
|
||||
|
||||
@login_required
|
||||
def report(request):
|
||||
since_30d = timezone.now() - timedelta(days=30)
|
||||
pageviews_qs = PageView.objects.filter(created_at__gte=since_30d)
|
||||
pageviews_last_30_days = pageviews_qs.count()
|
||||
top_pages = list(
|
||||
pageviews_qs.values("path").annotate(count=Count("id")).order_by("-count")[:20]
|
||||
)
|
||||
|
||||
visits_by_source = _bar_pct(
|
||||
list(
|
||||
UTMVisit.objects.values("utm_source")
|
||||
.annotate(count=Count("id"))
|
||||
.order_by("-count")[:20]
|
||||
)
|
||||
)
|
||||
visits_by_combo = list(
|
||||
UTMVisit.objects.values("utm_source", "utm_medium", "utm_campaign")
|
||||
.annotate(count=Count("id"))
|
||||
.order_by("-count")[:50]
|
||||
)
|
||||
top_visit = visits_by_source[0] if visits_by_source else None
|
||||
top_visit_campaign = (
|
||||
UTMVisit.objects.exclude(utm_campaign="")
|
||||
.values("utm_campaign")
|
||||
.annotate(count=Count("id"))
|
||||
.order_by("-count")
|
||||
.first()
|
||||
)
|
||||
|
||||
leads_by_source = _bar_pct(
|
||||
list(
|
||||
Attribution.objects.values("utm_source")
|
||||
.annotate(count=Count("id"))
|
||||
.order_by("-count")[:20]
|
||||
)
|
||||
)
|
||||
leads_by_combo = list(
|
||||
Attribution.objects.values("utm_source", "utm_medium", "utm_campaign")
|
||||
.annotate(count=Count("id"))
|
||||
.order_by("-count")[:50]
|
||||
)
|
||||
|
||||
recent_visits = UTMVisit.objects.all()[:25]
|
||||
|
||||
return render(
|
||||
request,
|
||||
"analytics/report.html",
|
||||
{
|
||||
"pageviews_last_30_days": pageviews_last_30_days,
|
||||
"top_pages": top_pages,
|
||||
"total_visits": UTMVisit.objects.count(),
|
||||
"total_attributed": Attribution.objects.count(),
|
||||
"top_source": (top_visit or {}).get("utm_source") or "(direct)",
|
||||
"top_campaign": (top_visit_campaign or {}).get("utm_campaign") or "—",
|
||||
"visits_by_source": visits_by_source,
|
||||
"visits_by_combo": visits_by_combo,
|
||||
"leads_by_source": leads_by_source,
|
||||
"leads_by_combo": leads_by_combo,
|
||||
"recent_visits": recent_visits,
|
||||
},
|
||||
)
|
||||
@@ -0,0 +1,11 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from blog.models import Post
|
||||
|
||||
|
||||
@admin.register(Post)
|
||||
class PostAdmin(admin.ModelAdmin):
|
||||
list_display = ("title", "is_published", "published_at", "author", "updated_at")
|
||||
list_filter = ("is_published",)
|
||||
prepopulated_fields = {"slug": ("title",)}
|
||||
search_fields = ("title", "excerpt", "body")
|
||||
@@ -0,0 +1,12 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class BlogConfig(AppConfig):
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "blog"
|
||||
verbose_name = "Blog"
|
||||
|
||||
def ready(self):
|
||||
from blog import hooks
|
||||
|
||||
hooks.register()
|
||||
@@ -0,0 +1,18 @@
|
||||
from core.registry import register_feature, register_portal_nav, register_public_nav
|
||||
|
||||
|
||||
def register() -> None:
|
||||
register_feature("blog")
|
||||
register_public_nav(
|
||||
section="blog",
|
||||
label="Blog",
|
||||
url_name="blog:list",
|
||||
order=40,
|
||||
)
|
||||
register_portal_nav(
|
||||
section="blog",
|
||||
label="Blog posts",
|
||||
url_name="blog_portal:portal_list",
|
||||
group="Content",
|
||||
order=10,
|
||||
)
|
||||
@@ -0,0 +1,36 @@
|
||||
# Generated by Django 6.1 on 2026-08-26 11:38
|
||||
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Post',
|
||||
fields=[
|
||||
('created_at', models.DateTimeField(auto_now_add=True)),
|
||||
('updated_at', models.DateTimeField(auto_now=True)),
|
||||
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||||
('title', models.CharField(max_length=200)),
|
||||
('slug', models.SlugField(max_length=220, unique=True)),
|
||||
('excerpt', models.TextField(blank=True)),
|
||||
('body', models.TextField()),
|
||||
('is_published', models.BooleanField(default=False)),
|
||||
('published_at', models.DateTimeField(blank=True, null=True)),
|
||||
('author', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='blog_posts', to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-published_at', '-created_at'],
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,45 @@
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
from django.utils.text import slugify
|
||||
|
||||
from core.models import TimeStampedModel, UUIDPrimaryKeyModel
|
||||
|
||||
|
||||
class Post(UUIDPrimaryKeyModel, TimeStampedModel):
|
||||
title = models.CharField(max_length=200)
|
||||
slug = models.SlugField(max_length=220, unique=True)
|
||||
excerpt = models.TextField(blank=True)
|
||||
body = models.TextField()
|
||||
is_published = models.BooleanField(default=False)
|
||||
published_at = models.DateTimeField(null=True, blank=True)
|
||||
author = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
null=True,
|
||||
blank=True,
|
||||
on_delete=models.SET_NULL,
|
||||
related_name="blog_posts",
|
||||
)
|
||||
|
||||
class Meta:
|
||||
ordering = ["-published_at", "-created_at"]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.title
|
||||
|
||||
def get_absolute_url(self) -> str:
|
||||
return reverse("blog:detail", kwargs={"slug": self.slug})
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if not self.slug:
|
||||
base = slugify(self.title)[:200] or "post"
|
||||
slug = base
|
||||
n = 2
|
||||
while Post.objects.filter(slug=slug).exclude(pk=self.pk).exists():
|
||||
slug = f"{base}-{n}"
|
||||
n += 1
|
||||
self.slug = slug
|
||||
if self.is_published and self.published_at is None:
|
||||
self.published_at = timezone.now()
|
||||
super().save(*args, **kwargs)
|
||||
@@ -0,0 +1,12 @@
|
||||
from django.urls import path
|
||||
|
||||
from blog import views
|
||||
|
||||
app_name = "blog_portal"
|
||||
|
||||
urlpatterns = [
|
||||
path("", views.portal_list, name="portal_list"),
|
||||
path("new/", views.portal_edit, name="portal_new"),
|
||||
path("<uuid:pk>/", views.portal_edit, name="portal_edit"),
|
||||
path("<uuid:pk>/delete/", views.portal_delete, name="portal_delete"),
|
||||
]
|
||||
@@ -0,0 +1,10 @@
|
||||
from django.urls import path
|
||||
|
||||
from blog import views
|
||||
|
||||
app_name = "blog"
|
||||
|
||||
urlpatterns = [
|
||||
path("", views.post_list, name="list"),
|
||||
path("<slug:slug>/", views.post_detail, name="detail"),
|
||||
]
|
||||
@@ -0,0 +1,12 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ post.title }} · {{ SITE_NAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<section class="section section-lg">
|
||||
<div class="container">
|
||||
<p><a href="{% url 'blog:list' %}">← Blog</a></p>
|
||||
<h1>{{ post.title }}</h1>
|
||||
<p class="muted">{% if post.published_at %}{{ post.published_at|date:"F j, Y" }}{% endif %}</p>
|
||||
<div>{{ post.body|linebreaks }}</div>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,18 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Blog · {{ SITE_NAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<section class="section section-lg">
|
||||
<div class="container">
|
||||
<h1 class="text-uppercase">Blog</h1>
|
||||
{% for post in posts %}
|
||||
<article style="margin:0 0 32px">
|
||||
<h2><a href="{{ post.get_absolute_url }}">{{ post.title }}</a></h2>
|
||||
<p class="muted">{% if post.published_at %}{{ post.published_at|date:"F j, Y" }}{% endif %}</p>
|
||||
<p>{{ post.excerpt|default:post.body|truncatewords:40 }}</p>
|
||||
</article>
|
||||
{% empty %}
|
||||
<p>No posts yet.</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,20 @@
|
||||
{% extends "portal_base.html" %}
|
||||
{% block title %}{% if post %}Edit{% else %}New{% endif %} post · Portal{% endblock %}
|
||||
{% block topbar_title %}{% if post %}Edit post{% else %}New post{% endif %}{% endblock %}
|
||||
{% block portal_content %}
|
||||
<form method="post" class="form-grid">
|
||||
{% csrf_token %}
|
||||
<div class="field"><label>Title</label><input name="title" required value="{{ post.title|default:'' }}"></div>
|
||||
<div class="field"><label>Slug</label><input name="slug" value="{{ post.slug|default:'' }}" placeholder="auto from title"></div>
|
||||
<div class="field"><label>Excerpt</label><textarea name="excerpt" style="min-height:64px">{{ post.excerpt|default:'' }}</textarea></div>
|
||||
<div class="field"><label>Body</label><textarea name="body" required style="min-height:220px">{{ post.body|default:'' }}</textarea></div>
|
||||
<label><input type="checkbox" name="is_published" {% if post.is_published %}checked{% endif %}> Published</label>
|
||||
<button class="btn btn-primary" type="submit">Save</button>
|
||||
</form>
|
||||
{% if post %}
|
||||
<form method="post" action="{% url 'blog_portal:portal_delete' post.pk %}" style="margin-top:24px" onsubmit="return confirm('Delete this post?');">
|
||||
{% csrf_token %}
|
||||
<button class="btn btn-ghost" type="submit">Delete</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,20 @@
|
||||
{% extends "portal_base.html" %}
|
||||
{% block title %}Blog posts · Portal{% endblock %}
|
||||
{% block topbar_title %}Blog posts{% endblock %}
|
||||
{% block portal_content %}
|
||||
<p><a class="btn btn-primary" href="{% url 'blog_portal:portal_new' %}">New post</a></p>
|
||||
<table class="table">
|
||||
<thead><tr><th>Title</th><th>Status</th><th></th></tr></thead>
|
||||
<tbody>
|
||||
{% for post in posts %}
|
||||
<tr>
|
||||
<td><a href="{% url 'blog_portal:portal_edit' post.pk %}">{{ post.title }}</a></td>
|
||||
<td>{% if post.is_published %}Published{% else %}Draft{% endif %}</td>
|
||||
<td><a href="{{ post.get_absolute_url }}">View</a></td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="3" class="empty-state">No posts yet.</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,43 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.test import Client, TestCase
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from blog.models import Post
|
||||
|
||||
|
||||
class BlogPublicTests(TestCase):
|
||||
def test_list_hides_drafts(self):
|
||||
Post.objects.create(title="Draft", body="x", is_published=False)
|
||||
Post.objects.create(
|
||||
title="Live",
|
||||
body="hello",
|
||||
is_published=True,
|
||||
published_at=timezone.now(),
|
||||
)
|
||||
response = Client().get(reverse("blog:list"))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, "Live")
|
||||
self.assertNotContains(response, "Draft")
|
||||
|
||||
def test_portal_requires_login(self):
|
||||
response = Client().get(reverse("blog_portal:portal_list"))
|
||||
self.assertEqual(response.status_code, 302)
|
||||
|
||||
|
||||
class BlogPortalTests(TestCase):
|
||||
def setUp(self):
|
||||
User = get_user_model()
|
||||
self.user = User.objects.create_user("editor", password="test-pass-123")
|
||||
self.client = Client()
|
||||
self.client.login(username="editor", password="test-pass-123")
|
||||
|
||||
def test_create_published_post(self):
|
||||
response = self.client.post(
|
||||
reverse("blog_portal:portal_new"),
|
||||
{"title": "Hello", "body": "World", "is_published": "on"},
|
||||
)
|
||||
self.assertEqual(response.status_code, 302)
|
||||
post = Post.objects.get()
|
||||
self.assertTrue(post.is_published)
|
||||
self.assertEqual(post.slug, "hello")
|
||||
@@ -0,0 +1,64 @@
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.shortcuts import get_object_or_404, redirect, render
|
||||
from django.utils import timezone
|
||||
from django.utils.text import slugify
|
||||
from django.views.decorators.http import require_http_methods, require_POST
|
||||
|
||||
from blog.models import Post
|
||||
|
||||
|
||||
def post_list(request):
|
||||
posts = Post.objects.filter(is_published=True)
|
||||
return render(request, "blog/list.html", {"posts": posts})
|
||||
|
||||
|
||||
def post_detail(request, slug):
|
||||
post = get_object_or_404(Post, slug=slug, is_published=True)
|
||||
return render(request, "blog/detail.html", {"post": post})
|
||||
|
||||
|
||||
@login_required
|
||||
def portal_list(request):
|
||||
posts = Post.objects.all()
|
||||
return render(request, "blog/portal/list.html", {"posts": posts})
|
||||
|
||||
|
||||
@login_required
|
||||
@require_http_methods(["GET", "POST"])
|
||||
def portal_edit(request, pk=None):
|
||||
post = get_object_or_404(Post, pk=pk) if pk else None
|
||||
if request.method == "POST":
|
||||
title = (request.POST.get("title") or "").strip()
|
||||
body = (request.POST.get("body") or "").strip()
|
||||
excerpt = (request.POST.get("excerpt") or "").strip()
|
||||
slug = (request.POST.get("slug") or "").strip()
|
||||
is_published = request.POST.get("is_published") == "on"
|
||||
if not title or not body:
|
||||
messages.error(request, "Title and body are required.")
|
||||
else:
|
||||
if post is None:
|
||||
post = Post(author=request.user)
|
||||
post.title = title
|
||||
post.body = body
|
||||
post.excerpt = excerpt
|
||||
post.slug = slugify(slug)[:220] if slug else ""
|
||||
post.is_published = is_published
|
||||
if is_published and post.published_at is None:
|
||||
post.published_at = timezone.now()
|
||||
if not is_published:
|
||||
post.published_at = None
|
||||
post.save()
|
||||
messages.success(request, f'Saved “{post.title}”.')
|
||||
return redirect("blog_portal:portal_list")
|
||||
return render(request, "blog/portal/edit.html", {"post": post})
|
||||
|
||||
|
||||
@login_required
|
||||
@require_POST
|
||||
def portal_delete(request, pk):
|
||||
post = get_object_or_404(Post, pk=pk)
|
||||
title = post.title
|
||||
post.delete()
|
||||
messages.success(request, f'Deleted “{title}”.')
|
||||
return redirect("blog_portal:portal_list")
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
"""ASGI config for client_site."""
|
||||
|
||||
import os
|
||||
|
||||
from django.core.asgi import get_asgi_application
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "client_site.settings")
|
||||
|
||||
application = get_asgi_application()
|
||||
@@ -0,0 +1,12 @@
|
||||
"""Load environment-specific Django settings based on DJANGO_ENV."""
|
||||
|
||||
import os
|
||||
|
||||
_environment = os.environ.get("DJANGO_ENV", "dev").lower()
|
||||
|
||||
if _environment == "prod":
|
||||
from .prod import * # noqa: F403
|
||||
elif _environment == "beta":
|
||||
from .beta import * # noqa: F403
|
||||
else:
|
||||
from .dev import * # noqa: F403
|
||||
@@ -0,0 +1,381 @@
|
||||
"""Shared Django settings for all environments."""
|
||||
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
from urllib.parse import urlparse
|
||||
|
||||
BASE_DIR = Path(__file__).resolve().parent.parent.parent
|
||||
|
||||
|
||||
def env(key: str, default: str | None = None) -> str | None:
|
||||
return os.environ.get(key, default)
|
||||
|
||||
|
||||
def env_bool(key: str, default: bool = False) -> bool:
|
||||
value = os.environ.get(key)
|
||||
if value is None:
|
||||
return default
|
||||
return value.lower() in {"1", "true", "yes", "on"}
|
||||
|
||||
|
||||
def env_list(key: str, default: str = "") -> list[str]:
|
||||
value = os.environ.get(key, default)
|
||||
if not value:
|
||||
return []
|
||||
value = value.strip()
|
||||
if value.startswith("["):
|
||||
try:
|
||||
parsed = json.loads(value)
|
||||
except ValueError:
|
||||
parsed = None
|
||||
if isinstance(parsed, list):
|
||||
return [str(item).strip() for item in parsed if str(item).strip()]
|
||||
return [item.strip() for item in value.split(",") if item.strip()]
|
||||
|
||||
|
||||
def database_config() -> dict:
|
||||
database_url = env("DATABASE_URL")
|
||||
if database_url:
|
||||
parsed = urlparse(database_url)
|
||||
return {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.postgresql",
|
||||
"NAME": parsed.path.lstrip("/"),
|
||||
"USER": parsed.username or "",
|
||||
"PASSWORD": parsed.password or "",
|
||||
"HOST": parsed.hostname or "",
|
||||
"PORT": str(parsed.port or 5432),
|
||||
}
|
||||
}
|
||||
|
||||
if env("DB_HOST"):
|
||||
return {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.postgresql",
|
||||
"NAME": env("DB_NAME", "client_site"),
|
||||
"USER": env("DB_USER", "client_site"),
|
||||
"PASSWORD": env("DB_PASSWORD", ""),
|
||||
"HOST": env("DB_HOST"),
|
||||
"PORT": env("DB_PORT", "5432"),
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.sqlite3",
|
||||
"NAME": BASE_DIR / "db.sqlite3",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def build_csrf_trusted_origins(
|
||||
allowed_hosts: list[str], explicit: list[str] | None = None
|
||||
) -> list[str]:
|
||||
"""Build CSRF_TRUSTED_ORIGINS for Django 4+ Origin checks on HTTPS POSTs."""
|
||||
if explicit:
|
||||
return explicit
|
||||
|
||||
local_hosts = {"localhost", "127.0.0.1", "0.0.0.0"}
|
||||
origins: list[str] = []
|
||||
for host in allowed_hosts:
|
||||
if not host or host == "*" or host.startswith("."):
|
||||
continue
|
||||
hostname = host.split(":")[0]
|
||||
scheme = "http" if hostname in local_hosts else "https"
|
||||
origins.append(f"{scheme}://{host}")
|
||||
return origins
|
||||
|
||||
|
||||
SECRET_KEY = env(
|
||||
"DJANGO_SECRET_KEY",
|
||||
"django-insecure-dev-only-change-me-before-production",
|
||||
)
|
||||
|
||||
DEBUG = env_bool("DJANGO_DEBUG", False)
|
||||
|
||||
allowed_hosts = env_list("DJANGO_ALLOWED_HOSTS", "*")
|
||||
ALLOWED_HOSTS = allowed_hosts if allowed_hosts else ["*"]
|
||||
|
||||
CSRF_TRUSTED_ORIGINS = build_csrf_trusted_origins(
|
||||
ALLOWED_HOSTS,
|
||||
env_list("DJANGO_CSRF_TRUSTED_ORIGINS"),
|
||||
)
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
# Catalog feature flags. Secret env is the source of truth.
|
||||
# Dev/test default ON so the template is a working seed; prod/beta secrets
|
||||
# must set each flag explicitly (see scripts/validate-env.sh).
|
||||
_feature_default = os.environ.get("DJANGO_ENV", "dev").lower() not in {"prod", "beta"}
|
||||
FEATURE_EMAIL_SMS = env_bool("FEATURE_EMAIL_SMS", _feature_default)
|
||||
FEATURE_DIRECT_MAIL = env_bool("FEATURE_DIRECT_MAIL", _feature_default)
|
||||
FEATURE_BLOG = env_bool("FEATURE_BLOG", _feature_default)
|
||||
FEATURE_PAYMENTS = env_bool("FEATURE_PAYMENTS", _feature_default)
|
||||
FEATURE_SOCIAL = env_bool("FEATURE_SOCIAL", _feature_default)
|
||||
FEATURE_SOCIAL_AI = env_bool("FEATURE_SOCIAL_AI", _feature_default)
|
||||
|
||||
if FEATURE_PAYMENTS and not FEATURE_EMAIL_SMS:
|
||||
raise ImproperlyConfigured("FEATURE_PAYMENTS requires FEATURE_EMAIL_SMS")
|
||||
if FEATURE_SOCIAL_AI and not FEATURE_SOCIAL:
|
||||
raise ImproperlyConfigured("FEATURE_SOCIAL_AI requires FEATURE_SOCIAL")
|
||||
|
||||
CORE_APPS = [
|
||||
"core.apps.CoreConfig",
|
||||
"public.apps.PublicConfig",
|
||||
"accounts.apps.AccountsConfig",
|
||||
"dashboard.apps.DashboardConfig",
|
||||
"leads.apps.LeadsConfig",
|
||||
"contacts.apps.ContactsConfig",
|
||||
"analytics.apps.AnalyticsConfig",
|
||||
]
|
||||
OPTIONAL_APPS = [
|
||||
(FEATURE_EMAIL_SMS, "email_sms.apps.EmailSmsConfig"),
|
||||
(FEATURE_DIRECT_MAIL, "directmail.apps.DirectmailConfig"),
|
||||
(FEATURE_BLOG, "blog.apps.BlogConfig"),
|
||||
(FEATURE_PAYMENTS, "payments.apps.PaymentsConfig"),
|
||||
(FEATURE_SOCIAL, "social.apps.SocialConfig"),
|
||||
(FEATURE_SOCIAL_AI, "social_ai.apps.SocialAiConfig"),
|
||||
]
|
||||
DJANGO_APPS = [
|
||||
"django.contrib.admin",
|
||||
"django.contrib.auth",
|
||||
"django.contrib.contenttypes",
|
||||
"django.contrib.sessions",
|
||||
"django.contrib.messages",
|
||||
"whitenoise.runserver_nostatic",
|
||||
"django.contrib.staticfiles",
|
||||
"phonenumber_field",
|
||||
"django_recaptcha",
|
||||
"dj_queue",
|
||||
]
|
||||
INSTALLED_APPS = (
|
||||
CORE_APPS
|
||||
+ [app for enabled, app in OPTIONAL_APPS if enabled]
|
||||
+ DJANGO_APPS
|
||||
)
|
||||
|
||||
MIDDLEWARE = [
|
||||
"django.middleware.security.SecurityMiddleware",
|
||||
"whitenoise.middleware.WhiteNoiseMiddleware",
|
||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
||||
"django.middleware.common.CommonMiddleware",
|
||||
"django.middleware.csrf.CsrfViewMiddleware",
|
||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
||||
"django.contrib.messages.middleware.MessageMiddleware",
|
||||
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
||||
"analytics.middleware.UTMTrackingMiddleware",
|
||||
"analytics.middleware.PublicPageViewMiddleware",
|
||||
"public.middleware.UnderConstructionMiddleware",
|
||||
]
|
||||
|
||||
ROOT_URLCONF = "client_site.urls"
|
||||
|
||||
TEMPLATES = [
|
||||
{
|
||||
"BACKEND": "django.template.backends.django.DjangoTemplates",
|
||||
"DIRS": [BASE_DIR / "client_site" / "templates"],
|
||||
"APP_DIRS": True,
|
||||
"OPTIONS": {
|
||||
"context_processors": [
|
||||
"django.template.context_processors.debug",
|
||||
"django.template.context_processors.request",
|
||||
"django.contrib.auth.context_processors.auth",
|
||||
"django.contrib.messages.context_processors.messages",
|
||||
"public.context_processors.site_branding",
|
||||
"public.context_processors.tianji_tracking",
|
||||
"core.context_processors.feature_registry",
|
||||
],
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
WSGI_APPLICATION = "client_site.wsgi.application"
|
||||
|
||||
DATABASES = database_config()
|
||||
|
||||
AUTH_PASSWORD_VALIDATORS = [
|
||||
{
|
||||
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
|
||||
},
|
||||
{
|
||||
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
|
||||
},
|
||||
{
|
||||
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
|
||||
},
|
||||
{
|
||||
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
|
||||
},
|
||||
]
|
||||
|
||||
LANGUAGE_CODE = "en-us"
|
||||
TIME_ZONE = "America/Chicago"
|
||||
USE_I18N = True
|
||||
USE_TZ = True
|
||||
|
||||
STATIC_URL = "static/"
|
||||
STATIC_ROOT = BASE_DIR / "staticfiles"
|
||||
STATICFILES_DIRS = [
|
||||
BASE_DIR / "client_site" / "static",
|
||||
]
|
||||
# Uploaded blobs live in the DB (core.StoredFile). Default storage is
|
||||
# in-memory only so nothing is written to disk accidentally.
|
||||
STORAGES = {
|
||||
"default": {
|
||||
"BACKEND": "django.core.files.storage.memory.InMemoryStorage",
|
||||
},
|
||||
"staticfiles": {
|
||||
"BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage",
|
||||
},
|
||||
}
|
||||
|
||||
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||
|
||||
LOGIN_URL = "accounts:login"
|
||||
LOGIN_REDIRECT_URL = "dashboard:home"
|
||||
LOGOUT_REDIRECT_URL = "accounts:login"
|
||||
|
||||
# --- Feature gates ---
|
||||
# When true, public visitors only see the under-construction page.
|
||||
# Prod launch holding page: SITE_UNDER_CONSTRUCTION=true
|
||||
# Beta (full app): SITE_UNDER_CONSTRUCTION=false
|
||||
SITE_UNDER_CONSTRUCTION = env_bool("SITE_UNDER_CONSTRUCTION", False)
|
||||
|
||||
# --- Branding / public site ---
|
||||
SITE_NAME = env("SITE_NAME", "Your Company")
|
||||
SITE_TAGLINE = env("SITE_TAGLINE", "A tagline for the public site")
|
||||
PUBLIC_SITE_URL = env("PUBLIC_SITE_URL", "")
|
||||
CONTACT_PHONE = env("CONTACT_PHONE", "")
|
||||
CONTACT_EMAIL = env("CONTACT_EMAIL", "hello@example.com")
|
||||
CONTACT_ADDRESS = env("CONTACT_ADDRESS", "")
|
||||
CONTACT_SERVICE_AREA = env("CONTACT_SERVICE_AREA", "")
|
||||
CREDIT_NAME = env("CREDIT_NAME", "AI ML Operations, LLC")
|
||||
CREDIT_URL = env("CREDIT_URL", "https://aimloperations.com")
|
||||
|
||||
|
||||
def format_from_email(address: str | None, display_name: str | None = None) -> str:
|
||||
"""
|
||||
Ensure From header includes a display name for inbox UIs.
|
||||
|
||||
Bare ``noreply@…`` shows as "noreply". Prefer
|
||||
``"Your Company" <noreply@…>`` (RFC 5322).
|
||||
|
||||
Docker Compose ``.env`` cannot parse split quotes like
|
||||
``"Name" <addr>`` — use a bare address (this helper adds SITE_NAME)
|
||||
or one pair of quotes around the whole value:
|
||||
``DEFAULT_FROM_EMAIL="Your Company <addr@domain>"``.
|
||||
"""
|
||||
raw = (address or "").strip()
|
||||
if not raw:
|
||||
return ""
|
||||
# Strip a single layer of wrapping quotes from env/compose.
|
||||
if len(raw) >= 2 and raw[0] == raw[-1] and raw[0] in {'"', "'"}:
|
||||
raw = raw[1:-1].strip()
|
||||
if "<" in raw and ">" in raw:
|
||||
return raw
|
||||
name = (display_name or SITE_NAME or "").strip()
|
||||
if not name:
|
||||
return raw
|
||||
safe = name.replace("\\", "\\\\").replace('"', '\\"')
|
||||
return f'"{safe}" <{raw}>'
|
||||
|
||||
|
||||
# Inbox "From" — not the same as EMAIL_HOST_USER (SMTP login).
|
||||
DEFAULT_FROM_EMAIL = format_from_email(
|
||||
env("DEFAULT_FROM_EMAIL", "noreply@example.com")
|
||||
)
|
||||
|
||||
# --- reCAPTCHA v3 ---
|
||||
RECAPTCHA_PUBLIC_KEY = env("RECAPTCHA_PUBLIC_KEY", "")
|
||||
RECAPTCHA_PRIVATE_KEY = env("RECAPTCHA_PRIVATE_KEY", "")
|
||||
|
||||
# --- Email (SMTP2GO) ---
|
||||
EMAIL_HOST = env("EMAIL_HOST", "mail.smtp2go.com")
|
||||
EMAIL_HOST_USER = env("EMAIL_HOST_USER", "")
|
||||
EMAIL_HOST_PASSWORD = env("EMAIL_HOST_PASSWORD", "")
|
||||
EMAIL_PORT = int(env("EMAIL_PORT", "2525") or "2525")
|
||||
EMAIL_USE_TLS = env_bool("EMAIL_USE_TLS", True)
|
||||
EMAIL_BACKEND = env(
|
||||
"EMAIL_BACKEND",
|
||||
"django.core.mail.backends.smtp.EmailBackend",
|
||||
)
|
||||
|
||||
# --- SMTP2GO SMS ---
|
||||
SMTP2GO_SMS_API_KEY = env("SMTP2GO_SMS_API_KEY", "")
|
||||
SMTP2GO_SMS_API_URL = env(
|
||||
"SMTP2GO_SMS_API_URL",
|
||||
"https://api.smtp2go.com/v3/sms/send",
|
||||
)
|
||||
# Optional shared secret: ?token=… or Authorization: Bearer …
|
||||
SMTP2GO_WEBHOOK_SECRET = env("SMTP2GO_WEBHOOK_SECRET", "")
|
||||
|
||||
# --- Postcards (PCM Integrations default) ---
|
||||
POSTCARD_PROVIDER = env("POSTCARD_PROVIDER", "pcm")
|
||||
# Login credentials for POST /auth/login → short-lived Bearer token.
|
||||
PCM_API_KEY = env("PCM_API_KEY", "")
|
||||
PCM_API_SECRET = env("PCM_API_SECRET", "")
|
||||
# Optional child-app reference for PCM multi-account (childRefNbr).
|
||||
PCM_CHILD_REF_NBR = env("PCM_CHILD_REF_NBR", "")
|
||||
# PCM webhook auth: each subscription has its own signature secret (copy from PCM UI).
|
||||
# Prefer PCM_WEBHOOK_SECRETS=sec1,sec2,… ; PCM_WEBHOOK_SECRET still accepted (single).
|
||||
PCM_WEBHOOK_SECRETS = env("PCM_WEBHOOK_SECRETS", "")
|
||||
PCM_WEBHOOK_SECRET = env("PCM_WEBHOOK_SECRET", "")
|
||||
# JSON object: company, firstName, lastName, address, address2, city, state, zipCode
|
||||
PCM_RETURN_ADDRESS = env("PCM_RETURN_ADDRESS", "")
|
||||
PCM_RETURN_LINE1 = env("PCM_RETURN_LINE1", "")
|
||||
PCM_RETURN_LINE2 = env("PCM_RETURN_LINE2", "")
|
||||
PCM_RETURN_CITY = env("PCM_RETURN_CITY", "")
|
||||
PCM_RETURN_STATE = env("PCM_RETURN_STATE", "")
|
||||
PCM_RETURN_ZIP = env("PCM_RETURN_ZIP", "")
|
||||
# Legacy / alternate providers (POSTCARD_PROVIDER=lob|click2mail|postgrid)
|
||||
LOB_API_KEY = env("LOB_API_KEY", "")
|
||||
CLICK2MAIL_API_KEY = env("CLICK2MAIL_API_KEY", "")
|
||||
POSTGRID_API_KEY = env("POSTGRID_API_KEY", "")
|
||||
|
||||
# --- Social (native APIs) ---
|
||||
META_APP_ID = env("META_APP_ID", "")
|
||||
META_APP_SECRET = env("META_APP_SECRET", "")
|
||||
# LinkedIn Client ID/Secret live in SocialAppCredentials (portal UI), not env.
|
||||
SOCIAL_TOKEN_ENCRYPTION_KEY = env("SOCIAL_TOKEN_ENCRYPTION_KEY", "")
|
||||
|
||||
# --- Ollama (social post drafting) ---
|
||||
# Host-network reachable from app hosts; default matches internal LAN Ollama.
|
||||
OLLAMA_BASE_URL = env("OLLAMA_BASE_URL", "http://10.0.0.128:11434")
|
||||
OLLAMA_MODEL = env("OLLAMA_MODEL", "llama3.2")
|
||||
OLLAMA_TIMEOUT_SECONDS = int(env("OLLAMA_TIMEOUT_SECONDS", "120") or "120")
|
||||
|
||||
# --- Stripe (FEATURE_PAYMENTS) ---
|
||||
STRIPE_SECRET_KEY = env("STRIPE_SECRET_KEY", "")
|
||||
STRIPE_PUBLISHABLE_KEY = env("STRIPE_PUBLISHABLE_KEY", "")
|
||||
STRIPE_WEBHOOK_SECRET = env("STRIPE_WEBHOOK_SECRET", "")
|
||||
STRIPE_CURRENCY = env("STRIPE_CURRENCY", "usd")
|
||||
|
||||
# --- Nominatim (address suggest; server-side proxy only) ---
|
||||
# Self-hosted on ai-server-4080. Nominatim has no native API keys — gate with
|
||||
# LAN UFW + this Django proxy. Optional NOMINATIM_API_KEY is forwarded as
|
||||
# X-API-Key if you later put auth in front of Nominatim.
|
||||
NOMINATIM_BASE_URL = env("NOMINATIM_BASE_URL", "http://10.0.0.128:8089")
|
||||
NOMINATIM_TIMEOUT_SECONDS = int(env("NOMINATIM_TIMEOUT_SECONDS", "8") or "8")
|
||||
NOMINATIM_COUNTRY_CODES = env("NOMINATIM_COUNTRY_CODES", "us")
|
||||
NOMINATIM_USER_AGENT = env(
|
||||
"NOMINATIM_USER_AGENT",
|
||||
"client_site/1.0 (address-suggest; contact admin)",
|
||||
)
|
||||
NOMINATIM_API_KEY = env("NOMINATIM_API_KEY", "")
|
||||
|
||||
# --- Tianji analytics (pageviews + events; notice banner, not opt-in) ---
|
||||
TIANJI_ENABLED = env_bool("TIANJI_ENABLED", not DEBUG)
|
||||
TIANJI_TRACKER_URL = env(
|
||||
"TIANJI_TRACKER_URL",
|
||||
"https://tianji.aimloperations.com/tracker.js",
|
||||
)
|
||||
TIANJI_WEBSITE_ID = env("TIANJI_WEBSITE_ID", "cmshzhxdf6gee10qzkzrfn9iw")
|
||||
|
||||
# --- Django Tasks ---
|
||||
# Dev: ImmediateBackend (settings/dev.py). Beta/prod: dj-queue (settings/beta.py|prod.py).
|
||||
TASKS = {
|
||||
"default": {
|
||||
"BACKEND": "django.tasks.backends.immediate.ImmediateBackend",
|
||||
},
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
"""Beta/staging settings — full functionality for preview."""
|
||||
|
||||
from .base import * # noqa: F403
|
||||
from .logging import build_logging_config, logging_level_for_env
|
||||
|
||||
DEBUG = env_bool("DJANGO_DEBUG", False) # noqa: F405
|
||||
TIANJI_ENABLED = env_bool("TIANJI_ENABLED", True) # noqa: F405
|
||||
|
||||
if DEBUG:
|
||||
import warnings
|
||||
|
||||
warnings.warn("DEBUG is enabled in beta environment.", stacklevel=1)
|
||||
|
||||
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
|
||||
USE_X_FORWARDED_HOST = True
|
||||
SESSION_COOKIE_SECURE = not DEBUG
|
||||
CSRF_COOKIE_SECURE = not DEBUG
|
||||
|
||||
# Beta always runs the full app unless explicitly overridden.
|
||||
SITE_UNDER_CONSTRUCTION = env_bool("SITE_UNDER_CONSTRUCTION", False) # noqa: F405
|
||||
|
||||
DATABASE_ROUTERS = ["dj_queue.routers.DjQueueRouter"]
|
||||
TASKS = {
|
||||
"default": {
|
||||
"BACKEND": "dj_queue.backend.DjQueueBackend",
|
||||
"QUEUES": [],
|
||||
"OPTIONS": {},
|
||||
},
|
||||
}
|
||||
|
||||
LOGGING = build_logging_config(logging_level_for_env("beta"), "beta")
|
||||
@@ -0,0 +1,38 @@
|
||||
"""Development settings."""
|
||||
|
||||
from .base import * # noqa: F403
|
||||
from .logging import build_logging_config, logging_level_for_env
|
||||
|
||||
DEBUG = True
|
||||
|
||||
SITE_UNDER_CONSTRUCTION = env_bool("SITE_UNDER_CONSTRUCTION", False) # noqa: F405
|
||||
TIANJI_ENABLED = env_bool("TIANJI_ENABLED", False) # noqa: F405
|
||||
|
||||
STORAGES = {
|
||||
"default": {
|
||||
"BACKEND": "django.core.files.storage.memory.InMemoryStorage",
|
||||
},
|
||||
"staticfiles": {
|
||||
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
|
||||
},
|
||||
}
|
||||
|
||||
EMAIL_BACKEND = env( # noqa: F405
|
||||
"EMAIL_BACKEND",
|
||||
"django.core.mail.backends.console.EmailBackend",
|
||||
)
|
||||
|
||||
# ALLOWED_HOSTS default "*" → empty CSRF_TRUSTED_ORIGINS, which breaks browser
|
||||
# Origin checks on POST. Always trust local runserver origins in dev.
|
||||
_local_csrf = [
|
||||
"http://127.0.0.1:8000",
|
||||
"http://localhost:8000",
|
||||
"http://0.0.0.0:8000",
|
||||
"http://127.0.0.1:8001",
|
||||
"http://localhost:8001",
|
||||
]
|
||||
CSRF_TRUSTED_ORIGINS = list(
|
||||
dict.fromkeys([*_local_csrf, *CSRF_TRUSTED_ORIGINS]) # noqa: F405
|
||||
)
|
||||
|
||||
LOGGING = build_logging_config(logging_level_for_env("dev"), "dev")
|
||||
@@ -0,0 +1,61 @@
|
||||
"""Environment-specific logging configuration."""
|
||||
|
||||
import os
|
||||
|
||||
|
||||
def build_logging_config(level: str, environment: str) -> dict:
|
||||
"""Return a Django LOGGING dict for the given level and environment name."""
|
||||
return {
|
||||
"version": 1,
|
||||
"disable_existing_loggers": False,
|
||||
"formatters": {
|
||||
"verbose": {
|
||||
"format": (
|
||||
f"{{levelname}} {{asctime}} {{name}} {{filename}}:{{lineno}} "
|
||||
f"{{process:d}} {{thread:d}} [env={environment}] {{message}}"
|
||||
),
|
||||
"style": "{",
|
||||
},
|
||||
"simple": {
|
||||
"format": (
|
||||
f"{{levelname}} [env={environment}] "
|
||||
f"{{filename}}:{{lineno}} {{message}}"
|
||||
),
|
||||
"style": "{",
|
||||
},
|
||||
},
|
||||
"handlers": {
|
||||
"console": {
|
||||
"class": "logging.StreamHandler",
|
||||
"formatter": "verbose" if environment == "dev" else "simple",
|
||||
},
|
||||
},
|
||||
"root": {
|
||||
"handlers": ["console"],
|
||||
"level": level,
|
||||
},
|
||||
"loggers": {
|
||||
"django": {
|
||||
"handlers": ["console"],
|
||||
"level": level,
|
||||
"propagate": False,
|
||||
},
|
||||
"django.request": {
|
||||
"handlers": ["console"],
|
||||
"level": "ERROR" if environment == "prod" else level,
|
||||
"propagate": False,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def logging_level_for_env(environment: str) -> str:
|
||||
override = os.environ.get("DJANGO_LOG_LEVEL")
|
||||
if override:
|
||||
return override.upper()
|
||||
|
||||
if environment == "dev":
|
||||
return "DEBUG"
|
||||
if environment == "beta":
|
||||
return "INFO"
|
||||
return "WARNING"
|
||||
@@ -0,0 +1,31 @@
|
||||
"""Production settings."""
|
||||
|
||||
from .base import * # noqa: F403
|
||||
from .logging import build_logging_config, logging_level_for_env
|
||||
|
||||
DEBUG = False
|
||||
|
||||
TIANJI_ENABLED = env_bool("TIANJI_ENABLED", True) # noqa: F405
|
||||
|
||||
if not env("DJANGO_SECRET_KEY"): # noqa: F405
|
||||
raise ValueError("DJANGO_SECRET_KEY must be set in production.")
|
||||
|
||||
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
|
||||
USE_X_FORWARDED_HOST = True
|
||||
SESSION_COOKIE_SECURE = True
|
||||
CSRF_COOKIE_SECURE = True
|
||||
|
||||
# Prod holds visitors on under-construction until launch (set false when ready).
|
||||
if env("SITE_UNDER_CONSTRUCTION") is None: # noqa: F405
|
||||
SITE_UNDER_CONSTRUCTION = True # noqa: F405
|
||||
|
||||
DATABASE_ROUTERS = ["dj_queue.routers.DjQueueRouter"]
|
||||
TASKS = {
|
||||
"default": {
|
||||
"BACKEND": "dj_queue.backend.DjQueueBackend",
|
||||
"QUEUES": [],
|
||||
"OPTIONS": {},
|
||||
},
|
||||
}
|
||||
|
||||
LOGGING = build_logging_config(logging_level_for_env("prod"), "prod")
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,35 @@
|
||||
/* Address autocomplete dropdown (public + portal). */
|
||||
.address-ac-wrap {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.address-ac-list {
|
||||
position: absolute;
|
||||
z-index: 40;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: calc(100% + 2px);
|
||||
margin: 0;
|
||||
padding: 4px 0;
|
||||
list-style: none;
|
||||
max-height: 240px;
|
||||
overflow-y: auto;
|
||||
background: #fff;
|
||||
border: 1px solid #d1d5db;
|
||||
border-radius: 6px;
|
||||
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
|
||||
}
|
||||
|
||||
.address-ac-item {
|
||||
padding: 8px 12px;
|
||||
font-size: 13px;
|
||||
line-height: 1.35;
|
||||
color: #111827;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.address-ac-item:hover,
|
||||
.address-ac-item:focus {
|
||||
background: #f3f4f6;
|
||||
outline: none;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Bootstrap v4.0.0 (https://getbootstrap.com)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
:root {
--blue: #007bff;
--indigo: #6610f2;
--purple: #6f42c1;
--pink: #e83e8c;
--red: #dc3545;
--orange: #fd7e14;
--yellow: #ffc107;
--green: #28a745;
--teal: #20c997;
--cyan: #17a2b8;
--white: #fff;
--gray: #6c757d;
--gray-dark: #343a40;
--breakpoint-xs: 0;
--breakpoint-sm: 576px;
--breakpoint-md: 768px;
--breakpoint-lg: 992px;
--breakpoint-xl: 1200px;
--breakpoint-xxl: 1600px;
--font-family-sans-serif: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
--font-family-monospace: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-ms-overflow-style: scrollbar;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
@-ms-viewport {
width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 16px;
font-weight: 300;
line-height: 1.5;
color: #74757f;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: inherit;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
dfn {
font-style: italic;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #0045b6;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:hover {
color: #00286a;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-ms-overflow-style: scrollbar;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: .5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
margin-bottom: 0.5rem;
font-family: "Poppins", sans-serif;
font-weight: 400;
line-height: 1.1;
color: #151515;
}
h1,Line truncated
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
*
|
||||
* Fonts
|
||||
*/␍/*
|
||||
*
|
||||
* Font Awesome Icons 4.7.0
|
||||
* --------------------------------------------------
|
||||
*/␍@font-face {␍ font-family: 'FontAwesome';␍ src: url("../fonts/fontawesome-webfont.eot?v=4.7.0");␍ src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");␍ font-weight: normal;␍ font-style: normal;␍}␍␍.fa {␍ display: inline-block;␍ font-family: 'FontAwesome';␍ font-size: inherit;␍ text-rendering: auto;␍ -webkit-font-smoothing: antialiased;␍ -moz-osx-font-smoothing: grayscale;␍}␍␍[class*='fa-']:before {␍ font-weight: 400;␍ font-family: 'FontAwesome';␍}␍␍/* makes the font 33% larger relative to the icon container */␍.fa-lg {␍ font-size: 1.33333333em;␍ line-height: 0.75em;␍ vertical-align: -15%;␍}␍␍.fa-2x {␍ font-size: 2em;␍}␍␍.fa-3x {␍ font-size: 3em;␍}␍␍.fa-4x {␍ font-size: 4em;␍}␍␍.fa-5x {␍ font-size: 5em;␍}␍␍.fa-fw {␍ width: 1.28571429em;␍ text-align: center;␍}␍␍.fa-ul {␍ padding-left: 0;␍ margin-left: 2.14285714em;␍ list-style-type: none;␍}␍␍.fa-ul > li {␍ position: relative;␍}␍␍.fa-li {␍ position: absolute;␍ left: -2.14285714em;␍ width: 2.14285714em;␍ top: 0.14285714em;␍ text-align: center;␍}␍␍.fa-li.fa-lg {␍ left: -1.85714286em;␍}␍␍.fa-border {␍ padding: .2em .25em .15em;␍ border: solid 0.08em #eeeeee;␍ border-radius: .1em;␍}␍␍.fa-pull-left {␍ float: left;␍}␍␍.fa-pull-right {␍ float: right;␍}␍␍.fa.fa-pull-left {␍ margin-right: .3em;␍}␍␍.fa.fa-pull-right {␍ margin-left: .3em;␍}␍␍/* Deprecated as of 4.4.0 */␍.pull-right {␍ float: right;␍}␍␍.pull-left {␍ float: left;␍}␍␍.fa.pull-left {␍ margin-right: .3em;␍}␍␍.fa.pull-right {␍ margin-left: .3em;␍}␍␍.fa-spin {␍ -webkit-animation: fa-spin 2s infinite linear;␍ animation: fa-spin 2s infinite linear;␍}␍␍.fa-pulse {␍ -webkit-animation: fa-spin 1s infinite steps(8);␍ animation: fa-spin 1s infinite steps(8);␍}␍␍@-webkit-keyframes fa-spin {␍ 0% {␍ -webkit-transform: rotate(0deg);␍ transform: rotate(0deg);␍ }␍ 100% {␍ -webkit-transform: rotate(359deg);␍ transform: rotate(359deg);␍ }␍}␍␍@keyframes fa-spin {␍ 0% {␍ -webkit-transform: rotate(0deg);␍ transform: rotate(0deg);␍ }␍ 100% {␍ -webkit-transform: rotate(359deg);␍ transform: rotate(359deg);␍ }␍}␍␍.fa-rotate-90 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";␍ -webkit-transform: rotate(90deg);␍ -ms-transform: rotate(90deg);␍ transform: rotate(90deg);␍}␍␍.fa-rotate-180 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";␍ -webkit-transform: rotate(180deg);␍ -ms-transform: rotate(180deg);␍ transform: rotate(180deg);␍}␍␍.fa-rotate-270 {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";␍ -webkit-transform: rotate(270deg);␍ -ms-transform: rotate(270deg);␍ transform: rotate(270deg);␍}␍␍.fa-flip-horizontal {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";␍ -webkit-transform: scale(-1, 1);␍ -ms-transform: scale(-1, 1);␍ transform: scale(-1, 1);␍}␍␍.fa-flip-vertical {␍ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";␍ -webkit-transform: scale(1, -1);␍ -ms-transform: scale(1, -1);␍ transform: scale(1, -1);␍}␍␍:root .fa-rotate-90,␍:root .fa-rotate-180,␍:root .fa-rotate-270,␍:root .fa-flip-horizontal,␍:root .fa-flip-vertical {␍ filter: none;␍}␍␍.fa-stack {␍ position: relative;␍ display: inline-block;␍ width: 2em;␍ height: 2em;␍ line-height: 2em;␍ vertical-align: middle;␍}␍␍.fa-stack-1x,␍.fa-stack-2x {␍ position: absolute;␍ left: 0;␍ width: 100%;␍ text-align: center;␍}␍␍.fa-stack-1x {␍ line-height: inherit;␍}␍␍.fa-stack-2x {␍ font-size: 2em;␍}␍␍.fa-inverse {␍ color: #ffffff;␍}␍␍/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:Line truncated
|
||||
*
|
||||
* Material Design Icons
|
||||
* --------------------------------------------------
|
||||
*/
@font-face {
font-family: "Material Design Icons";
src: url("../fonts/materialdesignicons-webfont.eot?v=1.4.57");
src: url("../fonts/materialdesignicons-webfont.eot?#iefix&v=1.4.57") format("embedded-opentype"), url("../fonts/materialdesignicons-webfont.woff2?v=1.4.57") format("woff2"), url("../fonts/materialdesignicons-webfont.woff?v=1.4.57") format("woff"), url("../fonts/materialdesignicons-webfont.ttf?v=1.4.57") format("truetype"), url("../fonts/materialdesignicons-webfont.svg?v=1.4.57#materialdesigniconsregular") format("svg");
font-weight: normal;
font-style: normal;
}
.mdi {
display: inline-block;
font: normal normal normal 24px/1 "Material Design Icons";
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
}
.mdi-access-point:before {
content: "\f101";
}
.mdi-access-point-network:before {
content: "\f102";
}
.mdi-account:before {
content: "\f103";
}
.mdi-account-alert:before {
content: "\f104";
}
.mdi-account-box:before {
content: "\f105";
}
.mdi-account-box-outline:before {
content: "\f106";
}
.mdi-account-check:before {
content: "\f107";
}
.mdi-account-circle:before {
content: "\f108";
}
.mdi-account-convert:before {
content: "\f109";
}
.mdi-account-key:before {
content: "\f10a";
}
.mdi-account-location:before {
content: "\f10b";
}
.mdi-account-minus:before {
content: "\f10c";
}
.mdi-account-multiple:before {
content: "\f10d";
}
.mdi-account-multiple-outline:before {
content: "\f10e";
}
.mdi-account-multiple-plus:before {
content: "\f10f";
}
.mdi-account-network:before {
content: "\f110";
}
.mdi-account-off:before {
content: "\f111";
}
.mdi-account-outline:before {
content: "\f112";
}
.mdi-account-plus:before {
content: "\f113";
}
.mdi-account-remove:before {
content: "\f114";
}
.mdi-account-search:before {
content: "\f115";
}
.mdi-account-star:before {
content: "\f116";
}
.mdi-account-star-variant:before {
content: "\f117";
}
.mdi-account-switch:before {
content: "\f118";
}
.mdi-adjust:before {
content: "\f119";
}
.mdi-air-conditioner:before {
content: "\f11a";
}
.mdi-airballoon:before {
content: "\f11b";
}
.mdi-airplane:before {
content: "\f11c";
}
.mdi-airplane-off:before {
content: "\f11d";
}
.mdi-airplay:before {
content: "\f11e";
}
.mdi-alarm:before {
content: "\f11f";
}
.mdi-alarm-check:before {
content: "\f120";
}
.mdi-alarm-multiple:before {
content: "\f121";
}
.mdi-alarm-off:before {
content: "\f122";
}
.mdi-alarm-plus:before {
content: "\f123";
}
.mdi-album:before {
content: "\f124";
}
.mdi-alert:before {
content: "\f125";
}
.mdi-alert-box:before {
content: "\f126";
}
.mdi-alert-circle:before {
content: "\f127";
}
.mdi-alert-octagon:before {
content: "\f128";
}
.mdi-alert-outline:before {
content: "\f129";
}
.mdi-alpha:before {
content: "\f12a";
}
.mdi-alphabetical:before {
content: "\f12b";
}
.mdi-amazon:before {
content: "\f12c";
}
.mdi-amazon-clouddrive:before {
content: "\f12d";
}
.mdi-ambulance:before {
content: "\f12e";
}
.mdi-anchor:before {
content: "\f12f";
}
.mdi-android:before {
content: "\f130";
}
.mdi-android-debug-bridge:before {
content: "\f131";
}
.mdi-android-studio:before {
content: "\f132";
}
.mdi-apple:before {
content: "\f133";
}
.mdi-apple-finder:before {
content: "\f134";
}
.mdi-apple-ios:before {
content: "\f135";
}
.mdi-apple-mobileme:before {
content: "\f136";
}
.mdi-apple-safari:before {
content: "\f137";
}
.mdi-appnet:before {
content: "\f138";
}
.mdi-apps:before {
content: "\f139";
}
.mdi-archive:before {
content: "\f13a";
}
.mdi-arrange-bring-forward:before {
content: "\f13b";
}
.mdi-arrange-bring-to-front:before {
content: "\f13c";
}
.mdi-arrange-send-backward:before {
content: "\f13d";
}
.mdi-arrange-send-to-back:before {
content: "\f13e";
}
.mdi-arrow-all:before {
content: "\f13f";
}
.mdi-arrow-bottom-drop-circle:before {
content: "\f140";
}
.mdi-arrow-bottom-left:before {
content: "\f141";
}
.mdi-arrow-bottom-right:before {
content: "\f142";
}
.mdi-arrow-collapse:before {
content: "\f143";
}
.mdi-arrow-down:before {
content: "\f144";
}
.mdi-arrow-down-bold:before {
content: "\f145";
}
.mdi-arrow-down-bold-circle:before {
content: "\f146";
}
.mdi-arrow-down-bold-circle-outline:before {
content: "\f147";
}
.mdi-arrow-down-bold-hexagon-outline:before {
content: "\f148";
}
.mdi-arrow-expand:before {
content: "\f149";
}
.mdi-arrow-left:before {
content: "\f14a";
}
.mdi-arrow-left-bold:before {
content: "\f14b";
}
.mdi-arrow-left-bold-circle:before {
content: "\f14c";
}
.mdi-arrow-left-bold-circle-outline:before {
content: "\f14d";
}
.mdi-arrow-left-bold-hexagon-outline:before {
content: "\f14e";
}
.mdi-arrow-right:before {
content: "\f14f";
}
.mdi-arrow-right-bold:before {
content: "\f150";
}
.mdi-arrow-right-bold-circle:before {
content: "\f151";
}
.mdi-arrow-right-bold-circle-outline:before {Line truncated
|
||||
* Title: Bigmug Line Flaticon Pack
|
||||
* Author: Catalin Fertu
|
||||
* Source: http://www.flaticon.com/packs/bigmug-line
|
||||
* License: CC BY 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
||||
*/
@font-face {
font-family: "fl-bigmug-line";
src: url("../fonts/fl-bigmug-line.eot");
src: url("../fonts/fl-bigmug-line.eot#iefix") format("embedded-opentype"), url("../fonts/fl-bigmug-line.woff") format("woff"), url("../fonts/fl-bigmug-line.ttf") format("truetype"), url("../fonts/fl-bigmug-line.svg") format("svg");
font-weight: normal;
font-style: normal;
}
.fl-bigmug-line-ico,
[class^="fl-bigmug-line-"]:before, [class*=" fl-bigmug-line-"]:before,
[class^="fl-bigmug-line-"]:after, [class*=" fl-bigmug-line-"]:after {
font-family: 'fl-bigmug-line';
font-size: inherit;
font-weight: 400;
font-style: normal;
}
.fl-bigmug-line-add137:before {
content: "\e000";
}
.fl-bigmug-line-add139:before {
content: "\e001";
}
.fl-bigmug-line-add149:before {
content: "\e002";
}
.fl-bigmug-line-airplane86:before {
content: "\e003";
}
.fl-bigmug-line-alarm31:before {
content: "\e004";
}
.fl-bigmug-line-arrow592:before {
content: "\e005";
}
.fl-bigmug-line-attach8:before {
content: "\e006";
}
.fl-bigmug-line-attachment15:before {
content: "\e007";
}
.fl-bigmug-line-audio46:before {
content: "\e008";
}
.fl-bigmug-line-back44:before {
content: "\e009";
}
.fl-bigmug-line-back46:before {
content: "\e00a";
}
.fl-bigmug-line-big104:before {
content: "\e00b";
}
.fl-bigmug-line-book188:before {
content: "\e00c";
}
.fl-bigmug-line-bookmark28:before {
content: "\e00d";
}
.fl-bigmug-line-bottle34:before {
content: "\e00e";
}
.fl-bigmug-line-button5:before {
content: "\e00f";
}
.fl-bigmug-line-buttons5:before {
content: "\e010";
}
.fl-bigmug-line-cellphone55:before {
content: "\e011";
}
.fl-bigmug-line-cellular9:before {
content: "\e012";
}
.fl-bigmug-line-center10:before {
content: "\e013";
}
.fl-bigmug-line-chat51:before {
content: "\e014";
}
.fl-bigmug-line-chat55:before {
content: "\e015";
}
.fl-bigmug-line-checkmark14:before {
content: "\e016";
}
.fl-bigmug-line-checkmark15:before {
content: "\e017";
}
.fl-bigmug-line-checkmark16:before {
content: "\e018";
}
.fl-bigmug-line-circular220:before {
content: "\e019";
}
.fl-bigmug-line-circular224:before {
content: "\e01a";
}
.fl-bigmug-line-circular228:before {
content: "\e01b";
}
.fl-bigmug-line-circular229:before {
content: "\e01c";
}
.fl-bigmug-line-clipboard68:before {
content: "\e01d";
}
.fl-bigmug-line-close42:before {
content: "\e01e";
}
.fl-bigmug-line-cloud255:before {
content: "\e01f";
}
.fl-bigmug-line-cloud260:before {
content: "\e020";
}
.fl-bigmug-line-cocktail26:before {
content: "\e021";
}
.fl-bigmug-line-code30:before {
content: "\e022";
}
.fl-bigmug-line-collapse5:before {
content: "\e023";
}
.fl-bigmug-line-comment45:before {
content: "\e024";
}
.fl-bigmug-line-compass80:before {
content: "\e025";
}
.fl-bigmug-line-contract5:before {
content: "\e026";
}
.fl-bigmug-line-copy23:before {
content: "\e027";
}
.fl-bigmug-line-crescent23:before {
content: "\e028";
}
.fl-bigmug-line-cropping1:before {
content: "\e029";
}
.fl-bigmug-line-cross81:before {
content: "\e02a";
}
.fl-bigmug-line-cross83:before {
content: "\e02b";
}
.fl-bigmug-line-cube29:before {
content: "\e02c";
}
.fl-bigmug-line-double97:before {
content: "\e02d";
}
.fl-bigmug-line-double98:before {
content: "\e02e";
}
.fl-bigmug-line-double99:before {
content: "\e02f";
}
.fl-bigmug-line-down55:before {
content: "\e030";
}
.fl-bigmug-line-down56:before {
content: "\e031";
}
.fl-bigmug-line-down58:before {
content: "\e032";
}
.fl-bigmug-line-down59:before {
content: "\e033";
}
.fl-bigmug-line-down64:before {
content: "\e034";
}
.fl-bigmug-line-download136:before {
content: "\e035";
}
.fl-bigmug-line-download142:before {
content: "\e036";
}
.fl-bigmug-line-download146:before {
content: "\e037";
}
.fl-bigmug-line-download147:before {
content: "\e038";
}
.fl-bigmug-line-download148:before {
content: "\e039";
}
.fl-bigmug-line-electrical17:before {
content: "\e03a";
}
.fl-bigmug-line-electronic57:before {
content: "\e03b";
}
.fl-bigmug-line-email64:before {
content: "\e03c";
}
.fl-bigmug-line-email67:before {
content: "\e03d";
}
.fl-bigmug-line-equalization3:before {
content: "\e03e";
}
.fl-bigmug-line-equalizer26:before {
content: "\e03f";
}
.fl-bigmug-line-event6:before {
content: "\e040";
}
.fl-bigmug-line-expand25:before {
content: "\e041";
}
.fl-bigmug-line-expanding2:before {
content: "\e042";
}
.fl-bigmug-line-fast33:before {
content: "\e043";
}
.fl-bigmug-line-favourites5:before {
content: "\e044";
}
.fl-bigmug-line-file68:before {
content: "\e045";
}
.fl-bigmug-line-file69:before {
content: "\e046";
}
.fl-bigmug-line-film57:before {
content: "\e047";
}
.fl-bigmug-line-flag53:before {
content: "\e048";
}
.fl-bigmug-line-fog10:before {
content: "\e049";
}
.fl-bigmug-line-foggy3:before {
content: "\e04a";
}
.fl-bigmug-line-folder173:before {
content: "\e04b";
}
.fl-bigmug-line-fork34:before {
content: "\e04c";
}
.fl-bigmug-line-four87:before {
conteLine truncated
|
||||
@@ -0,0 +1,692 @@
|
||||
:root {
|
||||
--monica-primary: #00626c;
|
||||
--monica-primary-light: #008898;
|
||||
--monica-ink: #212121;
|
||||
--monica-muted: #6b7280;
|
||||
--monica-surface: #f4f7f7;
|
||||
--monica-border: #d9e3e4;
|
||||
--monica-ok: #1a7f4b;
|
||||
--monica-warn: #b45309;
|
||||
--monica-danger: #b91c1c;
|
||||
--portal-sidebar: 240px;
|
||||
--exit-dark: #080808;
|
||||
--exit-teal: #00626c;
|
||||
--exit-teal-bright: #008898;
|
||||
}
|
||||
|
||||
/* Portal shell */
|
||||
body.portal {
|
||||
margin: 0;
|
||||
background: var(--monica-surface);
|
||||
font-family: "Work Sans", sans-serif;
|
||||
color: var(--monica-ink);
|
||||
}
|
||||
.portal-shell { display: flex; min-height: 100vh; }
|
||||
.portal-sidebar {
|
||||
width: var(--portal-sidebar);
|
||||
background: #080808;
|
||||
color: #cbd5e1;
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.portal-brand {
|
||||
padding: 16px 18px;
|
||||
border-bottom: 1px solid rgba(255,255,255,0.08);
|
||||
font-family: Poppins, sans-serif;
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
.portal-brand img {
|
||||
height: 36px;
|
||||
width: auto;
|
||||
display: block;
|
||||
}
|
||||
.portal-brand span { color: #7dd3da; font-size: 12px; letter-spacing: 0.04em; }
|
||||
.portal-nav { padding: 12px 0; flex: 1; }
|
||||
.portal-nav a {
|
||||
display: block;
|
||||
padding: 10px 18px;
|
||||
color: #94a3b8;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
border-left: 3px solid transparent;
|
||||
}
|
||||
.portal-nav a:hover { color: #fff; background: rgba(255,255,255,0.04); }
|
||||
.portal-nav a.active { color: #fff; background: rgba(0,98,108,0.28); border-left-color: #00a0ab; }
|
||||
.portal-nav .nav-section {
|
||||
font-size: 10px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.1em;
|
||||
color: #64748b;
|
||||
padding: 16px 18px 6px;
|
||||
}
|
||||
.portal-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
|
||||
.portal-topbar {
|
||||
background: #fff;
|
||||
border-bottom: 1px solid var(--monica-border);
|
||||
padding: 14px 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 16px;
|
||||
}
|
||||
.portal-topbar h1 { margin: 0; font-size: 20px; font-family: Poppins, sans-serif; font-weight: 600; }
|
||||
.portal-content { padding: 24px; flex: 1; }
|
||||
.portal-user { font-size: 13px; color: var(--monica-muted); }
|
||||
.portal-user strong { color: var(--monica-ink); }
|
||||
|
||||
/* Portal widgets */
|
||||
.stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; margin-bottom: 24px; }
|
||||
.analytics-overview {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(140px, 1fr) 4fr;
|
||||
gap: 16px;
|
||||
margin-bottom: 24px;
|
||||
align-items: stretch;
|
||||
}
|
||||
.analytics-overview .stat-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.analytics-overview .panel { margin-bottom: 0; }
|
||||
@media (max-width: 800px) {
|
||||
.analytics-overview { grid-template-columns: 1fr; }
|
||||
}
|
||||
.stat-card {
|
||||
background: #fff;
|
||||
border: 1px solid var(--monica-border);
|
||||
padding: 18px;
|
||||
}
|
||||
.stat-card .label { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--monica-muted); }
|
||||
.stat-card .value { font-size: 28px; font-weight: 700; font-family: Poppins, sans-serif; margin-top: 4px; }
|
||||
.stat-card .delta { font-size: 12px; margin-top: 4px; color: var(--monica-ok); }
|
||||
|
||||
.panel {
|
||||
background: #fff;
|
||||
border: 1px solid var(--monica-border);
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.panel-h {
|
||||
padding: 14px 18px;
|
||||
border-bottom: 1px solid var(--monica-border);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
}
|
||||
.panel-h h2 { margin: 0; font-size: 15px; font-family: Poppins, sans-serif; font-weight: 600; }
|
||||
.panel-b { padding: 18px; }
|
||||
|
||||
.btn {
|
||||
display: inline-block;
|
||||
padding: 9px 18px;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
font-family: "Work Sans", sans-serif;
|
||||
}
|
||||
.btn-primary { background: var(--monica-primary); color: #fff; }
|
||||
.btn-primary:hover { background: #004e56; color: #fff; text-decoration: none; }
|
||||
.btn-ghost { background: transparent; border: 1px solid var(--monica-border); color: var(--monica-ink); }
|
||||
.btn-sm { padding: 6px 12px; font-size: 12px; }
|
||||
|
||||
.table { width: 100%; border-collapse: collapse; font-size: 14px; }
|
||||
.table th {
|
||||
text-align: left;
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.06em;
|
||||
color: var(--monica-muted);
|
||||
padding: 10px 12px;
|
||||
border-bottom: 1px solid var(--monica-border);
|
||||
font-weight: 600;
|
||||
}
|
||||
.table td { padding: 12px; border-bottom: 1px solid var(--monica-border); vertical-align: middle; }
|
||||
.table tr:hover td { background: #f8fafc; }
|
||||
.table a { color: var(--monica-primary); text-decoration: none; font-weight: 500; }
|
||||
|
||||
.badge {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
border-radius: 2px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.04em;
|
||||
}
|
||||
.badge-new { background: #d0eef0; color: #00626c; }
|
||||
.badge-contacted { background: #fef3c7; color: #92400e; }
|
||||
.badge-won { background: #d1fae5; color: #065f46; }
|
||||
.badge-lost { background: #fee2e2; color: #991b1b; }
|
||||
.badge-sent { background: #d0eef0; color: #00626c; }
|
||||
.badge-scheduled { background: #ede9fe; color: #5b21b6; }
|
||||
.badge-delivered { background: #d1fae5; color: #065f46; }
|
||||
.badge-opened { background: #dbeafe; color: #1e40af; }
|
||||
.badge-clicked { background: #ede9fe; color: #5b21b6; }
|
||||
.badge-failed { background: #fee2e2; color: #991b1b; }
|
||||
.badge-optin { background: #d1fae5; color: #065f46; }
|
||||
.badge-optout { background: #f3f4f6; color: #4b5563; }
|
||||
.badge-draft { background: #f3f4f6; color: #4b5563; }
|
||||
.badge-completed { background: #d1fae5; color: #065f46; }
|
||||
.badge-cancelled { background: #f3f4f6; color: #4b5563; }
|
||||
.badge-sending { background: #d0eef0; color: #00626c; }
|
||||
.badge-queued { background: #ede9fe; color: #5b21b6; }
|
||||
.badge-bounced { background: #fee2e2; color: #991b1b; }
|
||||
.badge-published { background: #d1fae5; color: #065f46; }
|
||||
.badge-publishing { background: #d0eef0; color: #00626c; }
|
||||
|
||||
.form-grid { display: grid; gap: 16px; }
|
||||
.form-grid.cols-2 { grid-template-columns: 1fr 1fr; }
|
||||
@media (max-width: 700px) { .form-grid.cols-2 { grid-template-columns: 1fr; } }
|
||||
.field label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 6px; color: #374151; }
|
||||
.field input, .field select, .field textarea {
|
||||
width: 100%;
|
||||
padding: 10px 12px;
|
||||
border: 1px solid var(--monica-border);
|
||||
font: inherit;
|
||||
background: #fff;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.field textarea { min-height: 100px; resize: vertical; }
|
||||
.field .hint { font-size: 12px; color: var(--monica-muted); margin-top: 4px; }
|
||||
|
||||
.channel-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--monica-border); margin-bottom: 18px; }
|
||||
.channel-tabs a {
|
||||
padding: 10px 16px;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: var(--monica-muted);
|
||||
text-decoration: none;
|
||||
border-bottom: 2px solid transparent;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
.channel-tabs a.active { color: var(--monica-primary); border-bottom-color: var(--monica-primary); }
|
||||
|
||||
.chart-placeholder {
|
||||
height: 220px;
|
||||
background: linear-gradient(180deg, #e8f4f5 0%, #fff 100%);
|
||||
border: 1px dashed #a8d8dc;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
gap: 12px;
|
||||
padding: 24px 16px 12px;
|
||||
}
|
||||
.chart-placeholder > .bar {
|
||||
flex: 1;
|
||||
background: var(--monica-primary);
|
||||
opacity: 0.75;
|
||||
border-radius: 2px 2px 0 0;
|
||||
min-height: 8px;
|
||||
}
|
||||
.chart-placeholder .chart-bar-col {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
justify-content: flex-end;
|
||||
min-width: 0;
|
||||
height: 100%;
|
||||
}
|
||||
.chart-placeholder .chart-bar-col .bar {
|
||||
width: 100%;
|
||||
background: var(--monica-primary);
|
||||
opacity: 0.75;
|
||||
border-radius: 2px 2px 0 0;
|
||||
min-height: 8px;
|
||||
transition: height 0.25s ease;
|
||||
}
|
||||
.chart-placeholder .chart-bar-meta {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
margin-top: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
.chart-placeholder .chart-bar-value {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
color: #0f172a;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.chart-placeholder .chart-bar-label {
|
||||
font-size: 11px;
|
||||
color: var(--monica-muted);
|
||||
line-height: 1.2;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.consent-pills { display: flex; gap: 6px; flex-wrap: wrap; }
|
||||
.preview-pane {
|
||||
background: #f8fafc;
|
||||
border: 1px solid var(--monica-border);
|
||||
padding: 16px;
|
||||
font-size: 14px;
|
||||
min-height: 160px;
|
||||
}
|
||||
.calendar-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(7, 1fr);
|
||||
gap: 4px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.calendar-grid .dow { text-align: center; color: var(--monica-muted); font-weight: 600; padding: 6px; }
|
||||
.calendar-grid .day {
|
||||
aspect-ratio: 1;
|
||||
border: 1px solid var(--monica-border);
|
||||
background: #fff;
|
||||
padding: 6px;
|
||||
position: relative;
|
||||
}
|
||||
.calendar-grid .day.has-post { background: #e8f4f5; }
|
||||
.calendar-grid .day .dot {
|
||||
width: 6px; height: 6px; border-radius: 50%;
|
||||
background: var(--monica-primary);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.login-wrap {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: linear-gradient(160deg, #080808, #00626c 60%, #e8f4f5 60%);
|
||||
padding: 24px;
|
||||
}
|
||||
.login-card {
|
||||
background: #fff;
|
||||
width: 100%;
|
||||
max-width: 400px;
|
||||
padding: 36px 32px;
|
||||
border: 1px solid var(--monica-border);
|
||||
}
|
||||
.login-card h1 { font-family: Poppins, sans-serif; font-size: 22px; margin: 0 0 6px; }
|
||||
.login-card .sub { color: var(--monica-muted); font-size: 14px; margin-bottom: 24px; }
|
||||
|
||||
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
|
||||
@media (max-width: 900px) {
|
||||
.portal-shell { flex-direction: column; }
|
||||
.portal-sidebar { width: 100%; }
|
||||
.portal-nav { display: flex; flex-wrap: wrap; padding: 8px; }
|
||||
.portal-nav .nav-section { display: none; }
|
||||
.portal-nav a { border-left: none; border-bottom: 2px solid transparent; padding: 8px 12px; }
|
||||
.portal-nav a.active { border-bottom-color: #00a0ab; }
|
||||
.split { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
/* Public brand — EXIT Realty logo from exitrealtywheaton.com */
|
||||
.page .rd-navbar-brand {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
.page .rd-navbar-brand img {
|
||||
display: block !important;
|
||||
height: 44px;
|
||||
width: auto;
|
||||
max-width: 160px;
|
||||
}
|
||||
.page .rd-navbar-brand::before,
|
||||
.page .rd-navbar-brand::after { content: none !important; display: none !important; }
|
||||
.page .rd-navbar-brand .brand-site {
|
||||
font-family: Poppins, sans-serif;
|
||||
font-weight: 700;
|
||||
font-size: 13px;
|
||||
letter-spacing: 0.04em;
|
||||
color: #00626c;
|
||||
text-decoration: none;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.page .rd-navbar-brand .brand-site span {
|
||||
display: block;
|
||||
font-size: 10px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.12em;
|
||||
text-transform: uppercase;
|
||||
color: #6b7280;
|
||||
}
|
||||
|
||||
/* Shared extras */
|
||||
.muted { color: var(--monica-muted); font-size: 12px; }
|
||||
.text-warn { color: var(--monica-warn); font-size: 12px; }
|
||||
.hint-block { font-size: 13px; color: var(--monica-muted); margin: 12px 0 0; }
|
||||
.plain-list { margin: 0 0 12px; padding-left: 18px; }
|
||||
.plain-list li { margin-bottom: 6px; }
|
||||
.check-row { display: flex; align-items: center; gap: 8px; font-size: 14px; }
|
||||
.check-row.account-pick { align-items: flex-start; }
|
||||
.account-pick-copy {
|
||||
min-width: 0;
|
||||
overflow-wrap: anywhere;
|
||||
word-break: break-word;
|
||||
}
|
||||
.account-pick-copy strong { display: block; font-weight: 600; }
|
||||
.account-rename {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.account-rename input[type="text"] {
|
||||
flex: 1;
|
||||
min-width: 160px;
|
||||
max-width: 100%;
|
||||
padding: 8px 10px;
|
||||
border: 1px solid var(--monica-border);
|
||||
font: inherit;
|
||||
background: #fff;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.row-warn td { background: #fffbeb; }
|
||||
.auth-alert {
|
||||
background: #fff7ed;
|
||||
border: 1px solid #fdba74;
|
||||
color: #9a3412;
|
||||
padding: 12px 16px;
|
||||
margin-bottom: 16px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.auth-alert a { color: #9a3412; font-weight: 600; }
|
||||
|
||||
/* Social accounts */
|
||||
.connect-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 12px;
|
||||
}
|
||||
@media (max-width: 900px) {
|
||||
.connect-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
.connect-card {
|
||||
display: flex; gap: 14px; align-items: flex-start; text-align: left;
|
||||
padding: 14px; border: 1px solid var(--monica-border); background: #fff;
|
||||
cursor: pointer; font: inherit; width: 100%;
|
||||
}
|
||||
.connect-card:hover { border-color: var(--monica-primary); }
|
||||
.connect-card.is-active { border-color: var(--monica-primary); box-shadow: inset 0 0 0 1px var(--monica-primary); }
|
||||
.connect-card p { margin: 4px 0 0; font-size: 13px; color: var(--monica-muted); }
|
||||
.connect-form-panel {
|
||||
margin-top: 16px;
|
||||
padding-top: 16px;
|
||||
border-top: 1px solid var(--monica-border);
|
||||
}
|
||||
.connect-steps {
|
||||
margin: 0 0 16px;
|
||||
padding-left: 18px;
|
||||
font-size: 13px;
|
||||
color: var(--monica-muted);
|
||||
}
|
||||
.connect-steps li { margin-bottom: 8px; }
|
||||
.connect-steps a { color: var(--monica-primary); }
|
||||
.platform-icon {
|
||||
width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center;
|
||||
justify-content: center; color: #fff; font-weight: 700; flex-shrink: 0; font-size: 14px;
|
||||
}
|
||||
.platform-icon.meta { background: #1877f2; }
|
||||
.platform-icon.ig { background: linear-gradient(45deg, #f58529, #dd2a7b, #8134af); font-size: 12px; }
|
||||
.platform-icon.li { background: #0a66c2; }
|
||||
.platform-pill {
|
||||
display: inline-block; padding: 2px 8px; font-size: 11px; font-weight: 600;
|
||||
color: #fff; border-radius: 2px;
|
||||
}
|
||||
.platform-pill.meta { background: #1877f2; }
|
||||
.platform-pill.ig { background: #dd2a7b; }
|
||||
.platform-pill.li { background: #0a66c2; }
|
||||
|
||||
/* Import wizard */
|
||||
.steps {
|
||||
display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px;
|
||||
}
|
||||
.step {
|
||||
display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--monica-muted);
|
||||
padding: 8px 12px; background: #fff; border: 1px solid var(--monica-border);
|
||||
}
|
||||
.step span {
|
||||
width: 22px; height: 22px; border-radius: 50%; background: #e5e7eb; color: #374151;
|
||||
display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
|
||||
}
|
||||
.step.active { border-color: var(--monica-primary); color: var(--monica-ink); }
|
||||
.step.active span { background: var(--monica-primary); color: #fff; }
|
||||
.dropzone {
|
||||
border: 2px dashed var(--monica-border); padding: 32px; text-align: center; background: #f8fafc;
|
||||
}
|
||||
|
||||
/* Designer shared layout */
|
||||
.designer-layout {
|
||||
display: grid; grid-template-columns: minmax(280px, 380px) 1fr; gap: 20px; align-items: start;
|
||||
}
|
||||
.designer-layout.with-ai {
|
||||
grid-template-columns: minmax(260px, 340px) minmax(240px, 320px) 1fr;
|
||||
}
|
||||
@media (max-width: 1200px) {
|
||||
.designer-layout.with-ai { grid-template-columns: 1fr 1fr; }
|
||||
.designer-layout.with-ai .designer-preview-col { grid-column: 1 / -1; }
|
||||
}
|
||||
@media (max-width: 960px) {
|
||||
.designer-layout,
|
||||
.designer-layout.with-ai { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
/* PCM Integrations embedded designer */
|
||||
.pcm-iframe-wrap {
|
||||
padding: 0 !important;
|
||||
min-height: 70vh;
|
||||
background: #f8fafc;
|
||||
}
|
||||
.pcm-iframe-wrap iframe {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: min(80vh, 900px);
|
||||
border: 0;
|
||||
background: #fff;
|
||||
}
|
||||
.pcm-designer .table tr.is-active td {
|
||||
background: #e8f4f5;
|
||||
}
|
||||
|
||||
/* Size picker */
|
||||
.size-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
|
||||
.size-option {
|
||||
border: 1px solid var(--monica-border); background: #fff; padding: 10px 12px;
|
||||
text-align: left; cursor: pointer; font: inherit; color: inherit;
|
||||
}
|
||||
.size-option:hover { border-color: var(--monica-primary); }
|
||||
.size-option.active {
|
||||
border-color: var(--monica-primary); background: #e8f4f5;
|
||||
box-shadow: inset 3px 0 0 var(--monica-primary);
|
||||
}
|
||||
.size-option .sz-name { font-weight: 700; font-size: 13px; font-family: Poppins, sans-serif; }
|
||||
.size-option .sz-meta { font-size: 11px; color: var(--monica-muted); margin-top: 2px; }
|
||||
.size-option .sz-badge {
|
||||
display: inline-block; margin-top: 6px; font-size: 10px; font-weight: 600;
|
||||
text-transform: uppercase; letter-spacing: 0.04em; color: var(--monica-primary);
|
||||
}
|
||||
|
||||
/* Media library */
|
||||
.media-library { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
|
||||
.media-tile {
|
||||
position: relative; aspect-ratio: 4 / 3; border: 2px solid transparent;
|
||||
background-size: cover; background-position: center; background-color: #e5e7eb;
|
||||
cursor: pointer; padding: 0; overflow: hidden;
|
||||
}
|
||||
.media-tile.active { border-color: var(--monica-primary); }
|
||||
.media-tile .media-label {
|
||||
position: absolute; left: 0; right: 0; bottom: 0; padding: 4px 6px;
|
||||
background: rgba(15, 23, 42, 0.72); color: #fff; font-size: 10px;
|
||||
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||||
}
|
||||
.media-tile.upload-tile {
|
||||
border: 2px dashed var(--monica-border); background: #f8fafc;
|
||||
display: flex; flex-direction: column; align-items: center; justify-content: center;
|
||||
gap: 4px; color: var(--monica-muted); font-size: 11px; font-weight: 600;
|
||||
}
|
||||
.media-tile.upload-tile:hover { border-color: var(--monica-primary); color: var(--monica-primary); }
|
||||
.media-tile.upload-tile span { font-size: 22px; line-height: 1; color: var(--monica-primary); }
|
||||
.dropzone.compact { padding: 16px; font-size: 13px; cursor: pointer; }
|
||||
.dropzone.compact:hover { border-color: var(--monica-primary); }
|
||||
.library-hint { font-size: 12px; color: var(--monica-muted); margin: 8px 0 0; }
|
||||
|
||||
/* AI chat assist */
|
||||
.ai-chat {
|
||||
display: flex; flex-direction: column; height: min(640px, 75vh);
|
||||
background: #fff; border: 1px solid var(--monica-border);
|
||||
}
|
||||
.ai-chat-h {
|
||||
padding: 12px 14px; border-bottom: 1px solid var(--monica-border);
|
||||
display: flex; align-items: center; justify-content: space-between; gap: 8px;
|
||||
}
|
||||
.ai-chat-h h2 { margin: 0; font-size: 15px; font-family: Poppins, sans-serif; font-weight: 600; }
|
||||
.ai-pill {
|
||||
font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
|
||||
background: #e8f4f5; color: var(--monica-primary); padding: 3px 8px;
|
||||
}
|
||||
.ai-chat-messages {
|
||||
flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 12px;
|
||||
background: linear-gradient(180deg, #f8fafc 0%, #fff 40%);
|
||||
}
|
||||
.ai-msg { max-width: 92%; font-size: 13px; line-height: 1.45; }
|
||||
.ai-msg.bot { align-self: flex-start; }
|
||||
.ai-msg.user { align-self: flex-end; }
|
||||
.ai-msg .bubble {
|
||||
padding: 10px 12px; border: 1px solid var(--monica-border); background: #fff;
|
||||
}
|
||||
.ai-msg.user .bubble {
|
||||
background: var(--monica-primary); color: #fff; border-color: var(--monica-primary);
|
||||
}
|
||||
.ai-msg .who {
|
||||
font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
|
||||
color: var(--monica-muted); margin-bottom: 4px;
|
||||
}
|
||||
.ai-msg.user .who { text-align: right; color: var(--monica-primary); }
|
||||
.ai-draft {
|
||||
margin-top: 8px; padding: 10px; background: #f8fafc; border: 1px dashed #a8d8dc;
|
||||
white-space: pre-wrap; font-size: 12px; color: var(--monica-ink);
|
||||
}
|
||||
.ai-msg-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
|
||||
.ai-chat-prompts {
|
||||
padding: 8px 12px; border-top: 1px solid var(--monica-border);
|
||||
display: flex; flex-wrap: wrap; gap: 6px; background: #fafbfc;
|
||||
}
|
||||
.chip {
|
||||
border: 1px solid var(--monica-border); background: #fff; font: inherit;
|
||||
font-size: 11px; font-weight: 600; padding: 5px 10px; cursor: pointer; color: var(--monica-ink);
|
||||
}
|
||||
.chip:hover { border-color: var(--monica-primary); color: var(--monica-primary); }
|
||||
.ai-chat-input {
|
||||
border-top: 1px solid var(--monica-border); padding: 10px 12px;
|
||||
display: flex; gap: 8px; align-items: flex-end;
|
||||
}
|
||||
.ai-chat-input textarea {
|
||||
flex: 1; min-height: 44px; max-height: 100px; resize: vertical;
|
||||
border: 1px solid var(--monica-border); padding: 8px 10px; font: inherit; font-size: 13px;
|
||||
}
|
||||
.ai-chat-input .btn { flex-shrink: 0; }
|
||||
|
||||
/* Postcard */
|
||||
.postcard {
|
||||
width: 100%; max-width: 420px; aspect-ratio: 6 / 4; position: relative; overflow: hidden;
|
||||
background: #111; box-shadow: 0 12px 40px rgba(15, 23, 42, 0.25); color: #fff;
|
||||
transition: max-width 0.2s, aspect-ratio 0.2s;
|
||||
}
|
||||
.postcard.size-4x6 { max-width: 420px; aspect-ratio: 6 / 4; }
|
||||
.postcard.size-6x9 { max-width: 480px; aspect-ratio: 9 / 6; }
|
||||
.postcard.size-6x11 { max-width: 520px; aspect-ratio: 11 / 6; }
|
||||
.postcard.size-square { max-width: 400px; aspect-ratio: 1 / 1; }
|
||||
.postcard-media {
|
||||
position: absolute; inset: 0; background-size: cover; background-position: center;
|
||||
}
|
||||
.postcard-overlay { position: absolute; inset: 0; pointer-events: none; }
|
||||
.postcard-overlay.ov-dark { background: linear-gradient(transparent 35%, rgba(0,0,0,.75)); }
|
||||
.postcard-overlay.ov-light { background: linear-gradient(transparent 50%, rgba(255,255,255,.92)); }
|
||||
.postcard-overlay.ov-none { background: none; }
|
||||
.postcard-overlay.ov-light ~ .postcard-copy,
|
||||
.ov-light + .postcard-copy { color: #111; }
|
||||
.postcard-copy {
|
||||
position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 2;
|
||||
}
|
||||
.postcard-headline {
|
||||
font-family: Poppins, sans-serif; font-weight: 700; font-size: 28px; letter-spacing: 0.04em;
|
||||
border-left: 4px solid #00626c; padding-left: 10px; line-height: 1.1;
|
||||
}
|
||||
.postcard-sub { margin-top: 8px; font-size: 14px; opacity: 0.95; }
|
||||
.postcard-back { background: #fafafa; color: #212121; }
|
||||
.postcard-back-grid { display: grid; grid-template-columns: 1.2fr 1fr; height: 100%; }
|
||||
.postcard-back-msg { padding: 16px; display: flex; flex-direction: column; gap: 10px; border-right: 1px dashed #cbd5e1; }
|
||||
.postcard-back-body { font-size: 12px; white-space: pre-wrap; flex: 1; line-height: 1.45; }
|
||||
.postcard-agent { font-size: 11px; font-weight: 600; color: #00626c; }
|
||||
.postcard-qr {
|
||||
width: 48px; height: 48px; background: #111; color: #fff; font-size: 10px;
|
||||
display: flex; align-items: center; justify-content: center; letter-spacing: 0.05em;
|
||||
}
|
||||
.postcard-back-mail { padding: 12px; position: relative; }
|
||||
.stamp {
|
||||
width: 44px; height: 52px; border: 2px dashed #94a3b8; float: right;
|
||||
font-size: 9px; color: #94a3b8; display: flex; align-items: center; justify-content: center;
|
||||
}
|
||||
.addr-block {
|
||||
margin-top: 48px; font-size: 12px; line-height: 1.4;
|
||||
border-bottom: 1px solid #e2e8f0; padding-bottom: 8px;
|
||||
}
|
||||
|
||||
/* Social live preview */
|
||||
.platform-toggles { display: flex; flex-wrap: wrap; gap: 8px; }
|
||||
.toggle-pill {
|
||||
border: 1px solid var(--monica-border); padding: 8px 12px; font-size: 13px;
|
||||
background: #fff; display: inline-flex; align-items: center; gap: 6px;
|
||||
}
|
||||
.toggle-pill.warn { border-color: #fdba74; background: #fff7ed; }
|
||||
.social-phone {
|
||||
width: 100%; max-width: 360px; background: #fff; border: 1px solid #d1d5db;
|
||||
box-shadow: 0 8px 30px rgba(15,23,42,.12); overflow: hidden; font-size: 14px;
|
||||
}
|
||||
.social-phone.ig { max-width: 340px; }
|
||||
.soc-header {
|
||||
display: flex; align-items: center; gap: 10px; padding: 12px 14px; position: relative;
|
||||
}
|
||||
.soc-avatar {
|
||||
width: 40px; height: 40px; background: #00626c; color: #fff; display: flex;
|
||||
align-items: center; justify-content: center; font-weight: 700; font-size: 13px; flex-shrink: 0;
|
||||
}
|
||||
.soc-avatar.round { border-radius: 50%; background: linear-gradient(45deg, #f58529, #dd2a7b); }
|
||||
.soc-avatar.sq { border-radius: 4px; background: #0a66c2; }
|
||||
.soc-name { font-weight: 700; font-size: 13px; }
|
||||
.soc-meta { font-size: 11px; color: #6b7280; }
|
||||
.soc-more { margin-left: auto; color: #6b7280; }
|
||||
.soc-caption { padding: 0 14px 12px; white-space: pre-wrap; line-height: 1.4; font-size: 13px; }
|
||||
.soc-image {
|
||||
height: 200px; background-size: cover; background-position: center; background-color: #e5e7eb;
|
||||
}
|
||||
.soc-image.square { height: 340px; }
|
||||
.soc-actions {
|
||||
padding: 10px 14px; border-top: 1px solid #e5e7eb; font-size: 12px; color: #4b5563; font-weight: 600;
|
||||
}
|
||||
.ig-act { font-size: 18px; border-top: none; padding-top: 8px; }
|
||||
|
||||
|
||||
|
||||
/* Portal logout button in topbar */
|
||||
.portal-user form { display: inline; margin: 0; }
|
||||
.portal-user button.linkish {
|
||||
background: none; border: 0; padding: 0; color: var(--monica-primary);
|
||||
font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; text-decoration: underline;
|
||||
}
|
||||
.portal-flash { list-style: none; margin: 0 0 16px; padding: 0; }
|
||||
.portal-flash li {
|
||||
padding: 10px 14px; background: #e8f4f5; border-left: 3px solid var(--monica-primary);
|
||||
margin-bottom: 8px; font-size: 14px;
|
||||
}
|
||||
.portal-flash li.error { background: #fee2e2; border-left-color: #b91c1c; }
|
||||
.toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
|
||||
.toolbar-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
|
||||
.toolbar-filters input, .toolbar-filters select {
|
||||
padding: 8px 10px; border: 1px solid var(--monica-border); font: inherit; font-size: 13px; background: #fff;
|
||||
}
|
||||
.empty-state { padding: 24px; color: var(--monica-muted); font-size: 14px; }
|
||||
@@ -0,0 +1,211 @@
|
||||
:root {
|
||||
--bg: #1a2332;
|
||||
--bg-2: #243044;
|
||||
--ink: #f3efe6;
|
||||
--muted: #b7c0ce;
|
||||
--accent: #c4a574;
|
||||
--accent-2: #7ea08a;
|
||||
--danger: #c97b7b;
|
||||
--radius: 2px;
|
||||
--font-display: "Fraunces", Georgia, serif;
|
||||
--font-body: "Source Sans 3", system-ui, sans-serif;
|
||||
}
|
||||
|
||||
* { box-sizing: border-box; }
|
||||
html, body { margin: 0; padding: 0; }
|
||||
body {
|
||||
font-family: var(--font-body);
|
||||
color: var(--ink);
|
||||
background:
|
||||
radial-gradient(1200px 600px at 10% -10%, #2c3d55 0%, transparent 55%),
|
||||
radial-gradient(900px 500px at 100% 0%, #3a2f28 0%, transparent 45%),
|
||||
var(--bg);
|
||||
min-height: 100vh;
|
||||
line-height: 1.5;
|
||||
}
|
||||
a { color: var(--accent); text-decoration: none; }
|
||||
a:hover { text-decoration: underline; }
|
||||
.site-header, .site-footer {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 1rem 1.5rem;
|
||||
gap: 1rem;
|
||||
}
|
||||
.site-header nav { display: flex; gap: 1rem; flex-wrap: wrap; }
|
||||
.brand {
|
||||
font-family: var(--font-display);
|
||||
font-size: 1.4rem;
|
||||
color: var(--ink);
|
||||
font-weight: 700;
|
||||
}
|
||||
main { padding: 1.5rem; max-width: 1100px; margin: 0 auto; }
|
||||
.hero {
|
||||
min-height: 70vh;
|
||||
display: grid;
|
||||
align-content: end;
|
||||
gap: 0.75rem;
|
||||
padding: 2rem 0 3rem;
|
||||
}
|
||||
.hero h1 {
|
||||
font-family: var(--font-display);
|
||||
font-size: clamp(2.4rem, 6vw, 4.2rem);
|
||||
margin: 0;
|
||||
max-width: 14ch;
|
||||
line-height: 1.05;
|
||||
}
|
||||
.hero p { max-width: 42ch; color: var(--muted); font-size: 1.1rem; }
|
||||
.btn {
|
||||
display: inline-block;
|
||||
background: var(--accent);
|
||||
color: #1a2332;
|
||||
padding: 0.7rem 1.2rem;
|
||||
border: 0;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn.secondary { background: transparent; color: var(--ink); border: 1px solid var(--muted); }
|
||||
.flash { list-style: none; padding: 0 1.5rem; }
|
||||
.flash li { background: var(--bg-2); padding: 0.6rem 0.9rem; margin: 0.4rem 0; }
|
||||
.form-grid { display: grid; gap: 0.8rem; max-width: 32rem; }
|
||||
.form-grid label { display: grid; gap: 0.3rem; color: var(--muted); }
|
||||
.form-grid input, .form-grid textarea, .form-grid select {
|
||||
background: var(--bg-2);
|
||||
border: 1px solid #3a4a63;
|
||||
color: var(--ink);
|
||||
padding: 0.6rem 0.7rem;
|
||||
font: inherit;
|
||||
}
|
||||
.portal-shell { display: grid; grid-template-columns: 220px 1fr; gap: 1.5rem; min-height: 70vh; }
|
||||
.portal-nav {
|
||||
background: rgba(36, 48, 68, 0.85);
|
||||
padding: 1rem;
|
||||
display: grid;
|
||||
gap: 0.55rem;
|
||||
align-content: start;
|
||||
}
|
||||
.portal-nav a { color: var(--ink); }
|
||||
.portal-logout { margin: 0; }
|
||||
.portal-logout button {
|
||||
background: none;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
color: var(--ink);
|
||||
font: inherit;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
}
|
||||
.portal-logout button:hover { text-decoration: underline; }
|
||||
.brand-mini { font-family: var(--font-display); margin: 0 0 0.5rem; color: var(--accent); }
|
||||
.stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.8rem; }
|
||||
.stat {
|
||||
background: rgba(36, 48, 68, 0.9);
|
||||
padding: 1rem;
|
||||
}
|
||||
.stat strong { display: block; font-size: 1.6rem; font-family: var(--font-display); }
|
||||
.table { width: 100%; border-collapse: collapse; }
|
||||
.table th, .table td { text-align: left; padding: 0.55rem 0.4rem; border-bottom: 1px solid #33455f; }
|
||||
.holding {
|
||||
min-height: 80vh;
|
||||
display: grid;
|
||||
align-content: center;
|
||||
gap: 1rem;
|
||||
max-width: 36rem;
|
||||
}
|
||||
.holding h1 { font-family: var(--font-display); font-size: clamp(2rem, 5vw, 3rem); margin: 0; }
|
||||
.muted { color: var(--muted); }
|
||||
.error { color: var(--danger); }
|
||||
|
||||
.visually-hidden {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.site-footer {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.footer-meta { display: grid; gap: 0.25rem; }
|
||||
.footer-meta p { margin: 0; color: var(--muted); }
|
||||
.footer-links { margin: 0; }
|
||||
.footer-link-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
color: var(--muted);
|
||||
font: inherit;
|
||||
font-size: 0.9rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
.footer-link-btn:hover {
|
||||
color: var(--accent);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.cookie-consent-banner {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1100;
|
||||
padding: 1rem;
|
||||
background: rgba(26, 35, 50, 0.97);
|
||||
border-top: 1px solid rgba(196, 165, 116, 0.35);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
.cookie-consent-content {
|
||||
max-width: 960px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
}
|
||||
.cookie-consent-text {
|
||||
flex: 1 1 420px;
|
||||
color: var(--muted);
|
||||
font-size: 0.95rem;
|
||||
margin: 0;
|
||||
}
|
||||
.cookie-consent-text-short { display: none; }
|
||||
.cookie-consent-actions {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.cookie-consent-banner {
|
||||
padding: 0.625rem 0.75rem;
|
||||
padding-bottom: max(0.625rem, env(safe-area-inset-bottom));
|
||||
}
|
||||
.cookie-consent-content {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
gap: 0.625rem;
|
||||
}
|
||||
.cookie-consent-text-short { display: inline; }
|
||||
.cookie-consent-text-full { display: none; }
|
||||
.cookie-consent-text {
|
||||
flex: none;
|
||||
font-size: 0.8125rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
.cookie-consent-actions { width: 100%; }
|
||||
.cookie-consent-actions .btn {
|
||||
flex: 1;
|
||||
padding: 0.5rem 0.75rem;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 800px) {
|
||||
.portal-shell { grid-template-columns: 1fr; }
|
||||
}
|
||||
@@ -0,0 +1,239 @@
|
||||
@charset "UTF-8";
/*
|
||||
* Trunk version 2.0.0
|
||||
*/
a:focus,
button:focus {
outline: none !important;
}
button::-moz-focus-inner {
border: 0;
}
*:focus {
outline: none;
}
blockquote {
padding: 0;
margin: 0;
}
input,
button,
select,
textarea {
outline: none;
}
label {
margin-bottom: 0;
}
p {
margin: 0;
}
ul,
ol {
list-style: none;
padding: 0;
margin: 0;
}
ul li,
ol li {
display: block;
}
dl {
margin: 0;
}
dt,
dd {
line-height: inherit;
}
dt {
font-weight: inherit;
}
dd {
margin-bottom: 0;
}
cite {
font-style: normal;
}
form {
margin-bottom: 0;
}
blockquote {
padding-left: 0;
border-left: 0;
}
address {
margin-top: 0;
margin-bottom: 0;
}
figure {
margin-bottom: 0;
}
html p a:hover {
text-decoration: none;
}
/*
|
||||
*
|
||||
* Typography
|
||||
*/
body {
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 14px;
line-height: 1.7;
font-weight: 300;
color: #74757f;
background-color: #fff;
-webkit-text-size-adjust: none;
-webkit-font-smoothing: subpixel-antialiased;
letter-spacing: .03em;
}
@media (min-width: 768px) {
body {
font-size: 16px;
line-height: 1.5;
}
}
h1, h2, h3, h4, h5, h6, [class^='heading-'] {
margin-top: 0;
margin-bottom: 0;
color: #151515;
}
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, [class^='heading-'] a:hover {
color: #0045b6;
}
h1 span, h2 span, h3 span, h4 span, h5 span, h6 span, [class^='heading-'] span {
display: inline-block;
}
h1 span[data-toggle='modal'], h2 span[data-toggle='modal'], h3 span[data-toggle='modal'], h4 span[data-toggle='modal'], h5 span[data-toggle='modal'], h6 span[data-toggle='modal'], [class^='heading-'] span[data-toggle='modal'] {
border-bottom: 2px dashed rgba(0, 69, 182, 0.3);
cursor: pointer;
}
h1 > span.icon, h2 > span.icon, h3 > span.icon, h4 > span.icon, h5 > span.icon, h6 > span.icon, [class^='heading-'] > span.icon {
display: inline-block;
margin-right: 5px;
}
h1,
.heading-1 {
font-size: 30px;
line-height: 1.15;
letter-spacing: 0;
}
@media (min-width: 576px) {
h1,
.heading-1 {
font-size: 32px;
}
}
@media (min-width: 768px) {
h1,
.heading-1 {
font-size: 46px;
line-height: 1.25;
}
}
@media (min-width: 992px) {
h1,
.heading-1 {
font-size: 54px;
}
}
@media (min-width: 1200px) {
h1,
.heading-1 {
font-size: 58px;
}
}
@media (min-width: 1600px) {
h1,
.heading-1 {
font-size: 90px;
line-height: 0.88889;
}
}
h2,
.heading-2 {
font-family: "Poppins", sans-serif;
font-size: 28px;
line-height: 1.4;
letter-spacing: 0;
}
@media (min-width: 576px) {
h2,
.heading-2 {
font-size: 30px;
}
}
@media (min-width: 768px) {
h2,
.heading-2 {
font-size: 44px;
}
}
@media (min-width: 1200px) {
h2,
.heading-2 {
font-size: 50px;
line-height: 1.4;
}
}
h3,
.heading-3 {
font-size: 24px;
line-height: 1.3;
letter-spacing: 0;
}
@media (min-width: 768px) {
h3,
.heading-3 {
font-size: 30px;
line-height: 1.4;
}
}
@media (min-width: 1200px) {
h3,
.heading-3 {
font-size: 38px;
line-height: 1.21053;
}
}
h3 .big,
.heading-3 .big {
font-size: 2em;
line-height: 1;
}
h4,
.heading-4 {
font-size: 18px;
line-height: 1.5;
letter-spacing: 0;
}
@media (min-width: 1200px) {
h4,
.heading-4 {
font-size: 24px;
line-height: 1.33333;
}
}
h4.h4-smaller,
.heading-4.h4-smaller {
font-size: 19px;
}
@media (min-width: 1200px) {
h4.h4-smaller,
.heading-4.h4-smaller {
font-size: 22px;
line-height: 1.45455;
}
}
h5,
.heading-5 {
font-size: 16px;
line-height: 1.5;
letter-spacing: .01em;
}
@media (min-width: 768px) {
h5,
.heading-5 {
font-size: 22px;
line-height: 1.27273;
}
}
h6,
.heading-6 {
font-family: "Poppins", sans-serif;
font-size: 14px;
line-height: 1.8;
letter-spacing: .2em;
text-transform: uppercase;
}
@media (min-width: 768px) {
h6,
.heading-6 {
font-size: 16px;
line-height: 1.5;
font-weight: 700;
}
}
.title-decorated {
position: relative;
padding-left: 40px;
text-align: left;
}
.title-decorated::before {
content: '';
position: absolute;
left: 0;
top: 12px;
width: 30px;
border-bottom: 1px solid;
}
.title-docor-text {
font-size: 20px;
color: #fff;
}
@media (min-width: 576px) {
.title-docor-text {
font-size: 24px;
}
}
@media (min-width: 768px) {
.title-docor-text {
padding-left: 96px;
font-size: 37px;
}
.title-docor-text::before {
width: 74px;
border-bottom-width: 2px;
}
}
@media (min-width: 768px) {
.title-decorated-lg {
padding-left: 80px;
}
.title-decorated-lg::before {
width: 62px;
}
.title-decorated-lg + p {
margin-top: 32px;
}
}
small,
.small {
display: block;
font-size: 12px;
line-height: 1.5;
}
mark,
.mark {
padding: 3px 5px;
color: #fff;
background: #0045b6;
}
strong {
font-weight: 700;
color: #74757f;
}
.big {
font-size: 16px;
line-height: 1.55;
}
@media (min-width: 768px) {
.big {
font-size: 20px;
line-height: 1.6;
}
}
.lead {
font-size: 24px;
line-height: 34px;
font-weight: 300;
}
code {
padding: 4px 5px;
border-radius: 0;
font-size: 90%;
color: #111111;
background: #f5f6fa;
}
.text-large {
font-family: "Poppins", sans-serif;
font-size: 30px;
font-weight: 500;
letter-spacing: 0;
line-height: 1.2;
text-transform: uppercase;
}
@media (min-width: 576px) {
.text-large {
font-size: 55px;
}
}
@media (min-width: 768px) {
.text-large {
font-size: 68px;
}
}
@media (min-width: 992px) {
.text-large {
font-size: 80px;
}
}
@media (min-width: 1200px) {
.text-large {
font-size: 100px;
}
}
.context-dark .text-large, .bg-gray-700 .text-large, .bg-gray-800 .text-large, .bg-primary .text-large, .bg-primary-darker .text-large {
color: #fff;
}
.text-extra-large {
font-size: 100px;
line-height: .8Line truncated
|
||||
*
|
||||
* Brand
|
||||
*/
.brand {
display: inline-block;
}
.brand .brand-logo-light {
display: none;
}
.brand .brand-logo-dark {
display: block;
}
/*
|
||||
*
|
||||
* Links
|
||||
*/
a {
transition: all 0.3s ease-in-out;
}
a, a:focus, a:active, a:hover {
text-decoration: none;
}
a, a:focus, a:active {
color: #0045b6;
}
a:hover {
color: #00286a;
}
a[href*='tel'], a[href*='mailto'] {
white-space: nowrap;
}
.link-hover {
color: #343db0;
}
.link-default, .link-default:active, .link-default:focus {
color: #74757f;
}
.link-default:hover {
color: #0045b6;
}
.context-dark .link-default, .bg-gray-700 .link-default, .bg-gray-800 .link-default, .bg-primary .link-default, .bg-primary-darker .link-default {
color: #aeb1be;
}
.context-dark .link-default:hover, .bg-gray-700 .link-default:hover, .bg-gray-800 .link-default:hover, .bg-primary .link-default:hover, .bg-primary-darker .link-default:hover {
color: #fff;
}
.link-image {
display: block;
max-width: 75%;
margin-left: auto;
margin-right: auto;
opacity: .45;
transition: all 0.3s ease-in-out;
}
.link-image:hover {
opacity: 1;
}
.privacy-link {
display: inline-block;
color: #4854ed;
}
* + .privacy-link {
margin-top: 25px;
}
/*
|
||||
*
|
||||
* Blocks
|
||||
*/
.block-center, .block-sm, .block-lg {
margin-left: auto;
margin-right: auto;
}
.block-sm {
max-width: 560px;
}
.block-lg {
max-width: 768px;
}
.block-center {
padding: 10px;
}
.block-center:hover .block-center-header {
background-color: #0045b6;
}
.block-center-title {
background-color: #fff;
}
@media (max-width: 1599.98px) {
.block-center {
padding: 20px;
}
.block-center:hover .block-center-header {
background-color: #fff;
}
.block-center-header {
background-color: #0045b6;
}
}
/*
|
||||
*
|
||||
* Boxes
|
||||
*/
.box-minimal {
display: flex;
margin-left: -15px;
text-align: left;
}
.box-minimal > * {
margin-left: 15px;
}
.box-chloe__icon {
font-size: 26px;
}
.box-minimal-icon .box-chloe__icon {
position: relative;
top: 4px;
min-width: 26px;
font-size: 24px;
line-height: 1;
color: #0045b6;
}
.box-minimal-icon .box-chloe__icon.fl-bigmug-line-checkmark14 {
font-size: 20px;
}
.box-minimal-icon .box-chloe__icon .box-chloe__icon {
position: relative;
top: 4px;
min-width: 26px;
font-size: 24px;
line-height: 1;
}
.box-minimal-text {
width: 100%;
max-width: 320px;
margin-left: auto;
margin-right: auto;
}
* + .box-minimal {
margin-top: 30px;
}
* + .box-minimal-title {
margin-top: 10px;
}
* + .box-minimal-text {
margin-top: 15px;
}
@media (max-width: 575.98px) {
.box-minimal {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (max-width: 767.98px) {
.box-minimal * + p {
margin-top: 7px;
}
}
@media (min-width: 768px) {
.box-minimal {
padding-right: 15px;
margin-left: -30px;
}
.box-minimal > * {
margin-left: 30px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.box-minimal {
padding-right: 0;
}
.box-minimal-title {
font-size: 22px;
}
}
@media (min-width: 1200px) {
.box-minimal-icon, .box-chloe__icon {
top: 0;
font-size: 36px;
}
.box-minimal-icon .box-chloe__icon, .box-chloe__icon .box-chloe__icon {
font-size: 32px;
top: 0;
}
.box-minimal-icon.fl-bigmug-line-checkmark14, .box-chloe__icon.fl-bigmug-line-checkmark14 {
font-size: 30px;
}
}
.box-light {
text-align: left;
}
.box-light-icon {
font-size: 30px;
line-height: 1;
color: #0045b6;
}
* + .box-light-title {
margin-top: 10px;
}
@media (max-width: 575.98px) {
.box-light {
max-width: 300px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 768px) {
.box-light {
max-width: 240px;
}
.box-chloe__icon {
font-size: 32px;
}
* + .box-light-title {
margin-top: 16px;
}
}
@media (min-width: 768px) and (max-width: 1199.98px) {
.box-light-title {
font-size: 20px;
}
}
@media (min-width: 992px) {
.box-light-icon {
font-size: 32px;
}
* + .box-light-title {
margin-top: 25px;
}
}
@media (min-width: 1200px) {
.box-light-icon {
font-size: 40px;
}
}
.box-creative {
max-width: 330px;
margin-left: auto;
margin-right: auto;
text-align: center;
cursor: default;
}
.box-creative:hover .box-creative-icon {
color: #fff;
}
.box-creative:hover .box-creative-icon::after {
opacity: 1;
visibility: visible;
transform: translate3d(0, 0, 0);
}
.box-creative-shadow .box-creative-icon {
background: #fff;
border: 0;
box-shadow: 0 17px 24px 0 rgba(0, 0, 0, 0.05);
}
.box-creative-icon {
position: relative;
z-index: 0;
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.8em;
height: 2.8em;
border: 2px solid #e8e9ee;
border-radius: 50%;
font-size: 24px;
line-height: 1;
color: #0045b6;
}
.box-creative-icon::before {
position: relative;
z-index: 2;
}
.box-creative-icon::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
border-radius: inherit;
background: #0045b6;
border-color: #0045b6;
pointer-events: none;
opacity: 0;
visibility: hidden;
transition: .15s ease-in;
transform: scale3d(1.05, 1.05, 1.05);
}
* + .box-creative-icon {
margin-top: 10px;
}
* + .box-creative-title {
margin-top: 10px;
}
@media (min-width: 768px) {
.box-creative-icon {
font-size: 30px;
}
* + .box-creative-title {
margin-top: 15px;
}
}
@media (max-width: 991.98px) {
.box-creative * + p {
margin-top: 10px;
}
}
@media (min-width: 1200px) {
.box-creative-icon {
width: 2.4em;
height: 2.4em;
font-size: 40px;
}
* + .box-creative-title {
margin-top: 24px;
}
}
.box-1 {
max-width: 280px;
margin-left: auto;
margin-right: auto;
}
@media (min-width: 768px) {
.box-2 {
padding-right: 30px;
}
}
@media (min-width: 992px) {
.box-2 {
padding-right: 35px;
}
}
@media (min-width: 1200px) {
.box-2 {
padding-right: 100px;
}
}
@media (min-width: 992px) {
.box-3 {
padding-left: 10px;
}
}
@media (min-width: 1200px) {
.box-3 {
padding-left: 70px;
}
}
div.box-cta-1 {
display: inline-table;
text-align: center;
vertical-align: middle;
margin-bottom: -25px;
margin-left: -40px;
}
div.box-cta-1:empty {
margin-bottom: 0;
margin-left: 0;
}
div.box-cta-1 > * {
display: inline-block;
margin: 0 0 25px 40px;
}
div.box-cta-1 > * {
margin-top: 0;
vertical-align: middle;
}
div.box-cta-thin {
display: inline-table;
text-align: center;
vertical-align: middle;
margin-bottom: -25px;
margin-left: -30px;
}
div.box-cta-thin:empty {
margin-bottom: 0;
margin-left: 0;
}
div.box-cta-thin > * {
display: inline-block;
margin: 0 0 25px 30px;
}
div.box-cta-thin > * {
margin-top: 0;
vertical-align: middle;
}
@media (min-width: 768px) and (max-width: 991.98px) {
div.box-cta-thin > * {
max-width: 500px;
}
}
.box-indigo {
positionLine truncated
|
||||
* Element groups
|
||||
*/
html .group {
margin-bottom: -15px;
margin-left: -20px;
}
html .group:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group > * {
display: inline-block;
margin: 0 0 15px 20px;
}
@media (min-width: 992px) {
html .group {
margin-left: -30px;
}
html .group > * {
margin-left: 30px;
}
}
html .group-xs {
margin-bottom: -7px;
margin-left: -7px;
}
html .group-xs:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group-xs > * {
display: inline-block;
margin: 0 0 7px 7px;
}
html .group-sm {
margin-bottom: -10px;
margin-left: -10px;
}
html .group-sm:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group-sm > * {
display: inline-block;
margin: 0 0 10px 10px;
}
html .group-lg {
margin-bottom: -25px;
margin-left: -40px;
}
html .group-lg:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group-lg > * {
display: inline-block;
margin: 0 0 25px 40px;
}
html .group-xl {
margin-bottom: -20px;
margin-left: -30px;
}
html .group-xl:empty {
margin-bottom: 0;
margin-left: 0;
}
html .group-xl > * {
display: inline-block;
margin: 0 0 20px 30px;
}
@media (min-width: 992px) {
html .group-xl {
margin-bottom: -20px;
margin-left: -45px;
}
html .group-xl > * {
margin-bottom: 20px;
margin-left: 45px;
}
}
html .group-sm-justify .button {
padding-left: 20px;
padding-right: 20px;
}
@media (min-width: 768px) {
html .group-sm-justify {
display: flex;
align-items: center;
justify-content: center;
}
html .group-sm-justify > * {
flex-grow: 1;
flex-shrink: 0;
}
html .group-sm-justify .button {
min-width: 130px;
padding-left: 20px;
padding-right: 20px;
}
}
html .group-middle {
display: table;
vertical-align: middle;
}
html .group-middle > * {
vertical-align: middle;
}
* + .group {
margin-top: 30px;
}
* + .group-xs {
margin-top: 35px;
}
* + .group-sm {
margin-top: 30px;
}
* + .group-xl {
margin-top: 20px;
}
/*
|
||||
*
|
||||
* Responsive units
|
||||
*/
.unit {
display: flex;
flex: 0 1 100%;
margin-bottom: -30px;
margin-left: -20px;
}
.unit > * {
margin-bottom: 30px;
margin-left: 20px;
}
.unit:empty {
margin-bottom: 0;
margin-left: 0;
}
.unit-body {
flex: 0 1 auto;
}
.unit-left,
.unit-right {
flex: 0 0 auto;
max-width: 100%;
}
.unit-spacing-xs {
margin-bottom: -15px;
margin-left: -7px;
}
.unit-spacing-xs > * {
margin-bottom: 15px;
margin-left: 7px;
}
/*
|
||||
*
|
||||
* Lists
|
||||
*/
.list > li + li {
margin-top: 10px;
}
.list-xs > li + li {
margin-top: 8px;
}
.list-sm > li + li {
margin-top: 15px;
}
.list-md > li + li {
margin-top: 18px;
}
.list-lg > li + li {
margin-top: 25px;
}
.list-xl li + li {
margin-top: 30px;
}
@media (min-width: 1200px) {
.list-xl * + p {
margin-top: 18px;
}
}
@media (min-width: 1600px) {
.list-xl * + p {
margin-top: 24px;
}
}
@media (min-width: 768px) {
.list-xl > li + li {
margin-top: 60px;
}
}
@media (min-width: 1600px) {
.list-xl > li + li {
margin-top: 78px;
}
}
.list-inline > li {
display: inline-block;
}
html .list-inline-md {
transform: translate3d(0, -8px, 0);
margin-bottom: -8px;
margin-left: -10px;
margin-right: -10px;
}
html .list-inline-md > * {
margin-top: 8px;
padding-left: 10px;
padding-right: 10px;
}
@media (min-width: 992px) {
html .list-inline-md {
margin-left: -14px;
margin-right: -14px;
}
html .list-inline-md > * {
padding-left: 14px;
padding-right: 14px;
}
}
.list-terms dt {
font-size: 20px;
line-height: 1.3;
font-weight: 700;
letter-spacing: 0;
color: #495057;
}
.list-terms dt + dd {
margin-top: 8px;
}
.list-terms dd + dt {
margin-top: 25px;
}
* + .list-terms {
margin-top: 25px;
}
.list-terms + .privacy-link {
margin-top: 20px;
}
@media (min-width: 768px) {
.list-terms dt {
font-size: 24px;
}
.list-terms dd + dt {
margin-top: 40px;
}
}
@media (min-width: 992px) {
.list-terms dt + dd {
margin-top: 18px;
}
.list-terms dd + dt {
margin-top: 55px;
}
}
@media (min-width: 1200px) {
.list-terms dt {
max-width: 85%;
}
}
@media (min-width: 1600px) {
.list-terms dd + dt {
margin-top: 75px;
}
.list-terms + .privacy-link {
margin-top: 75px;
}
}
.index-list {
counter-reset: li;
}
.index-list > li .list-index-counter:before {
content: counter(li, decimal-leading-zero);
counter-increment: li;
}
.list-marked {
text-align: left;
}
.list-marked > li::before {
position: relative;
top: 1px;
display: inline-block;
min-width: 25px;
content: '\f14f';
font: 400 14px 'Material Design Icons';
line-height: inherit;
color: #aeb1be;
}
.list-marked > li + li {
margin-top: 9px;
}
* + .list-marked {
margin-top: 15px;
}
.list-ordered {
counter-reset: li;
text-align: left;
}
.list-ordered > li {
position: relative;
padding-left: 25px;
}
.list-ordered > li:before {
content: counter(li, decimal) ".";
counter-increment: li;
position: absolute;
top: 0;
left: 0;
display: inline-block;
width: 15px;
color: #aeb1be;
}
.list-ordered > li + li {
margin-top: 9px;
}
* + .list-ordered {
margin-top: 15px;
}
.list-nav {
transform: translate3d(0, -10px, 0);
margin-bottom: -10px;
margin-left: -10px;
margin-right: -10px;
font-family: "Poppins", sans-serif;
font-weight: 400;
font-size: .875em;
letter-spacing: .08em;
text-transform: uppercase;
color: #495057;
}
.list-nav > * {
margin-top: 10px;
padding-left: 10px;
padding-right: 10px;
}
.list-nav li {
display: inline-block;
vertical-align: middle;
}
.list-nav a {
color: inherit;
}
.list-nav a:hover {
color: #0045b6;
}
@media (min-width: 768px) {
.list-nav {
margin-left: -13px;
margin-right: -13px;
}
.list-nav > * {
padding-left: 13px;
padding-right: 13px;
}
}
@media (min-width: 992px) {
.list-nav {
margin-left: -28px;
margin-right: -28px;
}
.list-nav > * {
padding-left: 28px;
padding-right: 28px;
}
}
.context-dark .list-nav, .bg-gray-700 .list-nav, .bg-gray-800 .list-nav, .bg-primary .list-nav, .bg-primary-darker .list-nav {
color: #fff;
}
.context-dark .list-nav a:hover, .bg-gray-700 .list-nav a:hover, .bg-gray-800 .list-nav a:hover, .bg-primary .list-nav a:hover, .bg-primary-darker .list-nav a:hover {
color: #aeb1be;
}
.list-inline-bordered {
margin-left: -18px;
margin-right: -18px;
color: #495057;
}
.list-inline-bordered > * {
padding-left: 18px;
padding-right: 18px;
}
.list-inline-bordered * {
color: inherit;
}
.list-inline-bordered > li > button {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
transition: .22s;
}
.list-inline-bordered > li > button::-moz-focus-inner {
border: none;
padding: 0;
}
.list-inline-bordered > li {
display: inline-block;
line-height: 24px;
}
.list-inline-bordered > li:not(:last-child) {
border-right: 1px solid #74757f;
}
.context-dark .list-inline-bordered, .bg-gray-700 .list-inline-bordered, .bg-gray-800 .list-inline-bordered, .bg-primary .list-inline-bordered, .bg-primary-darker .list-inline-bordered {
color: #fff;
}
.context-dark .list-inline-bordered button.active, .bg-gray-700 .list-inline-bordered button.active, .bg-gray-800 .list-inline-bordered button.active, .bg-primary .list-inline-bordered button.active, .bg-primary-darker .list-inline-bordered button.active,
.context-dark .list-inline-bordered button:hover,
.bg-gray-700 .list-inline-bordered button:hover,
.bg-gray-800 .list-inline-bLine truncated
|
||||
*
|
||||
* Images
|
||||
*/
img {
display: inline-block;
max-width: 100%;
height: auto;
}
.img-responsive {
width: 100%;
}
/*
|
||||
*
|
||||
* Icons
|
||||
*/
.icon {
display: inline-block;
font-size: 16px;
line-height: 1;
}
.icon::before {
position: relative;
display: inline-block;
font-weight: 400;
font-style: normal;
speak: none;
text-transform: none;
}
.icon-creative {
display: inline-block;
text-align: center;
width: 2em;
height: 2em;
line-height: 2em;
border-radius: 50%;
}
.icon-creative, .icon-creative:active, .icon-creative:focus {
color: #aeb1be;
}
.icon-creative::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
border-radius: inherit;
pointer-events: none;
opacity: 0;
transform: scale3d(0, 0, 0);
transition: .22s;
}
.icon-creative:hover {
color: #fff;
}
.icon-creative:hover::after {
opacity: 1;
transform: scale3d(1, 1, 1);
}
.icon-creative[class*='facebook']::after {
background: #2059a0;
}
.icon-creative[class*='twitter']::after {
background: #00aae6;
}
.icon-creative[class*='instagram']::after {
background: linear-gradient(to top, #f15823 0%, #a7058e 100%);
}
.icon-creative[class*='google']::after {
background: #ff3807;
}
.icon-creative[class*='linkedin']::after {
background: #2881a8;
}
.icon-modern {
width: 2em;
height: 2em;
line-height: 2em;
text-align: center;
border-radius: 50%;
border: 1px solid #e8e9ee;
color: #151515;
}
.icon-circle {
border-radius: 50%;
}
.icon-sm {
font-size: 20px;
}
.icon-md {
font-size: 1.5em;
}
.icon-lg {
font-size: 1.875em;
}
/*
|
||||
*
|
||||
* Tables custom
|
||||
*/
.table {
width: 100%;
max-width: 100%;
text-align: left;
background: #fff;
border-collapse: collapse;
}
.table th,
.table td {
color: #495057;
vertical-align: middle;
}
.table th {
padding: 13px 24px;
border-top: 0;
font-size: 16px;
font-weight: 300;
}
.table thead th {
border-bottom: 1px solid #aeb1be;
}
.table td {
padding: 23px 24px;
}
.table tbody tr:first-child td {
border-top: 0;
}
.table tr td {
border-bottom: 1px solid #e8e9ee;
}
.table tfoot td {
font-weight: 700;
}
* + .table-responsive {
margin-top: 30px;
}
@media (min-width: 768px) {
* + .table-responsive {
margin-top: 40px;
}
}
.table-hover tbody tr {
transition: .55s;
}
.table-hover tbody tr:hover {
background: #f5f6fa;
}
.table-job-positions th,
.table-job-positions td {
white-space: nowrap;
}
.table-job-positions td:first-child {
width: 8%;
padding-right: 6px;
text-align: center;
}
.table-job-positions .position {
color: #0045b6;
}
.table-job-positions time {
display: block;
white-space: nowrap;
}
@media (max-width: 575.98px) {
.table-job-positions th,
.table-job-positions td {
padding-left: 12px;
padding-right: 12px;
}
.table-job-positions td {
padding-top: 10px;
padding-bottom: 10px;
}
}
.table-responsive + .button-lg {
margin-top: 30px;
}
@media (min-width: 1200px) {
.table-responsive + .button-lg {
margin-top: 40px;
}
}
@media (min-width: 1600px) {
.table-responsive + .button-lg {
margin-top: 55px;
}
}
/*
|
||||
*
|
||||
* Dividers
|
||||
*/
hr {
margin-top: 0;
margin-bottom: 0;
border-top: 1px solid #e8e9ee;
}
.context-dark hr, .bg-gray-700 hr, .bg-gray-800 hr, .bg-primary hr, .bg-primary-darker hr {
border-top-color: #74757f;
}
.divider-small {
font-size: 0;
line-height: 0;
}
.divider-small::after {
content: '';
display: inline-block;
width: 70px;
height: 2px;
background-color: #0045b6;
}
.divider-small + h3, .divider-small + .heading-3,
.divider-small-outer + h3, .divider-small-outer + .heading-3 {
margin-top: 20px;
}
/*
|
||||
*
|
||||
* Buttons
|
||||
*/
.button {
position: relative;
overflow: hidden;
display: inline-block;
padding: 13px 35px;
font-size: 14px;
line-height: 1.25;
border: 2px solid;
border-radius: 6px;
font-family: "Poppins", sans-serif;
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
white-space: nowrap;
text-overflow: ellipsis;
text-align: center;
cursor: pointer;
vertical-align: middle;
user-select: none;
transition: 0.25s cubic-bezier(0.2, 1, 0.3, 1);
}
.form-btn {
display: block;
width: 100%;
height: 100%;
}
.button-block {
display: block;
width: 100%;
}
.button-default, .button-default:focus {
color: #aeb1be;
background-color: #495057;
border-color: #495057;
}
.button-default:hover, .button-default:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button.button-primary, .button.button-primary:focus {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button.button-primary:hover, .button.button-primary:active {
color: #fff;
background-color: #232426;
border-color: #232426;
}
html .button.button-primary-lighten, html .button.button-primary-lighten:focus {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
html .button.button-primary-lighten:hover, html .button.button-primary-lighten:active {
color: #fff;
background-color: #232426;
border-color: #232426;
}
.button-accent-outline, .button-accent-outline:focus {
color: #151515;
background-color: transparent;
border-color: #0045b6;
}
.button-accent-outline:hover, .button-accent-outline:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button-primary-outline, .button-primary-outline:focus {
color: #151515;
background-color: transparent;
border-color: #151515;
}
.button-primary-outline:hover, .button-primary-outline:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button-gray-bordered {
border-width: 1px;
}
.button-gray-bordered, .button-gray-bordered:focus {
color: #151515;
background-color: transparent;
border-color: #aeb1be;
}
.button-gray-bordered:hover, .button-gray-bordered:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button-primary-white, .button-primary-white:focus {
color: #111111;
background-color: #fff;
border-color: transparent;
}
.button-primary-white:hover, .button-primary-white:active {
color: #fff;
background-color: #0045b6;
border-color: #0045b6;
}
.button.button-facebook, .button.button-facebook:focus {
color: #fff;
background-color: #2059a0;
border-color: #2059a0;
}
.button.button-facebook:hover, .button.button-facebook:active {
color: #fff;
background-color: #2465b5;
border-color: #2465b5;
}
.button.button-twitter, .button.button-twitter:focus {
color: #fff;
background-color: #00aae6;
border-color: #00aae6;
}
.button.button-twitter:hover, .button.button-twitter:active {
color: #fff;
background-color: #01bdff;
border-color: #01bdff;
}
.button.button-google, .button.button-google:focus {
color: #fff;
background-color: #ff3807;
border-color: #ff3807;
}
.button.button-google:hover, .button.button-google:active {
color: #fff;
background-color: #ff4c21;
border-color: #ff4c21;
}
.button-winona {
position: relative;
overflow: hidden;
display: inline-block;
vertical-align: middle;
text-align: center;
}
.button-winona .content-original,
.button-winona .content-dubbed {
vertical-align: middle;
transition: transform 0.3s cubic-bezier(0.2, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.2, 1, 0.3, 1);
}
.button-winona .content-original {
display: block;
}
.button-winona .content-dubbed {
position: absolute;
width: 100%;
top: 50%;
left: 0;
opacity: 0;
transform: translate3d(0, 0, 0);
}
.button-winona:hover .content-original {
opacity: 0;
transform: translate3d(0, -30%, 0);
}
.button-winona:hover .content-dubbed {
opacity: 1;
transform: translate3d(0, 0, 0) translateY(-50%);
}
.button-sm {
padding: 9px 32px;
font-size: 12px;
line-height: 1.5;
}
.button-lg {
padding: 14px 35px;
font-size: 15px;
line-height: 1.5;
}
@media (min-width: 576px) {
.button-lg {
font-size: 16px;
padding-left: 55px;
padding-right: 55px;
}
}
.button-lg--smaller {
padding-left: 35px;
padding-right: 35px;
}
html .button.button-icon {
display: inline-flex;
}
.button-icon {
justify-content: center;
align-items: center;
vertical-align: middle;
}
.button-icon .icon {
position: relative;
top: -1px;
display: inline-block;
vertical-align: middle;
color: inherit;
font-size: 1.55em;
line-height: 1em;
transition: none;
}
.button-icon:hover .icon {
color: inherit;
}
.button-icon-left .icon {
padding-right: 5px;
}
.button-icon-right {
flex-direction: row-reverse;
}
.button-icon-right .icon {
padding-left: 8px;
}
.button-icon.button-icon-only {
padding-left: 20px;
padding-right: 20px;
}
.button-icon.button-lg .icon {
padding-right: 8px;
}
.button-icon.button-lg.button-icon-right .icon {
padding: 0 0 0 8pxLine truncated
|
||||
*
|
||||
* Form styles
|
||||
*/
.rd-form {
position: relative;
text-align: left;
}
.rd-form .button {
min-height: 48px;
}
.rd-form .button-icon-only {
padding-top: 11px;
padding-bottom: 11px;
}
* + .rd-form {
margin-top: 20px;
}
input:-webkit-autofill ~ label,
input:-webkit-autofill ~ .form-validation {
color: #000 !important;
}
.form-wrap {
position: relative;
}
.form-wrap.has-error .form-input {
border-color: #dc0000;
}
.form-wrap.has-focus .form-input {
border-color: #0045b6;
}
* + .form-wrap {
margin-top: 24px;
}
.form-input {
display: block;
width: 100%;
min-height: 48px;
padding: 11px 19px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-image: none;
border-radius: 6px;
-webkit-appearance: none;
transition: .3s ease-in-out;
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
border: 1px solid #c5c6cd;
}
.form-input:focus {
outline: 0;
}
textarea.form-input {
height: 150px;
min-height: 48px;
max-height: 255px;
resize: vertical;
}
.form-label,
.form-label-outside {
margin-bottom: 0;
font-weight: 300;
}
.form-label {
position: absolute;
top: 24px;
left: 0;
right: 0;
padding-left: 19px;
padding-right: 19px;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
color: #495057;
pointer-events: none;
text-align: left;
z-index: 9;
transition: .25s;
will-change: transform;
transform: translateY(-50%);
}
.form-label.focus {
opacity: 0;
}
.form-label.auto-fill {
color: #495057;
}
.form-label-outside {
width: 100%;
padding-right: 150px;
margin-bottom: 4px;
font-size: 14px;
color: #aeb1be;
cursor: pointer;
}
.form-label-outside ~ .form-validation {
top: 10px;
}
[data-x-mode='true'] .form-label {
pointer-events: auto;
}
.form-validation {
position: absolute;
right: 15px;
top: 0;
z-index: 11;
margin-top: 3px;
font-size: 10px;
font-weight: 500;
line-height: 12px;
letter-spacing: 0;
color: #dc0000;
transition: .3s;
transform: scale3d(1, 1, 1);
}
.form-validation:empty {
transform: scale3d(1, 0, 1);
}
.form-validation-left .form-validation {
top: 2px;
bottom: auto;
right: auto;
left: 14px;
}
#form-output-global {
position: fixed;
bottom: 30px;
left: 15px;
z-index: 2000;
visibility: hidden;
transform: translate3d(-500px, 0, 0);
transition: .3s all ease;
}
#form-output-global.active {
visibility: visible;
transform: translate3d(0, 0, 0);
}
@media (min-width: 576px) {
#form-output-global {
left: 30px;
}
}
.form-output {
position: absolute;
top: 100%;
left: 0;
font-size: 10px;
font-weight: 400;
line-height: 1.2;
margin-top: 2px;
transition: .3s;
opacity: 0;
visibility: hidden;
}
.form-output.active {
opacity: 1;
visibility: visible;
}
.form-output.error {
color: #dc0000;
}
.form-output.success {
color: #98bf44;
}
.radio .radio-custom,
.radio-inline .radio-custom,
.checkbox .checkbox-custom,
.checkbox-inline .checkbox-custom {
opacity: 0;
}
.radio .radio-custom, .radio .radio-custom-dummy,
.radio-inline .radio-custom,
.radio-inline .radio-custom-dummy,
.checkbox .checkbox-custom,
.checkbox .checkbox-custom-dummy,
.checkbox-inline .checkbox-custom,
.checkbox-inline .checkbox-custom-dummy {
position: absolute;
left: 0;
width: 14px;
height: 14px;
outline: none;
cursor: pointer;
}
.radio .radio-custom-dummy,
.radio-inline .radio-custom-dummy,
.checkbox .checkbox-custom-dummy,
.checkbox-inline .checkbox-custom-dummy {
pointer-events: none;
background: #fff;
}
.radio .radio-custom-dummy::after,
.radio-inline .radio-custom-dummy::after,
.checkbox .checkbox-custom-dummy::after,
.checkbox-inline .checkbox-custom-dummy::after {
position: absolute;
opacity: 0;
transition: .22s;
}
.radio .radio-custom:focus,
.radio-inline .radio-custom:focus,
.checkbox .checkbox-custom:focus,
.checkbox-inline .checkbox-custom:focus {
outline: none;
}
.radio input,
.radio-inline input,
.checkbox input,
.checkbox-inline input {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
clip-path: inset(50%);
border: 0;
}
.radio-custom:checked + .radio-custom-dummy:after,
.checkbox-custom:checked + .checkbox-custom-dummy:after {
opacity: 1;
}
.radio,
.radio-inline {
padding-left: 28px;
}
.radio .radio-custom-dummy,
.radio-inline .radio-custom-dummy {
top: 1px;
left: 0;
width: 18px;
height: 18px;
border-radius: 50%;
border: 1px solid #74757f;
}
.radio .radio-custom-dummy::after,
.radio-inline .radio-custom-dummy::after {
content: '';
top: 3px;
right: 3px;
bottom: 3px;
left: 3px;
background: #495057;
border-radius: inherit;
}
.checkbox,
.checkbox-inline {
padding-left: 28px;
}
.checkbox .checkbox-custom-dummy,
.checkbox-inline .checkbox-custom-dummy {
left: 0;
width: 18px;
height: 18px;
margin: 0;
border: 1px solid #74757f;
}
.checkbox .checkbox-custom-dummy::after,
.checkbox-inline .checkbox-custom-dummy::after {
contentLine truncated
|
||||
*
|
||||
* Posts
|
||||
*/
.post-inline {
max-width: 313px;
}
.post-inline-title a {
color: inherit;
}
.post-inline-meta {
transform: translate3d(0, -5px, 0);
margin-bottom: -5px;
margin-left: -10px;
margin-right: -10px;
color: rgba(255, 255, 255, 0.3);
}
.post-inline-meta > * {
margin-top: 5px;
padding-left: 10px;
padding-right: 10px;
}
.post-inline-meta > li {
position: relative;
display: inline-block;
}
.post-inline-meta > li:not(:last-child)::after {
content: '';
position: absolute;
right: 0;
top: 50%;
width: 1px;
height: 1px;
border-radius: 50%;
background: #495057;
}
.post-inline-meta a {
color: inherit;
}
* + .post-inline {
margin-top: 15px;
}
* + .post-inline-meta {
margin-top: 5px;
}
@media (min-width: 768px) {
* + .post-inline {
margin-top: 22px;
}
}
.context-dark .post-inline-title, .bg-gray-700 .post-inline-title, .bg-gray-800 .post-inline-title, .bg-primary .post-inline-title, .bg-primary-darker .post-inline-title {
color: #fff;
}
.context-dark .post-inline-title a:hover, .bg-gray-700 .post-inline-title a:hover, .bg-gray-800 .post-inline-title a:hover, .bg-primary .post-inline-title a:hover, .bg-primary-darker .post-inline-title a:hover {
color: #aeb1be;
}
.context-dark .post-inline-meta > li:not(:last-child)::after, .bg-gray-700 .post-inline-meta > li:not(:last-child)::after, .bg-gray-800 .post-inline-meta > li:not(:last-child)::after, .bg-primary .post-inline-meta > li:not(:last-child)::after, .bg-primary-darker .post-inline-meta > li:not(:last-child)::after {
background: #aeb1be;
}
.context-dark .post-inline-meta a:hover, .bg-gray-700 .post-inline-meta a:hover, .bg-gray-800 .post-inline-meta a:hover, .bg-primary .post-inline-meta a:hover, .bg-primary-darker .post-inline-meta a:hover {
color: #fff;
}
.post-classic {
text-align: left;
}
.post-classic-media {
position: relative;
display: block;
}
.post-classic-media::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(73, 80, 87, 0.4);
transition: .4s ease-in-out;
opacity: 0;
visibility: hidden;
pointer-events: none;
}
.post-classic-media img {
width: 100%;
}
.post-classic-media:hover::before {
opacity: 1;
visibility: visible;
}
.post-classic-meta {
transform: translate3d(0, -3px, 0);
margin-bottom: -3px;
margin-left: -14px;
margin-right: -14px;
color: #aeb1be;
}
.post-classic-meta > * {
margin-top: 3px;
padding-left: 14px;
padding-right: 14px;
}
.post-classic-meta > li {
position: relative;
display: inline-block;
}
.post-classic-meta > li:not(:last-child)::after {
content: '';
position: absolute;
right: 0;
top: 50%;
width: 2px;
height: 2px;
background: #aeb1be;
transform: translate3d(0, -50%, 0);
}
.post-classic-meta a:hover {
color: #343db0;
}
* + .post-classic-meta {
margin-top: 15px;
}
* + .post-classic-title {
margin-top: 9px;
}
@media (max-width: 575.98px) {
.post-classic {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 576px) and (max-width: 767.98px) {
.post-classic-title {
font-size: 17px;
}
}
@media (min-width: 768px) {
.post-classic-meta {
transform: translate3d(0, -5px, 0);
margin-bottom: -5px;
margin-left: -20px;
margin-right: -20px;
}
.post-classic-meta > * {
margin-top: 5px;
padding-left: 20px;
padding-right: 20px;
}
* + .post-classic-meta {
margin-top: 25px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.post-classic-meta {
margin-left: -15px;
margin-right: -15px;
font-size: 14px;
}
.post-classic-meta > * {
padding-left: 15px;
padding-right: 15px;
}
}
.post-modern {
text-align: left;
}
.post-modern-title {
color: #151515;
font-weight: 400;
}
.post-modern-title a:hover {
color: #0045b6;
}
.post-modern-media {
position: relative;
display: block;
}
.post-modern-media::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(73, 80, 87, 0.4);
transition: .22s ease-in-out;
opacity: 0;
visibility: hidden;
pointer-events: none;
}
.post-modern-media img {
width: 100%;
}
.post-modern-media:hover::before {
opacity: 1;
visibility: visible;
}
.post-modern-meta {
transform: translate3d(0, -5px, 0);
margin-bottom: -5px;
margin-left: -15px;
margin-right: -15px;
color: #495057;
font-weight: 500;
}
.post-modern-meta > * {
margin-top: 5px;
padding-left: 15px;
padding-right: 15px;
}
.post-modern-meta > li {
position: relative;
display: inline-block;
line-height: 24px;
font-size: 18px;
}
.post-modern-meta > li:not(:last-child)::after {
content: '';
position: absolute;
right: 0;
top: 50%;
width: 1px;
height: 1.5em;
background: #e8e9ee;
transform: translate3d(0, -50%, 0);
}
.post-modern-meta a:hover {
color: #343db0;
}
.post-modern-meta + p {
color: #151515;
}
* + .post-modern-title {
margin-top: 9px;
}
* + .post-modern-meta {
margin-top: 10px;
}
@media (max-width: 575.98px) {
.post-modern {
max-width: 430px;
margin-left: auto;
marginLine truncated
|
||||
*
|
||||
* Quotes
|
||||
*/
.quote-light-mark {
fill: #aeb1be;
}
.quote-light-cite {
font-size: 20px;
color: #0045b6;
}
.quote-light-caption {
line-height: 1.2;
}
.quote-light-text {
font-size: 16px;
line-height: 1.5;
letter-spacing: 0;
color: #495057;
}
html img.quote-light-image {
display: inline-block;
}
* + .quote-light {
margin-top: 30px;
}
* + .quote-light-caption {
margin-top: 3px;
}
* + .quote-light-mark {
margin-top: 15px;
}
* + .quote-light-text {
margin-top: 8px;
}
* + .quote-light-footer {
margin-top: 20px;
}
@media (min-width: 576px) {
.quote-light-cite {
font-size: 20px;
}
}
@media (min-width: 768px) {
.quote-light-cite {
font-size: 24px;
}
.quote-light-text {
font-size: 21px;
line-height: 1.45;
}
* + .quote-light {
margin-top: 40px;
}
* + .quote-light-mark {
margin-top: 35px;
}
* + .quote-light-text {
margin-top: 15px;
}
* + .quote-light-footer {
margin-top: 30px;
}
}
@media (min-width: 1600px) {
.quote-light-text {
font-size: 24px;
line-height: 1.33333;
}
* + .quote-light {
margin-top: 50px;
}
* + .quote-light-mark {
margin-top: 50px;
}
* + .quote-light-footer {
margin-top: 45px;
}
}
.quote-classic {
text-align: left;
}
.quote-classic-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
margin-bottom: -20px;
margin-left: -20px;
}
.quote-classic-meta:empty {
margin-bottom: 0;
margin-left: 0;
}
.quote-classic-meta > * {
display: inline-block;
margin: 0 0 20px 20px;
}
.quote-classic-avatar {
position: relative;
overflow: hidden;
width: 50px;
height: 50px;
border-radius: 50%;
flex-shrink: 0;
}
.quote-classic-avatar img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.quote-classic-avatar img {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.quote-classic-cite {
font-size: 24px;
line-height: 1.2;
color: #151515;
font-family: "Poppins", sans-serif;
}
.quote-classic-caption {
color: #151515;
}
* + .quote-classic-text {
margin-top: 25px;
}
* + .quote-classic-caption {
margin-top: 0;
}
@media (max-width: 575.98px) {
.quote-classic {
margin-left: auto;
margin-right: auto;
}
}
.quote-modern {
text-align: left;
}
.quote-modern-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
margin-bottom: -20px;
margin-left: -20px;
}
.quote-modern-meta:empty {
margin-bottom: 0;
margin-left: 0;
}
.quote-modern-meta > * {
display: inline-block;
margin: 0 0 20px 20px;
}
.quote-modern-avatar {
position: relative;
overflow: hidden;
z-index: 2;
width: 50px;
height: 50px;
border-radius: 50%;
flex-shrink: 0;
}
.quote-modern-avatar img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.quote-modern-avatar img {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.quote-modern-cite {
font-size: 20px;
line-height: 1.2;
color: #0045b6;
}
.quote-modern-caption {
color: #aeb1be;
}
.quote-modern-mark {
fill: #aeb1be;
}
* + .quote-modern-meta {
margin-top: 25px;
}
* + .quote-modern-caption {
margin-top: 0;
}
* + .quote-modern-text {
margin-top: 10px;
}
.quote-modern-big .quote-modern-text {
font-size: 18px;
line-height: 1.5;
color: #495057;
}
@media (min-width: 992px) {
.quote-modern-big .quote-modern-text {
font-size: 20px;
}
}
@media (min-width: 1200px) {
.quote-modern-big .quote-modern-text {
font-size: 24px;
line-height: 1.33333;
}
.quote-modern-big * + .quote-modern-text {
margin-top: 20px;
}
}
/*
|
||||
*
|
||||
* Thumbnails
|
||||
*/
.video-overlay {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-position: center center;
background-size: cover;
cursor: pointer;
}
.figure-light figcaption {
padding-top: 15px;
color: #74757f;
}
* + .figure-light {
margin-top: 20px;
}
@media (min-width: 1200px) {
* + .figure-light {
margin-top: 40px;
}
}
.figure-card {
position: relative;
overflow: hidden;
display: flex;
}
.figure-card .figure-card-sizer {
display: block;
width: 100%;
}
.figure-card .figure-card-sizer::before {
display: block;
content: '';
visibility: hidden;
padding-bottom: 56.25%;
}
.figure-card img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.figure-card img {
height: 100%;
width: 100%;
left: 0;
top: 0;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.thumbnail-video-1 {
position: relative;
text-align: center;
}
.thumbnail-video-1 .embed-responsive::before {
min-height: 250px;
}
.thumbnail-video-1 .video-overlay {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20px;
z-index: 1;
background-position: 80% center;
}
.thumbnail-video-1 .video-overlay::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.4);
z-index: -1;
}
.thumbnail-video-1 * + .button-video {
margin-top: 25px;
}
.thumbnail-minimal {
position: relative;
overflow: hidden;
display: block;
}
.thumbnail-minimal::before {
content: '';
display: block;
padding-bottom: 100%;
}
.thumbnail-minimal-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.thumbnail-minimal-image {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.thumbnail-minimal-caption {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
background: rgba(0, 69, 182, 0.6);
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease-in-out;
}
.thumbnail-minimal-caption::before {
content: '\f504';
font-family: 'Material Design Icons';
font-size: 30px;
line-height: 1;
color: #fff;
}
.thumbnail-minimal:hover .thumbnail-minimal-caption {
opacity: 1;
visibility: visible;
}
.thumbnail-classic {
position: relative;
overflow: hidden;
display: flex;
text-align: left;
}
.thumbnail-classic * {
color: inherit;
}
.thumbnail-classic, .thumbnail-classic:active, .thumbnail-classic:focus, .thumbnail-classic:hover {
color: #fff;
}
.thumbnail-classic:hover {
color: #fff;
}
.thumbnail-classic > * {
width: 100%;
flex-shrink: 0;
}
.thumbnail-classic-sm .thumbnail-classic-dummy::before {
padding-bottom: 69.18919%;
}
.thumbnail-classic-dummy {
width: 100%;
}
.thumbnail-classic-dummy::before {
content: '';
display: block;
visibility: hidden;
pointer-events: none;
padding-bottom: 73.84615%;
}
.thumbnail-classic-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.thumbnail-classic-image {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.thumbnail-classic-caption {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
justify-content: flex-end;
width: 100%;
padding: 20px;
background: rgba(73, 80, 87, 0.4);
font-size: 14px;
}
.thumbnail-classic-caption * + p {
margin-top: 5px;
}
.thumbnail-classic-title {
font-size: 20px;
line-height: 1.3;
}
@media (max-width: 575.98px) {
.thumbnail-classic {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 768px) {
.thumbnail-classic-caption {
padding: 25px 20px;
}
}
@media (min-width: 992px) {
.thumbnail-classic-lg .thumbnail-classic-dummy::before {
padding-bottom: 147.69231%;
}
}
@media (min-width: 1200px) {
.thumbnail-classic-caption {
padding: 30px 40px;
font-size: 16px;
}
.thumbnail-classic-caption * + p {
margin-top: 8px;
}
.thumbnail-classic-title {
font-size: 24px;
}
}
html:not(.tablet):not(.mobile) .thumbnail-classic-caption {
opacity: 0;
visibility: hidden;
transition: .3s all linear;
background: rgba(73, 80, 87, 0.6);
}
html:not(.tablet):not(.mobile) .thumbnail-classic:hover .thumbnail-classic-caption {
opacity: 1;
visibility: visible;
}
html:not(.tablet):not(.mobile) .hoverdir-item .thumbnail-classic-caption {
opacity: 1;
visibility: visible;
transform: translate(-100%, 0);
}
html:not(.tablet):not(.mobile)[data-x-mode='true'] .Line truncated
|
||||
*
|
||||
* Breadcrumbs
|
||||
*/
.breadcrumbs-custom {
position: relative;
display: flex;
background-color: #495057;
background-position: 20% 20%;
}
.breadcrumbs-custom .breadcrumbs-custom-subtitle {
color: #aeb1be;
}
@media (min-width: 576px) {
.breadcrumbs-custom {
padding: 60px 0;
}
}
@media (min-width: 1200px) {
.breadcrumbs-custom {
padding: 0;
}
}
.breadcrumbs-custom-inner {
display: flex;
min-height: inherit;
width: 100%;
padding: 50px 0 25px;
}
.breadcrumbs-custom-container {
display: flex;
flex-direction: column;
justify-content: space-between;
}
.breadcrumbs-custom-container::before {
content: '';
display: block;
}
.breadcrumbs-custom-path {
margin-left: -15px;
margin-right: -15px;
}
.breadcrumbs-custom-path > * {
padding-left: 15px;
padding-right: 15px;
}
.breadcrumbs-custom-path li {
position: relative;
display: inline-block;
vertical-align: middle;
color: #aeb1be;
}
.breadcrumbs-custom-path li::after {
content: "";
font-family: "FontAwesome";
position: absolute;
top: 51%;
right: -5px;
display: inline-block;
font-size: inherit;
font-style: normal;
color: rgba(255, 255, 255, 0.5);
transform: translate3d(0, -50%, 0);
}
.breadcrumbs-custom-path li:last-child:after {
display: none;
}
.breadcrumbs-custom-path a {
display: inline;
vertical-align: middle;
}
.breadcrumbs-custom-path a, .breadcrumbs-custom-path a:active, .breadcrumbs-custom-path a:focus {
color: #aeb1be;
}
.breadcrumbs-custom-path a:hover {
color: #fff;
}
* + .breadcrumbs-custom-path {
margin-top: 25px;
}
.breadcrumbs-custom-subtitle + .breadcrumbs-custom-title {
margin-top: 15px;
}
@media (min-width: 576px) {
.breadcrumbs-custom-path {
margin-left: -30px;
margin-right: -30px;
}
.breadcrumbs-custom-path > * {
padding-left: 30px;
padding-right: 30px;
}
* + .breadcrumbs-custom-path {
margin-top: 30px;
}
}
@media (min-width: 768px) {
.breadcrumbs-custom {
min-height: 23.75vw;
}
.breadcrumbs-custom-inner {
padding: 80px 0 30px;
}
.breadcrumbs-custom-subtitle + .breadcrumbs-custom-title {
margin-top: 5px;
}
}
@media (min-width: 992px) {
.breadcrumbs-custom-inner {
padding-bottom: 40px;
}
.breadcrumbs-custom-subtitle + .breadcrumbs-custom-title {
margin-top: 10px;
}
}
@media (min-width: 1600px) {
.breadcrumbs-custom {
min-height: 520px;
}
.breadcrumbs-custom-inner {
padding: 130px 0 40px 0;
}
.breadcrumbs-custom-subtitle + .breadcrumbs-custom-title {
margin-top: 20px;
}
}
/*
|
||||
*
|
||||
* Pagination custom
|
||||
*/
.pagination {
font-size: 0;
line-height: 0;
margin-bottom: -10px;
margin-left: -10px;
}
.pagination:empty {
margin-bottom: 0;
margin-left: 0;
}
.pagination > * {
display: inline-block;
margin: 0 0 10px 10px;
}
.page-item {
display: inline-block;
vertical-align: middle;
text-align: center;
font-weight: 700;
}
.page-link {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 48px;
min-height: 48px;
padding: 10px 10px;
border: 0;
border-radius: 6px;
font-family: "Poppins", sans-serif;
font-size: 14px;
font-weight: 500;
line-height: 1.71429;
background-color: #0045b6;
color: #fff;
transition: all 0.3s ease-in-out;
}
.page-link.button-winona * {
line-height: inherit;
}
.page-link.button-winona .content-dubbed {
margin-top: -1px;
}
.page-link:hover, .page-link:focus, .page-link:active {
color: #fff;
background-color: #151515;
}
.page-item.active > .page-link, .page-item.active > .page-link:hover, .page-item.active > .page-link:focus, .page-item.active > .page-link:active {
color: #fff;
background-color: #151515;
}
.page-item.disabled > .page-link, .page-item.disabled > .page-link:hover, .page-item.disabled > .page-link:focus, .page-item.disabled > .page-link:active {
color: #74757f;
background-color: #e8e9ee;
}
.page-item-control .icon::before {
font-family: 'FontAwesome';
font-size: 11px;
line-height: 24px;
}
.page-item-control:first-child .icon::before {
content: '\f053';
margin-left: -1px;
}
.page-item-control:last-child .icon::before {
content: '\f054';
margin-right: -1px;
}
* + .pagination {
margin-top: 35px;
}
@media (min-width: 992px) {
* + .pagination {
margin-top: 55px;
}
}
@media (min-width: 1600px) {
* + .pagination {
margin-top: 70px;
}
}
/*
|
||||
*
|
||||
* Snackbars
|
||||
*/
.snackbars {
padding: 9px 16px;
margin-left: auto;
margin-right: auto;
color: #fff;
text-align: left;
background-color: #0045b6;
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.15);
border-radius: 6px;
font-size: 14px;
}
.snackbars .icon-xxs {
font-size: 18px;
}
.snackbars p span:last-child {
padding-left: 14px;
}
.snackbars-left {
display: inline-block;
margin-bottom: 0;
}
.snackbars-right {
display: inline-block;
float: right;
text-transform: uppercase;
}
.snackbars-right:hover {
text-decoration: underline;
}
@media (min-width: 576px) {
.snackbars {
max-width: 540px;
padding: 12px 15px;
font-size: 15px;
}
}
/*
|
||||
*
|
||||
* Footers
|
||||
*/
.footer-standard h4 + *,
.footer-standard .heading-4 + * {
margin-top: 14px;
}
.footer-standard-main {
padding: 35px 0 15px;
}
.footer-standard-aside {
padding: 30px 0;
}
.footer-standard-aside {
margin-bottom: -18px;
text-align: center;
}
.footer-standard-aside > * {
margin-bottom: 18px;
}
.footer-standard-aside > * {
margin-top: 0;
}
@media (max-width: 575.98px) {
.footer-standard .box-1 {
margin-left: 0;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
.footer-standard .box-1 {
margin-left: 0;
}
}
@media (min-width: 768px) {
.footer-standard h4 + *,
.footer-standard .heading-4 + * {
margin-top: 25px;
}
.footer-standard-main {
padding: 55px 0 20px;
}
.footer-standard-aside {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
margin-left: -20px;
}
.footer-standard-aside > * {
margin-left: 20px;
}
}
@media (min-width: 1200px) {
.footer-standard-main {
padding: 80px 0 50px;
}
}
.footer-minimal {
padding: 30px 0;
}
.footer-minimal-inner {
margin-bottom: -18px;
text-align: center;
}
.footer-minimal-inner > * {
margin-bottom: 18px;
}
.footer-minimal-inner > * {
margin-top: 0;
}
.footer-minimal-inner .rights a {
padding-bottom: 2px;
position: relative;
}
.footer-minimal-inner .rights a:before {
content: '';
position: absolute;
left: 0;
height: 1px;
bottom: 0;
width: 0;
display: block;
transition: all ease .35s;
background-color: #fff;
}
.footer-minimal-inner .rights a:hover {
color: #fff;
}
.footer-minimal-inner .rights a:hover:before {
content: '';
width: 100%;
transition: all ease .35s;
}
@media (min-width: 768px) {
.footer-minimal-inner {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
margin-left: -20px;
}
.footer-minimal-inner > * {
margin-left: 20px;
}
}
.footer-advanced.bg-gray-700 h1, .footer-advanced.bg-gray-700 h2, .footer-advanced.bg-gray-700 h3, .footer-advanced.bg-gray-700 h4, .footer-advanced.bg-gray-700 h5, .footer-advanced.bg-gray-700 h6, .footer-advanced.bg-gray-700 [class^='heading-'] {
color: #aeb1be;
}
.footer-advanced h4 + *,
.footer-advanced .heading-4 + * {
margin-top: 14px;
}
.footer-advanced-main {
padding: 35px 0 15px;
}
.footer-advanced-aside {
padding: 30px 0;
}
.footer-advanced-layout {
margin-bottom: -18px;
text-align: center;
}
.footer-advanced-layout > * {
margin-bottom: 18px;
}
.footer-advanced-layout > * {
margin-top: 0;
}
@media (min-width: 768px) and (max-width: 991.98px) {
.footer-advanced .box-1 {
margin-left: 0;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.footer-advanced-text {
font-size: 14px;
line-height: 1.7;
}
}
.footer-advanced-text {
color: rgba(255, 255, 255, 0.3);
}
@media (min-width: 768px) {
.footer-advanced-main {
padding: 55px 0 20px;
}
.footer-advanced-aside {
padding: 35px 0;
}
.footer-advanced-layout {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
margin-left: -20px;
}
.footer-advanced-layout > * {
margin-left: 20px;
}
.footer-advanced-aside + .container {
margin-top: 10px;
}
}
@media (min-width: 1200px) {
.footer-advanced h4 + *,
.footer-advanced .heading-4 + * {
margin-top: 35px;
}
.footer-advanced-main {
padding: 80px 0 60px;
}
.footer-advanced-aside + .container {
margin-top: 20px;
}
}
.footer-linked.bg-gray-700 h1, .footer-linked.bg-gray-700 h2, .footer-linked.bg-gray-700 h3, .footer-linked.bg-gray-700 h4, .footer-linked.bg-gray-700 h5, .footer-linked.bg-gray-700 h6, .footer-linked.bg-gray-700 [class^='heading-'] {
color: #aeb1be;
}
.footer-linked.bg-gray-700 .list {
color: #fff;
}
.footer-linked.bg-gray-700 .list a:hover {
color: rgba(255, 255, 255, 0.6);
}
.footer-linked h4 + *,
.footer-linked .heading-4 + * {
margin-top: 14px;
}
.footer-linked h4 + hr,
.footer-linked .heading-4 + hr {
margin-top: 15px;
}
.footer-linked * + .row {
margin-top: 25px;
}
.footer-linked-main {
padding: 35px 0 15px;
}
.footer-linked-aside {
padding: 30px 0;
}
.footer-linked-layout {
margin-bottom: -18px;
text-align: center;
}
.footer-linked-layout > * {
margin-bottom: 18px;
}
.footer-linked-layout > * {
margin-top: 0;
}
@media (min-width: 768px) and (max-width: 991.98px) {
.footer-linked .box-1 {
margin-left: 0;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.footer-linked-text {
font-size: 14px;
line-height: 1.7;
}
}
@media (min-width: 768px) {
.footer-linked-main {
padding: 65px 0 40px;
}
.footer-linked-aside {
padding: 30px 0;
}
.footer-linked-layout {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
text-align: center;
margin-left: -20px;
}
.footer-linked-layout > * {
margin-left: 20px;
}
.footer-linked-aside + .container {
margin-top: 10px;
}
}
@media (min-width: 1200px) {
.footer-linked Line truncated
|
||||
*
|
||||
* Pricing tables
|
||||
*/
.pricing-minimal {
position: relative;
z-index: 1;
padding: 25px 20px;
border: 1px solid #aeb1be;
border-radius: 6px;
text-align: left;
transition: .22s;
cursor: default;
}
.pricing-minimal:hover {
border-color: #0045b6;
}
.pricing-minimal:hover::before {
visibility: visible;
transform: translate3d(0, 0, 0);
}
.pricing-minimal-price {
font-size: 26px;
line-height: 1;
font-weight: 700;
letter-spacing: 0;
color: #495057;
}
.pricing-minimal-price span {
display: inline;
}
.pricing-minimal-price-currency {
font-size: .65em;
vertical-align: top;
}
.pricing-minimal-divider {
border-bottom: 1px solid #aeb1be;
}
* + .pricing-minimal-price {
margin-top: 10px;
}
* + .pricing-minimal-divider {
margin-top: 20px;
}
@media (max-width: 575.98px) {
.pricing-minimal {
max-width: 350px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 576px) {
.pricing-minimal {
padding: 20px;
}
}
@media (min-width: 768px) {
.pricing-minimal-price {
font-size: 36px;
}
}
@media (min-width: 768px) {
.pricing-minimal {
padding: 30px 38px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.pricing-minimal {
padding: 25px 20px;
}
}
@media (min-width: 1200px) {
.pricing-minimal {
padding: 38px 40px;
}
}
.pricing-modern {
padding: 35px 20px;
border: 1px solid #aeb1be;
border-radius: 6px;
text-align: center;
}
.pricing-modern * + .button {
margin-top: 20px;
}
.pricing-group-modern {
border: 1px solid #aeb1be;
border-radius: 6px;
}
.pricing-group-modern .pricing-modern {
border: 0;
border-radius: 0;
}
.pricing-modern-rating {
color: #0045b6;
}
.pricing-modern-rating > li {
display: inline-block;
width: 26px;
font-size: 30px;
line-height: .9;
}
.pricing-modern-title {
font-weight: 700;
}
.pricing-modern-table {
display: inline-table;
}
.pricing-modern-table td {
padding: 3px 8px;
color: #74757f;
}
.pricing-modern-table td:first-child {
text-align: right;
color: #495057;
}
.pricing-modern-table td:last-child {
text-align: left;
}
.pricing-modern-price {
font-size: 24px;
font-weight: 300;
line-height: 1.2;
}
.pricing-modern-price span {
display: inline;
}
.pricing-modern-price-currency {
font-size: .65em;
vertical-align: top;
}
* + .pricing-group-modern {
margin-top: 35px;
}
* + .pricing-modern-title {
margin-top: 5px;
}
* + .pricing-modern-table {
margin-top: 20px;
}
* + .pricing-modern-price {
margin-top: 15px;
}
@media (max-width: 575.98px) {
.pricing-group-modern {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
.pricing-group-modern .pricing-modern + .pricing-modern {
border-top: 1px solid #aeb1be;
}
}
@media (min-width: 576px) and (max-width: 991.98px) {
.pricing-group-modern .pricing-modern:nth-child(odd) {
border-right: 1px solid #aeb1be;
}
.pricing-group-modern .pricing-modern:nth-child(n + 3) {
border-top: 1px solid #aeb1be;
}
}
@media (min-width: 576px) {
.pricing-group-modern {
display: flex;
flex-wrap: wrap;
}
.pricing-group-modern .pricing-modern {
width: 100%;
max-width: 50%;
}
.pricing-modern {
padding: 55px 20px;
}
* + .pricing-group-modern {
margin-top: 50px;
}
* + .pricing-modern-table {
margin-top: 25px;
}
* + .pricing-modern-price {
margin-top: 30px;
}
}
@media (min-width: 768px) {
.pricing-modern-price {
font-size: 30px;
}
}
@media (min-width: 992px) {
.pricing-group-modern .pricing-modern {
max-width: 25%;
border-right: 1px solid #aeb1be;
}
.pricing-group-modern .pricing-modern:nth-child(4n) {
border-right: 0;
}
.pricing-group-modern .pricing-modern:nth-child(n + 5) {
border-top: 1px solid #aeb1be;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.pricing-modern .button {
display: block;
padding-left: 15px;
padding-right: 15px;
}
}
@media (min-width: 1200px) {
.pricing-modern-price {
font-size: 36px;
}
* + .pricing-modern-table {
margin-top: 35px;
}
* + .pricing-modern-price {
margin-top: 40px;
}
}
@media (min-width: 1600px) {
* + .pricing-group-modern {
margin-top: 75px;
}
}
/*
|
||||
*
|
||||
* Profiles
|
||||
*/
.profile-classic {
text-align: left;
}
.profile-classic-main {
position: relative;
overflow: hidden;
z-index: 1;
border-radius: 6px;
}
.profile-classic-image {
min-width: 100%;
}
.profile-classic-caption {
position: absolute;
left: 0;
right: 0;
bottom: 0;
padding: 10px;
background: rgba(0, 69, 182, 0.6);
}
.profile-classic-caption .icon-creative {
color: #fff;
}
.profile-classic-title {
color: #0045b6;
}
.profile-classic-title a:hover {
color: #343db0;
}
.profile-classic-position {
color: #aeb1be;
}
* + .profile-classic-title {
margin-top: 15px;
}
* + .profile-classic-position {
margin-top: 5px;
}
@media (max-width: 575.98px) {
.profile-classic {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 576px) and (max-width: 767.98px) {
.profile-classic-caption {
padding-left: 5px;
padding-right: 5px;
}
.profile-classic-caption .icon-sm {
font-size: 18px;
}
.profile-classic-caption .group {
margin-left: -3px;
}
.profile-classic-caption .group > * {
margin-left: 3px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.profile-classic-caption {
padding-left: 5px;
padding-right: 5px;
}
.profile-classic-caption .icon-sm {
font-size: 18px;
}
.profile-classic-caption .group {
margin-left: -3px;
}
.profile-classic-caption .group > * {
margin-left: 3px;
}
}
@media (min-width: 1200px) {
* + .profile-classic-title {
margin-top: 20px;
}
}
html:not(.tablet):not(.mobile) .profile-classic:hover .profile-classic-caption {
opacity: 1;
visibility: visible;
}
html:not(.tablet):not(.mobile) .profile-classic-caption {
top: 0;
display: flex;
flex-direction: column;
justify-content: flex-end;
opacity: 0;
visibility: hidden;
transition: .33s ease-in-out;
}
.profile-creative {
display: flex;
margin-left: -15px;
text-align: left;
color: #74757f;
}
.profile-creative > * {
margin-left: 15px;
}
.profile-creative-figure {
position: relative;
overflow: hidden;
max-width: 80px;
flex-shrink: 0;
}
.profile-creative-image {
width: 100%;
border-radius: 6px;
}
.profile-creative-main {
flex-grow: 1;
}
.profile-creative-title a {
color: #151515;
font-weight: 300;
}
.profile-creative-title a:hover {
color: #0045b6;
}
.profile-creative-position {
color: #151515;
}
.profile-creative-contacts {
color: #151515;
}
.profile-creative-contacts a {
color: inherit;
font-weight: 400;
}
.profile-creative-contacts a:hover {
color: #0045b6;
}
* + .profile-creative-position {
margin-top: 0;
}
* + .profile-creative-contacts {
margin-top: 15px;
}
@media (min-width: 576px) {
.profile-creative {
margin-left: -30px;
}
.profile-creative > * {
margin-left: 30px;
}
.profile-creative-figure {
max-width: 22%;
}
}
@media (min-width: 768px) {
.profile-creative-figure {
max-width: 29%;
}
.profile-creative-main {
padding-right: 30px;
}
* + .profile-creative-contacts {
margin-top: 22px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.profile-creative {
margin-left: -20px;
}
.profile-creative > * {
margin-left: 20px;
}
.profile-creative-figure {
max-width: 25%;
}
.profile-creative-main {
padding-right: 10px;
}
}
.profile-minimal {
position: relative;
overflow: hidden;
border-radius: 6px;
color: #fff;
text-align: left;
}
.profile-minimal::before {
content: '';
display: block;
padding-bottom: 100%;
}
.profile-minimal-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
max-width: none;
}
@supports (object-fit: cover) {
.profile-minimal-image {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.profile-minimal-caption {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 25px;
background: rgba(73, 80, 87, 0.4);
}
.profile-minimal-title {
color: #fff;
}
* + .profile-minimal-position {
margin-top: 5px;
}
@media (max-width: 575.98px) {
.profile-minimal {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 1200px) {
.profile-minimal-caption {
padding: 35px;
}
* + .profile-minimal-position {
margin-top: 10px;
}
}
html:not(.tablet):not(.mobile) .profile-minimal:hover .profile-minimal-caption {
opacity: 1;
visibility: visible;
}
html:not(.tablet):not(.mobile) .profile-minimal-caption {
opacity: 0;
visibility: hidden;
transition: .35s ease-in;
background: rgba(73, 80, 87, 0.6);
}
.profile-modern {
text-align: left;
}
.profile-modern > * + * {
margin-top: 35px;
}
.profile-modern-header {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
margin-bottom: -10px;
margin-left: -20px;
}
.profile-modern-header:empty {
margin-bottom: 0;
margin-left: 0;
}
.profile-modern-header > * {
display: inline-block;
margin: 0 0 Line truncated
|
||||
*
|
||||
* Counters
|
||||
*/
.counter-minimal {
position: relative;
text-align: center;
color: #495057;
}
.counter-minimal-icon {
font-size: 24px;
line-height: 1;
color: #0045b6;
}
.counter-minimal-main {
font-family: "Poppins", sans-serif;
font-size: 36px;
font-weight: 500;
line-height: 1.2;
letter-spacing: 0;
}
.counter-minimal-main > * {
display: inline;
font: inherit;
}
.counter-minimal-main span {
display: inline;
}
* + .counter-minimal-title {
margin-top: 10px;
}
* + .counter-minimal-main {
margin-top: 15px;
}
@media (max-width: 575.98px) {
.counter-minimal-title {
font-size: 16px;
line-height: 1.4;
}
}
@media (min-width: 768px) {
.counter-minimal-icon {
font-size: 28px;
}
}
@media (min-width: 768px) {
.counter-minimal-title {
font-size: 18px;
}
.counter-minimal-main {
font-size: 48px;
}
}
@media (min-width: 1200px) {
* + .counter-minimal-main {
margin-top: 25px;
}
* + .counter-minimal-title {
margin-top: 18px;
}
}
/*
|
||||
*
|
||||
* Layouts
|
||||
*/
.layout-bordered {
text-align: center;
}
.layout-bordered-item {
border: 0 solid #d3d5db;
}
.layout-bordered-item-inner {
display: flex;
flex-direction: column;
justify-content: center;
max-width: 290px;
padding: 0 15px;
margin-left: auto;
margin-right: auto;
}
.layout-bordered-item-inner a {
color: #151515;
}
.layout-bordered-item-inner > * + * {
margin-top: 10px;
}
@media (max-width: 767.98px) {
.layout-bordered-item {
padding: 30px 0;
}
.layout-bordered-item:first-child {
padding-top: 0;
}
.layout-bordered-item:last-child {
padding-bottom: 0;
}
.layout-bordered-item + .layout-bordered-item {
border-top-width: 1px;
}
}
@media (min-width: 768px) {
.layout-bordered {
display: flex;
}
.layout-bordered-item {
flex-grow: 1;
}
.layout-bordered-item-inner > * + * {
margin-top: 15px;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
.layout-bordered-item {
font-size: 15px;
}
}
@media (min-width: 768px) {
.layout-bordered-item {
flex-basis: 33.333%;
border-right-width: 1px;
}
.layout-bordered-item:first-child {
border-left-width: 1px;
}
}
.layout-navbar-demo {
position: relative;
overflow: hidden;
min-height: 400px;
background: #e8e9ee;
}
.layout-navbar-demo.layout-navbar-demo-lg {
min-height: 650px;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-panel {
position: relative;
z-index: 10;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-nav-wrap {
position: absolute;
z-index: 9;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-main-outer,
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-main-element {
position: static;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-search {
position: static;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-panel .rd-navbar-search-toggle {
position: static;
z-index: 10;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-block {
top: -1px;
right: 10px;
white-space: nowrap;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-block > * {
display: inline-block;
margin-top: 0;
white-space: normal;
vertical-align: middle;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-block > * + * {
margin-left: 8px;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-block .rd-navbar-search-toggle {
margin-top: 6px;
}
.layout-navbar-demo .rd-navbar-fixed div.rd-navbar-popup {
position: absolute;
}
.layout-navbar-demo .rd-navbar-fixed.rd-navbar [class*='rd-navbar-fixed-element'] {
position: absolute;
z-index: 1000;
}
.layout-navbar-demo .rd-navbar-fixed.rd-navbar .rd-search {
position: absolute;
z-index: 1;
}
.layout-navbar-demo .rd-navbar-fixed .rd-navbar-collapse-content {
position: absolute;
z-index: 1;
}
@media (min-width: 1200px) {
.layout-navbar-demo {
min-height: 550px;
}
.layout-navbar-demo.layout-navbar-demo-lg {
min-height: 650px;
}
}
.container + .layout-navbar-demo {
margin-top: 20px;
}
.blog-layout-aside {
padding: 4px 0;
background: #f5f6fa;
}
.blog-layout-aside .rd-search .form-input {
border-color: transparent;
}
.blog-layout-aside-item {
padding: 25px 30px;
}
.blog-layout-aside-item .blog-layout-aside-title + * {
margin-top: 15px;
}
.blog-layout-aside-item a {
color: #151515;
}
.blog-layout-aside-title {
font-size: 22px;
line-height: 1.5;
}
* + .blog-layout-aside {
margin-top: 55px;
}
@media (min-width: 768px) {
* + .blog-layout-aside {
margin-top: 70px;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
.blog-layout-aside {
columns: 2;
break-inside: avoid;
}
.blog-layout-aside-item {
display: inline-block;
width: 100%;
}
}
@media (min-width: 992px) {
.blog-layout {
display: flex;
align-items: flex-start;
margin-left: -30px;
}
.blog-layout > * {
margin-left: 30px;
}
.blog-layout-main {
flex-grow: 1;
max-width: 66.66667%;
}
.blog-layout-aside {
flex-shrink: 0;
max-width: 33.33333%;
}
* + .blog-layout-aside {
margin-top: 0;
}
}
@media (min-width: 1200px) {
.blog-layout-aside-item {
padding: 35px 40px;
}
}
.blog-layout-aside .list-marked * > a {
transition: all ease .35s;
display: inline-block;
}
.blog-layout-aside .list-marked * > a:hover {
text-indent: 5px;
transition: all ease .35s;
}
/*
|
||||
*
|
||||
* Timeline
|
||||
*/
.timeline-classic {
text-align: left;
}
.timeline-classic-item {
position: relative;
overflow: hidden;
padding: 0 0 70px 35px;
margin-bottom: -25px;
}
.timeline-classic-item:last-child {
padding-bottom: 0;
margin-bottom: 0;
}
.timeline-classic-item-image {
width: 100%;
}
.timeline-classic-item-title {
font-family: "Poppins", sans-serif;
font-size: 24px;
line-height: 1.2;
font-weight: 300;
letter-spacing: 0;
text-transform: uppercase;
}
.thumbnail-classic-item-subtitle {
font-size: 16px;
line-height: 1.5;
color: #151515;
}
.timeline-classic-item-divider {
position: absolute;
top: 0;
left: 0;
display: flex;
flex-grow: 1;
flex-direction: column;
align-items: center;
padding-top: 25px;
}
.timeline-classic-item-divider::before {
content: '';
display: block;
width: 15px;
height: 15px;
border: 2px solid #0045b6;
border-radius: 50%;
}
.timeline-classic-item-divider::after {
content: '';
position: absolute;
top: 40px;
left: 50%;
margin-left: -1px;
width: 2px;
height: 300vh;
background: #0045b6;
min-height: 100px;
}
* + .timeline-classic-item-main {
margin-top: 20px;
}
.context-dark .timeline-classic-item-divider::before, .bg-gray-700 .timeline-classic-item-divider::before, .bg-gray-800 .timeline-classic-item-divider::before, .bg-primary .timeline-classic-item-divider::before, .bg-primary-darker .timeline-classic-item-divider::before {
border-color: #fff;
}
.context-dark .timeline-classic-item-divider::after, .bg-gray-700 .timeline-classic-item-divider::after, .bg-gray-800 .timeline-classic-item-divider::after, .bg-primary .timeline-classic-item-divider::after, .bg-primary-darker .timeline-classic-item-divider::after {
background: #fff;
}
.context-dark .thumbnail-classic-item-subtitle, .bg-gray-700 .thumbnail-classic-item-subtitle, .bg-gray-800 .thumbnail-classic-item-subtitle, .bg-primary .thumbnail-classic-item-subtitle, .bg-primary-darker .thumbnail-classic-item-subtitle {
color: #fff;
}
@media (max-width: 575.98px) {
.timeline-classic-item {
max-width: 450px;
margin-left: auto;
margin-right: auto;
}
}
@media (max-width: 767.98px) {
.timeline-classic-item {
flex-wrap: wrap;
}
.timeline-classic-item-main,
.timeline-classic-item-aside {
width: 100%;
}
}
@media (min-width: 768px) {
.timeline-classic-item {
display: flex;
padding-left: 0;
padding-bottom: 90px;
}
.timeline-classic-item-aside {
max-width: 33.33%;
}
.timeline-classic-item-main {
max-width: 60%;
}
.timeline-classic-item-divider {
position: relative;
padding: 25px 20px 0;
}
.timeline-classic-item-title {
font-size: 32px;
}
.thumbnail-classic-item-subtitle {
font-size: 18px;
line-height: 1.4;
}
* + .timeline-classic-item-main {
margin-top: 0;
}
}
@media (min-width: 992px) {
.timeline-classic-item * + h4,
.timeline-classic-item * + .heading-4 {
margin-top: 20px;
}
.timeline-classic-item-title {
font-size: 36px;
}
.thumbnail-classic-item-subtitle {
font-size: 20px;
line-height: 1.4;
}
.timeline-classic-item-aside {
max-width: 37%;
}
.timeline-classic-item-main {
max-width: 50%;
}
}
@media (min-width: 1200px) {
.timeline-classic-item-aside {
max-width: 33.33%;
}
.timeline-classic-item-title {
font-size: 48px;
}
}
@media (min-width: 1600px) {
.timeline-classic-item {
padding-bottom: 125px;
}
.timeline-classic-item * + h4,
.timeline-classic-item * + .heading-4 {
margin-top: 30px;
}
}
/*
|
||||
*
|
||||
* Careers
|
||||
*/
.career-classic {
text-align: left;
}
.career-classic-divider {
border-bottom: 1px solid #aeb1be;
}
.career-classic-list {
transform: translate3d(0, -10px, 0);
margin-bottom: -10px;
margin-left: -20px;
margin-right: -20px;
}
.career-classic-list > * {
margin-top: 10px;
padding-left: 20px;
padding-right: 20px;
}
.career-classic-list > li {
display: inline-block;
vertical-align: middle;
white-space: nowrap;
}
.career-classic-list > li > * {
display: inline-block;
vertical-align: middle;
}
.career-classic-list > li > * + * {
margin-left: 8px;
}
.career-classic-list .icon {
font-size: 1.25em;
color: #0045b6;
}
* + .career-classic-divider {
margin-top: 10px;
}
* + .career-classic-list {
margin-top: 15px;
}
@media (max-width: 575.98px) {
.career-classic {
max-width: 360px;
margin-left: auto;
margin-right: auto;
}
}
@media (min-width: 768px) {
* + .career-classic-divider {
margin-top: 20px;
}
* + .career-classic-list {
margin-top: 20px;
}
}
/*
|
||||
*
|
||||
* Comments
|
||||
*/
.comment-classic {
display: flex;
align-items: flex-start;
text-align: left;
padding-bottom: 20px;
border-bottom: 1px solid #e8e9ee;
}
.comment-classic > * + * {
margin-left: 20px;
}
.comment-classic-figure {
position: relative;
flex-shrink: 0;
width: 48px;
height: 48px;
}
.comment-classic-image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-height: 100%;
min-width: 100%;
width: auto;
height: auto;
border-radius: 50%;
max-width: none;
}
@supports (object-fit: cover) {
.comment-classic-image {
left: 0;
top: 0;
width: 100%;
height: 100%;
transform: none;
object-fit: cover;
object-position: center center;
}
}
.comment-classic-main {
flex-grow: 1;
}
.comment-classic-name {
color: #0045b6;
}
.comment-classic-text {
color: #495057;
}
.comment-classic-meta {
display: flex;
align-items: center;
justify-content: space-between;
}
.comment-classic-meta time {
color: #74757f;
}
.comment-classic-reply {
font-size: 24px;
line-height: 1;
color: #aeb1be;
}
.comment-classic-reply::before {
content: '\f549';
font-family: 'Material Design Icons';
}
.comment-classic-reply:hover {
color: #0045b6;
}
* + .comment-classic-text {
margin-top: 8px;
}
* + .comment-classic-meta {
margin-top: 5px;
}
@media (min-width: 576px) {
.comment-classic > * + * {
margin-left: 25px;
}
.comment-classic-reply {
font-size: 28px;
}
}
.comment-classic-group .comment-classic-group {
margin-left: 25px;
}
.comment-classic-group * + .comment-classic-group {
margin-top: 30px;
}
* + .comment-classic-group {
margin-top: 50px;
}
.comment-classic-group + .comment-classic-group {
margin-top: 30px;
}
@media (min-width: 768px) {
.comment-classic-group .comment-classic-group {
margin-left: 75px;
}
}
/*
|
||||
*
|
||||
* Jumbotron Classic
|
||||
*/
.jumbotron-classic.bg-gray-700 h6,
.jumbotron-classic.bg-gray-700 .heading-6 {
color: #fff;
}
.jumbotron-classic.parallax-container {
background-position: 60% center;
}
.jumbotron-classic .parallax-content {
width: 100%;
}
.jumbotron-classic-content {
max-width: 650px;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
.jumbotron-classic-content .title-docor-text:before {
top: 50%;
}
@media (max-width: 1599.98px) {
.jumbotron-classic-content {
padding: 120px 0;
}
}
@media (max-width: 767.98px) {
.jumbotron-classic-content {
padding: 60px 0 80px 0;
}
}
@media (max-width: 1199.98px) {
.jumbotron-classic.parallax-container::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
background: linear-gradient(to right, rgba(73, 80, 87, 0.6), rgba(73, 80, 87, 0.2));
}
}
@media (min-width: 768px) {
.jumbotron-classic-inner {
padding: 200px 0 140px;
}
}
@media (min-width: 1600px) {
.jumbotron-classic-content {
padding: 200px 0 150px;
}
}
.jumbotron-modern {
position: relative;
display: flex;
text-align: center;
}
.jumbotron-modern-inner {
position: relative;
z-index: 1;
display: flex;
align-items: center;
width: 100%;
padding: 50px 0;
}
.jumbotron-modern-content {
max-width: 770px;
margin-left: auto;
margin-right: auto;
}
@media (max-width: 767.98px) {
.jumbotron-modern .form-layout-1 {
display: inline-block;
max-width: 360px;
}
}
@media (max-width: 1199.98px) {
.jumbotron-modern::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
background: linear-gradient(to bottom, rgba(73, 80, 87, 0.4), rgba(73, 80, 87, 0));
}
}
@media (min-width: 768px) {
.jumbotron-modern-inner {
padding: 100px 0 140px;
}
}
@media (min-width: 1200px) {
.jumbotron-modern-inner {
min-height: 41.66667vw;
}
}
.jumbotron-indigo-header {
padding: 40px 0;
}
.jumbotron-indigo-main {
padding: 10px 0 40px;
}
@media (min-width: 768px) {
.jumbotron-indigo-header {
padding: 50px 0;
}
.jumbotron-indigo-main {
padding: 50px 0 185px;
}
}
/*
|
||||
*
|
||||
* Page layout
|
||||
*/
.page {
position: relative;
overflow: hidden;
min-height: 100vh;
}
.page.fadeIn {
animation-timing-function: ease-out;
}
.page.fadeOut {
animation-timing-function: ease-in;
}
[data-x-mode] .page {
opacity: 1;
}
html.boxed body {
background: #f5f6fa url(../images/bg-pattern-boxed.png) repeat fixed;
}
@media (min-width: 1630px) {
html.boxed .page {
max-width: 1600px;
margin-left: auto;
margin-right: auto;
box-shadow: 0 0 23px 0 rgba(1, 1, 1, 0.1);
}
html.boxed .rd-navbar-static {
max-width: 1600px;
margin-left: auto;
margin-right: auto;
}
html.boxed .rd-navbar-static.rd-navbar--is-stuck {
max-width: 1600px;
width: 100%;
left: calc(50% - 1600px);
right: calc(50% - 1600px);
}
}
.page-header-navbar {
position: relative;
z-index: 1080;
}
.page-header-navbar .rd-navbar-wrap {
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 1080;
}
/*
|
||||
*
|
||||
* Text styling
|
||||
*/
.text-italic {
font-style: italic;
}
.text-normal {
font-style: normal;
}
.text-underline {
text-decoration: underline;
}
.text-strike {
text-decoration: line-through;
}
.font-weight-thin {
font-weight: 100;
}
.font-weight-light {
font-weight: 300;
}
.font-weight-regular {
font-weight: 400;
}
.font-weight-medium {
font-weight: 500;
}
.font-weight-sbold {
font-weight: 600;
}
.font-weight-ubold {
font-weight: 900;
}
.text-spacing-0 {
letter-spacing: 0;
}
/*
|
||||
*
|
||||
* Offsets
|
||||
*/
* + p,
* + .list-inline-comma {
margin-top: 16px;
}
h3 + p, .heading-3 + p,
h3 + .p, .heading-3 + .p {
margin-top: 18px;
}
h4 + p, .heading-4 + p,
h4 + .p, .heading-4 + .p {
margin-top: 16px;
}
* + h1,
* + .heading-1 {
margin-top: 15px;
}
h3 + h1, h3 + .heading-1,
.heading-3 + h1, .heading-3 + .heading-1 {
margin-top: 5px;
}
h6 + h1,
h6 + .heading-1,
.heading-6 + h1,
.heading-6 + .heading-1 {
margin-top: 10px;
}
* + h4,
* + .heading-4 {
margin-top: 15px;
}
* + h5,
* + .heading-5 {
margin-top: 15px;
}
h6 + p,
.heading-6 + p {
margin-top: 22px;
}
p + h2,
p + .heading-2 {
margin-top: 15px;
}
p + p {
margin-top: 14px;
}
img + p {
margin-top: 15px;
}
h3 + p {
font-size: 16px;
}
h3 + img {
margin-top: 42px;
}
p + hr {
margin-top: 35px;
}
* + .row {
margin-top: 30px;
}
* + .big {
margin-top: 20px;
}
* + .text-block {
margin-top: 25px;
}
* + .button,
* + .button-outer {
margin-top: 25px;
}
* + .list-sm {
margin-top: 25px;
}
* + form.form-inline {
margin-top: 18px;
}
* + form.rd-form-small {
margin-top: 25px;
}
html * + .offset-top-1 {
margin-top: 40px;
}
html * + .offset-top-2 {
margin-top: 50px;
}
html * + .offset-top-3 {
margin-top: 20px;
}
html * + .offset-top-4 {
margin-top: 18px;
}
html .page * + .offset-top-5 {
margin-top: 40px;
}
h3 + .row, .heading-3 + .row,
h3 + .owl-carousel, .heading-3 + .owl-carousel {
margin-top: 35px;
}
.container + .container {
margin-top: 35px;
}
.container + .section {
margin-top: 25px;
}
.row + .row {
margin-top: 35px;
}
.row + .button-lg {
margin-top: 30px;
}
.list-sm + .group-xs {
margin-top: 20px;
}
@media (min-width: 768px) {
* + p,
* + .list-inline-comma {
margin-top: 20px;
}
* + .big {
margin-top: 25px;
}
* + .button,
* + .button-outer {
margin-top: 34px;
}
* + .row {
margin-top: 40px;
}
* + .text-block {
margin-top: 30px;
}
.container + .section {
margin-top: 30px;
}
.row + .button-lg {
margin-top: 45px;
}
html * + .offset-top-2 {
margin-top: 50px;
}
}
@media (min-width: 992px) {
* + h1,
* + .heading-1 {
margin-top: 22px;
}
h3 + p, .heading-3 + p,
h3 + .p, .heading-3 + .p {
margin-top: 24px;
}
h3 + .row, .heading-3 + .row,
h3 + .owl-carousel, .heading-3 + .owl-carousel {
margin-top: 55px;
}
html * + .offset-top-1 {
margin-top: 60px;
}
html * + .offset-top-3 {
margin-top: 30px;
}
html * + .offset-top-4 {
margin-top: 24px;
}
html .page * + .offset-top-5 {
margin-top: 60px;
}
.progress-linear + .button {
margin-top: 55px;
}
.row + .group {
margin-top: 45px;
}
}
@media (min-width: 1200px) {
* + .button,
* + .button-outer {
margin-top: 40px;
}
* + .rd-form {
margin-top: 40px;
}
h3 + p, .heading-3 + p,
h3 + .p, .heading-3 + .p {
margin-top: 20px;
}
html * + .offset-top-1 {
margin-top: 70px;
}
.container + .container {
margin-top: 60px;
}
.row + .row {
margin-top: 60px;
}
}
@media (min-width: 1600px) {
h3 + .row, .heading-3 + .row,
h3 + .owl-carousel, .heading-3 + .owl-carousel {
margin-top: 75px;
}
html * + .offset-top-1 {
margin-top: 144px;
}
html * + .offset-top-2 {
margin-top: 50px;
}
.row + .button-lg {
margin-top: 70px;
}
}
.row-0 {
margin-bottom: 0px;
}
.row-0:empty {
margin-bottom: 0;
}
.row-0 > * {
margin-bottom: 0px;
}
.row-10 {
margin-bottom: -10px;
}
.row-10:empty {
margin-bottom: 0;
}
.row-10 > * {
margin-bottom: 10px;
}
.row-x-10 {
margin-bottom: -10px;
margin-left: -5px;
margin-right: -5px;
}
.row-x-10:empty {
margin-bottom: 0;
}
.row-x-10 > * {
margin-bottom: 10px;
}
.row-x-10 > [class*='col'] {
padding-left: 5px;
padding-right: 5px;
}
.row-20 {
margin-bottom: -20px;
}
.row-20:empty {
margin-bottom: 0;
}
.row-20 > * {
margin-bottom: 20px;
}
.row-30 {
margin-bottom: -30px;
}
.row-30:empty {
margin-bottom: 0;
}
.row-30 > * {
margin-bottom: 30px;
}
.row-50 {
margin-bottom: -50px;
}
.row-50:empty {
margin-bottom: 0;
}
.row-50 > * {
margin-bottom: 50px;
}
.row-60 {
margin-bottom: -50px;
}
.row-60:empty {
margin-bottom: 0;
}
.row-60 > * {
margin-bottom: 50px;
}
.row-45 {
margin-bottom: -45px;
}
.row-45:empty {
margin-bottom: 0;
}
.row-45 > * {
margin-bottom: 45px;
}
@media (min-width: 768px) {
.row-md-50 {
margin-bottom: -50px;
}
.row-md-50:empty {
margin-bottom: 0;
}
.row-md-50 > * {
margin-bottom: 50px;
}
}
@media (min-width: 992px) {
.row-md-30 {
margin-bottom: -30px;
}
.row-md-30:empty {
margin-bottom: 0;
}
.row-md-30 > * {
margin-bottom: 30px;
}
}
@media (min-width: 1600px) {
.row-xxl-70 {
margin-bottom: -70px;
}
.row-xxl-70:empty {
margin-bottom: 0;
}
.row-xxl-70 > * {
margin-bottom: 70px;
}
}
/*
|
||||
*
|
||||
* Sections
|
||||
*/
.section-xs {
padding: 30px 0;
}
.section-sm {
padding: 35px 0;
}
.section-sm.section-first {
padding-top: 65px;
}
.section-sm.section-last {
padding-bottom: 80px;
}
.section-md,
.section-lg,
.section-xl {
padding: 50px 0;
}
.section-1 {
padding: 35px 0;
}
.section-collapse + .section-collapse {
padding-top: 0;
}
.section-collapse:last-child {
padding-bottom: 0;
}
html [class*='section-'].section-bottom-0 {
padding-bottom: 0;
}
@media (min-width: 576px) {
.section-xs {
padding: 40px 0;
}
}
@media (min-width: 768px) {
.section-sm {
padding: 45px 0;
}
.section-sm.section-first {
padding-top: 90px;
}
.section-sm.section-last {
padding-bottom: 90px;
}
.section-md {
padding: 60px 0;
}
.section-lg {
padding: 72px 0;
}
.section-lg.section-first {
padding-top: 100px;
}
.section-lg.section-last {
padding-bottom: 100px;
}
.section-xl {
padding: 80px 0;
}
.section-1 {
padding: 60px 0;
}
}
@media (min-width: 992px) {
.section-md {
padding: 60px 0 70px;
}
.section-xl {
padding: 100px 0;
}
.section-1 {
padding: 80px 0;
}
}
@media (min-width: 1200px) {
.section-sm {
padding: 60px 0;
}
.section-sm.section-first {
padding-top: 80px;
}
.section-sm.section-last {
padding-bottom: 80px;
}
}
@media (min-width: 1600px) {
.section-sm.section-first {
padding-top: 120px;
}
.section-sm.section-last {
padding-bottom: 120px;
}
.section-md {
padding: 85px 0 95px;
}
.section-lg {
padding: 120px 0;
}
.section-lg.section-first {
padding-top: 120px;
}
.section-lg.section-last {
padding-bottom: 120px;
}
.section-xl {
padding: 160px 0;
}
.section-1 {
padding: 90px 0 100px;
}
}
.section-single {
display: flex;
}
.section-single::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
background: rgba(21, 21, 21, 0.4);
}
.section-single * + .rd-mailform-wrap {
margin-top: 35px;
}
.section-single * + .countdown-wrap {
margin-top: 30px;
}
.section-single .countdown-wrap + * {
margin-top: 35px;
}
.section-single-dummy {
visibility: hidden;
pointer-events: none;
}
.section-single-header {
padding: calc(1em + 3vh) 0 calc(1em + 2vh);
}
.section-single-main {
padding: calc(1em + 4vh) 0;
}
.section-single-footer {
padding: calc(1em + 2vh) 0 calc(1em + 3vh);
}
.section-single-inner {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
width: 100%;
min-height: 100vh;
padding-top: 6vh;
}
.section-single-inner > * {
width: 100%;
}
@supports (display: grid) {
.section-single-inner {
display: grid;
justify-items: center;
align-content: space-between;
grid-template-columns: 1fr;
}
}
@media (max-width: 575.98px) {
.section-single .section-single-main-content {
max-width: 240px;
margin-left: auto;
margin-right: auto;
}
}
@media (max-width: 767.98px) {
.section-single .button-lg {
font-size: 15px;
padding-left: 25px;
padding-right: 25px;
}
}
@media (min-width: 768px) {
.section-single::before {
display: none;
}
.section-single-inner {
padding-top: 7vh;
}
}
@media (min-width: 1200px) {
.section-single * + .countdown-wrap {
margin-top: 50px;
}
.section-single .countdown-wrap + * {
margin-top: 50px;
}
}
.section-overlap {
position: relative;
padding: 40px 0;
}
.section-overlap .row {
flex-wrap: nowrap;
flex-direction: column;
align-items: flex-end;
}
.section-overlap [class*='col'] {
flex-basis: auto;
}
.section-overlap * + [class*='col'] {
margin-top: 10px;
}
.section-overlap * + .col-offset-1 {
margin-top: 20px;
}
.section-overlap-image {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
}
.section-overlap-content {
position: relative;
z-index: 1;
}
@media (max-width: 767.98px) {
.section-overlap-content .container {
padding: 20px 15px;
background: linear-gradient(to right, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.8));
}
.section-overlap-content .container > * {
max-width: 380px;
}
}
@media (max-width: 767.98px) and (min-width: 576px) {
.section-overlap-content .container {
padding: 40px 50px;
}
}
@media (min-width: 768px) and (max-width: 991.98px) {
.section-overlap-image::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
pointer-events: none;
background: linear-gradient(to left, rgba(245, 246, 250, 0.4), rgba(245, 246, 250, 0));
}
}
@media (min-width: 768px) {
.section-overlap {
padding: 75px 0;
}
.section-overlap * + [class*='col'] {
margin-top: 20px;
}
.section-overlap * + .col-offset-1 {
margin-top: 40px;
}
.section-overlap-image {
background-position: 80% 50%;
width: calc(50% - 60px + 35px);
}
}
@media (min-width: 992px) {
.section-overlap {
padding: 100px 0;
}
.section-overlap-image {
width: calc(50% - -80Line truncated
|
||||
*
|
||||
* Grid modules
|
||||
*/
.range {
display: flex;
flex-wrap: wrap;
}
.cell-inner {
width: 100%;
padding-right: 15px;
padding-left: 15px;
}
.range > [class*='cell'] {
position: relative;
width: 100%;
min-height: 1px;
}
.range > [class*='cell'] > .row {
margin: 0;
}
.range > [class*='cell'].container {
padding: 0;
}
.range > [class*='col'] {
padding: 0;
}
@media (min-width: 576px) {
.cell-sm-6 {
flex: 0 0 50%;
max-width: 50%;
}
.cell-sm-6 .cell-inner {
max-width: 270px;
}
.range > [class*='cell-sm']:nth-child(odd) .cell-inner {
margin-left: auto;
}
.range.flex-sm-row-reverse > [class*='cell-sm']:nth-child(odd) .cell-inner {
margin-left: 0;
}
.range.flex-sm-row-reverse > [class*='cell-sm']:nth-child(even) .cell-inner {
margin-left: auto;
}
.range > [class*='cell-sm'].container {
margin: 0;
}
}
@media (min-width: 768px) {
.range > [class*='cell-md']:nth-child(odd) .cell-inner {
margin-left: auto;
}
.range.flex-md-row-reverse > [class*='cell-md']:nth-child(odd) .cell-inner {
margin-left: 0;
}
.range.flex-md-row-reverse > [class*='cell-md']:nth-child(even) .cell-inner {
margin-left: auto;
}
.range > [class*='cell-md'].container {
margin: 0;
}
}
@media (min-width: 992px) {
[class*='cell-lg'] > .row > [class*='col'] {
flex-basis: 100%;
}
.cell-lg-5 {
flex: 0 0 calc(50% - 80px);
max-width: calc(50% - 80px);
}
.cell-lg-5 .cell-inner {
max-width: 400px;
}
.cell-lg-6 {
flex: 0 0 50%;
max-width: 50%;
}
.cell-lg-6 .cell-inner {
max-width: 480px;
}
.range > [class*='cell-lg']:nth-child(odd) .cell-inner {
margin-left: auto;
}
.range.flex-lg-row-reverse > [class*='cell-lg']:nth-child(odd) .cell-inner {
margin-left: 0;
}
.range.flex-lg-row-reverse > [class*='cell-lg']:nth-child(even) .cell-inner {
margin-left: auto;
}
.range > [class*='cell-lg'].container {
margin: 0;
}
}
@media (min-width: 1200px) {
.range > [class*='cell-xl'].container {
margin: 0;
}
.range > [class*='cell-xl']:nth-child(odd) .cell-inner {
margin-left: auto;
}
.range .cell-inner {
flex-basis: 100%;
}
.cell-xl-7 {
flex: 0 0 calc(50% - -100px);
max-width: calc(50% - -100px);
}
.cell-xl-7 .cell-inner {
max-width: 700px;
}
.cell-lg-6,
.cell-xl-6 {
flex: 0 0 50%;
max-width: 50%;
}
.cell-lg-6 .cell-inner,
.cell-xl-6 .cell-inner {
max-width: 600px;
}
.cell-xl-5 {
flex: 0 0 calc(50% - 100px);
max-width: calc(50% - 100px);
}
.cell-xl-5 .cell-inner {
max-width: 500px;
}
.cell-xl-4 {
flex: 0 0 calc(50% - 200px);
max-width: calc(50% - 200px);
}
.cell-xl-4 .cell-inner {
max-width: 400px;
}
}
@media (min-width: 1600px) {
.cell-xxl-6 {
flex: 0 0 50%;
max-width: 50%;
}
.cell-xxl-6 .cell-inner {
max-width: 600px;
}
}
/*
|
||||
*
|
||||
* Backgrounds
|
||||
*/
.context-dark, .bg-gray-700, .bg-gray-800, .bg-primary, .bg-primary-darker,
.context-dark h1,
.bg-gray-700 h1,
.bg-gray-800 h1,
.bg-primary h1,
.bg-primary-darker h1, .context-dark h2, .bg-gray-700 h2, .bg-gray-800 h2, .bg-primary h2, .bg-primary-darker h2, .context-dark h3, .bg-gray-700 h3, .bg-gray-800 h3, .bg-primary h3, .bg-primary-darker h3, .context-dark h4, .bg-gray-700 h4, .bg-gray-800 h4, .bg-primary h4, .bg-primary-darker h4, .context-dark h5, .bg-gray-700 h5, .bg-gray-800 h5, .bg-primary h5, .bg-primary-darker h5, .context-dark h6, .bg-gray-700 h6, .bg-gray-800 h6, .bg-primary h6, .bg-primary-darker h6, .context-dark [class^='heading-'], .bg-gray-700 [class^='heading-'], .bg-gray-800 [class^='heading-'], .bg-primary [class^='heading-'], .bg-primary-darker [class^='heading-'] {
color: #fff;
}
.context-dark p a, .bg-gray-700 p a, .bg-gray-800 p a, .bg-primary p a, .bg-primary-darker p a {
color: inherit;
}
.context-dark .big, .bg-gray-700 .big, .bg-gray-800 .big, .bg-primary .big, .bg-primary-darker .big {
color: #fff;
}
.context-dark .brand .brand-logo-dark, .bg-gray-700 .brand .brand-logo-dark, .bg-gray-800 .brand .brand-logo-dark, .bg-primary .brand .brand-logo-dark, .bg-primary-darker .brand .brand-logo-dark {
display: none;
}
.context-dark .brand .brand-logo-light, .bg-gray-700 .brand .brand-logo-light, .bg-gray-800 .brand .brand-logo-light, .bg-primary .brand .brand-logo-light, .bg-primary-darker .brand .brand-logo-light {
display: block;
}
.context-dark .button-primary:hover, .bg-gray-700 .button-primary:hover, .bg-gray-800 .button-primary:hover, .bg-primary .button-primary:hover, .bg-primary-darker .button-primary:hover {
background: #4854ed;
border-color: #4854ed;
}
/**
|
||||
* Light Backgrounds
|
||||
*/
.bg-gray-100 {
background-color: #f5f6fa;
}
/**
|
||||
* Dark Backgrounds
|
||||
*/
.bg-gray-700 {
color: #aeb1be;
background-color: #232426;
}
.bg-gray-700 a {
color: inherit;
}
.bg-gray-700 a:hover {
color: #fff;
}
.bg-gray-700 p a:hover {
color: #fff;
}
.bg-gray-800 {
background-color: #151515;
}
/**
|
||||
* Accent Backgrounds
|
||||
*/
.bg-primary {
background-color: #0045b6;
}
.bg-primary-darker {
background-color: #29293a;
}
/**
|
||||
* Background Image
|
||||
*/
[class*='bg-'] {
background-size: cover;
background-position: center center;
}
@media (max-width: 1199.98px) {
.bg-image-light {
position: relative;
}
.bg-image-light::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(255, 255, 255, 0.1);
}
}
.bg-image-1 {
position: relative;
background-position: 30% 100%;
}
.bg-image-1::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: #495057;
opacity: .6;
}
.bg-image-1 > * {
position: relative;
z-index: 1;
}
@media (min-width: 576px) {
.bg-image-1 {
background-position: 72% 100%;
}
.bg-image-1::before {
opacity: .2;
}
}
@media (min-width: 768px) {
.bg-image-1 {
background-position: 54% 100%;
}
.bg-image-1::before {
display: none;
}
}
@media (min-width: 992px) {
html:not(.tablet):not(.mobile) .bg-fixed {
background-attachment: fixed;
}
}
.primary-overlay {
position: relative;
}
.primary-overlay:before {
position: absolute;
content: '';
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(21, 21, 21, 0.45);
pointer-events: none;
z-index: 1;
display: block;
}
/*
|
||||
*
|
||||
* Utilities custom
|
||||
*/
.height-fill {
position: relative;
display: flex;
flex-direction: column;
align-items: stretch;
}
.height-fill > * {
flex-grow: 1;
flex-shrink: 0;
}
.object-inline {
white-space: nowrap;
}
.object-inline > * {
display: inline-block;
min-width: 20px;
vertical-align: top;
white-space: normal;
}
.object-inline.wow span {
display: inline-block;
}
.object-inline > * + * {
margin-left: 11px;
}
.wow-outer .object-inline span {
display: inline-block;
}
.oh {
position: relative;
overflow: hidden;
}
.text-decoration-lines {
position: relative;
overflow: hidden;
width: 100%;
text-align: center;
}
.text-decoration-lines-content {
position: relative;
display: inline-block;
padding: 0 20px;
}
.text-decoration-lines-content::before, .text-decoration-lines-content::after {
content: '';
position: absolute;
height: 1px;
background: #aeb1be;
top: 50%;
width: 100vw;
}
.text-decoration-lines-content::before {
left: 0;
transform: translate3d(-100%, 0, 0);
}
.text-decoration-lines-content::after {
right: 0;
transform: translate3d(100%, 0, 0);
}
* + .text-decoration-lines {
margin-top: 30px;
}
.text-block > * {
margin-left: .125em;
margin-right: .125em;
}
@media (min-width: 992px) {
.offset-right-1 {
margin-right: 40px;
}
}
.banner {
background-position: center center;
background-size: cover;
}
.phone-frame {
max-width: 296px;
padding: 0 5px;
margin-left: auto;
margin-right: auto;
box-shadow: -46.037px 40.02px 21px 0px rgba(0, 0, 0, 0.02);
}
@media (max-width: 767.98px) {
.phone-frame {
display: none;
}
}
.tip-mark {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2em;
height: 2em;
padding-left: 2px;
margin-bottom: 5px;
font-size: 12px;
line-height: 2em;
vertical-align: middle;
text-align: center;
border-radius: 50%;
border: 1px solid #e8e9ee;
color: #0045b6;
}
/*
|
||||
*
|
||||
* Insets
|
||||
*/
@media (min-width: 576px) {
.inset-left-1 {
padding-left: 10px;
}
}
@media (min-width: 768px) {
.inset-left-1 {
padding-left: 30px;
}
}
@media (min-width: 992px) {
.inset-left-1 {
padding-left: 0;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.inset-left-2 {
padding-left: 30px;
}
}
@media (min-width: 576px) {
.inset-right-1 {
padding-right: 20px;
}
}
@media (min-width: 768px) {
.inset-right-1 {
padding-right: 30px;
}
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.inset-right-1 {
padding-right: 0;
}
}
@media (min-width: 992px) {
.inset-right-2 {
padding-right: 30px;
}
}
@media (min-width: 1200px) {
.inset-right-2 {
padding-right: 0;
}
}
@media (min-width: 992px) {
.inset-right-3 {
padding-left: 5px;
}
}
@media (min-width: 1200px) {
.inset-right-3 {
padding-right: 0;
}
}
/*
|
||||
*
|
||||
* Animate.css
|
||||
*/
.animated {
animation-duration: 1s;
animation-fill-mode: both;
opacity: 1;
}
.animated.infinite {
animation-iteration-count: infinite;
}
.animated.hinge {
animation-duration: 2s;
}
html:not(.lt-ie10) .not-animated {
opacity: 0;
}
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.fadeIn {
animation-name: fadeIn;
}
@keyframes fadeInUp {
0% {
opacity: 0;
transform: translate3d(0, 100%, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInUp {
animation-name: fadeInUp;
}
@keyframes fadeInDown {
0% {
opacity: 0;
transform: translate3d(0, -100%, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInDown {
animation-name: fadeInDown;
}
@keyframes fadeInLeft {
0% {
opacity: 0;
transform: translate3d(-100%, 0, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInLeft {
animation-name: fadeInLeft;
}
@keyframes fadeInRight {
0% {
opacity: 0;
transform: translate3d(100%, 0, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInRight {
animation-name: fadeInRight;
}
@keyframes fadeOut {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
.fadeOut {
animation-name: fadeOut;
}
@keyframes slideInDown {
0% {
transform: translate3d(0, -100%, 0);
visibility: visible;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.slideInDown {
animation-name: slideInDown;
}
@keyframes slideInUp {
0% {
transform: translate3d(0, 100%, 0);
visibility: visible;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.slideInUp {
animation-name: slideInUp;
}
@keyframes slideInLeft {
0% {
transform: translate3d(-100%, 0, 0);
visibility: visible;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.slideInLeft {
animation-name: slideInLeft;
}
@keyframes slideInRight {
0% {
transform: translate3d(100%, 0, 0);
visibility: visible;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.slideInRight {
animation-name: slideInRight;
}
@keyframes slideOutDown {
0% {
transform: translate3d(0, 0, 0);
}
100% {
visibility: hidden;
transform: translate3d(0, 100%, 0);
}
}
.slideOutDown {
animation-name: slideOutDown;
}
@keyframes scaleInY {
0% {
top: 0;
bottom: 100%;
}
50% {
transform: scale3d(1, 1, 1);
}
100% {
top: 100%;
bottom: auto;
transform: scale3d(1, 0, 1);
}
}
@keyframes scaleFadeIn {
0% {
height: 0;
}
100% {
height: 100%;
}
}
.scaleFadeIn {
display: flex;
overflow: hidden;
animation-name: scaleFadeIn;
animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.scaleFadeInWrap {
display: flex;
align-items: stretch;
}
.wow-outer {
position: relative;
overflow: hidden;
}
@keyframes scaleInVertical {
0% {
transform: scale3d(1, 0, 1);
}
100% {
transform: scale3d(1, 1, 1);
}
}
.scaleInVertical {
animation-name: scaleInVertical;
}
@keyframes fadeInLeftSmall {
0% {
opacity: 0;
transform: translate3d(-20px, 0, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInLeftSmall {
animation-name: fadeInLeftSmall;
}
@keyframes fadeInUpSmall {
0% {
opacity: 0;
transform: translate3d(0, 20px, 0);
}
100% {
opacity: 1;
transform: none;
}
}
.fadeInUpSmall {
animation-name: fadeInUpSmall;
}
@keyframes fadeSlideInDown {
0% {
opacity: 0;
transform: translate3d(0, -50%, 0);
visibility: visible;
}
10% {
opacity: 1;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.fadeSlideInDown {
animation-name: fadeSlideInDown;
}
@keyframes fadeSlideInUp {
0% {
opacity: 0;
transform: translate3d(0, 50%, 0);
visibility: visible;
}
10% {
opacity: 1;
}
100% {
transform: translate3d(0, 0, 0);
}
}
.fadeSlideInUp {
animation-name: fadeSlideInUp;
}
.wow {
backface-visibility: hidden;
}
/*
|
||||
*
|
||||
* Preloader
|
||||
*/
.preloader {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
z-index: 10000;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 20px;
transition: .3s all ease;
pointer-events: none;
backface-visibility: hidden;
}
.preloader::before, .preloader::after {
content: '';
position: absolute;
left: 0;
right: 0;
transition: .2s linear;
transform: translateY(0);
pointer-events: none;
}
.preloader::before {
top: 0;
bottom: 50%;
background: #fff;
}
.preloader::after {
top: 50%;
bottom: 0;
background: #f5f6fa;
}
.preloader.loaded::before, .preloader.loaded::after {
transition: .4s linear;
}
.preloader.loaded::before {
transform: translateY(-100%);
}
.preloader.loaded::after {
transform: translateY(100%);
}
.preloader.loaded .preloader-logo,
.preloader.loaded .preloader-body {
opacity: 0;
visibility: hidden;
transition: 0s;
}
.preloader-logo,
.preloader-body {
transition: 0s .2s;
}
.preloader-logo {
position: relative;
z-index: 10;
transform: translate3d(0, -50%, 0);
padding: 40px;
}
.preloader-body {
position: absolute;
top: 50%;
transform: translate3d(0, -50%, 0);
left: 0;
right: 0;
z-index: 10;
text-align: center;
}
#loadingProgressG {
width: 100vw;
height: 5px;
overflow: hidden;
background: #e8e9ee;
border-radius: 6px;
margin: auto;
}
.loadingProgressG {
background: #0045b6;
margin-top: 0;
margin-left: -100vw;
animation-name: bounce_loadingProgressG;
animation-duration: 2.5s;
animation-iteration-count: infinite;
animation-timing-function: linear;
width: 100vw;
height: 5px;
transition: .5s;
}
@keyframes bounce_loadingProgressG {
0% {
margin-left: -100vw;
}
100% {
margin-left: 100vw;
}
}
/*
|
||||
*
|
||||
* ToTop
|
||||
*/
.ui-to-top {
position: fixed;
right: 15px;
bottom: 15px;
z-index: 100;
width: 48px;
height: 48px;
border-radius: 6px;
color: #fff;
background: #0045b6;
overflow: hidden;
text-align: center;
text-decoration: none;
transition: transform 0.45s ease-in-out, background 0.3s cubic-bezier(0.2, 1, 0.3, 1);
transform: translate3d(0, 100px, 0);
}
.ui-to-top::before, .ui-to-top::after {
content: '\f239';
font-family: 'Material Design Icons';
font-size: 20px;
line-height: 48px;
vertical-align: middle;
transition: transform 0.3s cubic-bezier(0.2, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.2, 1, 0.3, 1);
}
.ui-to-top::before {
display: block;
}
.ui-to-top::after {
position: absolute;
width: 100%;
top: 50%;
left: 0;
opacity: 0;
transform: translate3d(0, 0, 0);
}
.ui-to-top:hover::before {
opacity: 0;
transform: translate3d(0, -30%, 0);
}
.ui-to-top:hover::after {
opacity: 1;
transform: translate3d(0, 0, 0) translateY(-50%);
}
.ui-to-top:hover {
color: #fff;
background: #4854ed;
text-decoration: none;
}
.ui-to-top:focus {
color: #fff;
}
.ui-to-top.active {
transform: translate3d(0, 0, 0);
}
html.mobile .ui-to-top,
html.tablet .ui-to-top {
display: none !important;
}
@media (min-width: 576px) {
.ui-to-top {
right: 40px;
bottom: 40px;
}
}
/*
|
||||
*
|
||||
* RD Navbar
|
||||
*/
@keyframes rd-navbar-slide-down {
0% {
transform: translateY(-100%);
}
100% {
transform: translateY(0);
}
}
@keyframes rd-navbar-slide-up {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-100%);
}
}
.rd-navbar-wrap, .rd-navbar,
.rd-menu,
.rd-navbar-nav,
.rd-navbar-panel, .rd-navbar-static .rd-menu, .rd-navbar-fixed .rd-navbar-nav-wrap, .rd-navbar-fixed .rd-navbar-submenu {
transition: 0.35s all cubic-bezier(0.65, 0.05, 0.36, 1);
}
.rd-navbar--no-transition, .rd-navbar--no-transition * {
transition: none !important;
}
.rd-navbar,
.rd-navbar.rd-navbar--is-clone {
display: none;
}
.rd-navbar.rd-navbar-fixed + .rd-navbar.rd-navbar--is-clone,
.rd-navbar.rd-navbar-sidebar + .rd-navbar.rd-navbar--is-clone {
display: none;
}
.rd-navbar {
display: none;
background: #fff;
}
.rd-navbar-outer {
position: relative;
z-index: 1080;
}
.rd-nav-link {
font: 400 14px/20px "Poppins", sans-serif;
letter-spacing: .08em;
text-transform: uppercase;
}
.rd-navbar-toggle {
display: inline-block;
position: relative;
width: 40px;
height: 40px;
line-height: 40px;
cursor: pointer;
color: #495057;
background-color: transparent;
border: none;
display: none;
}
.rd-navbar-toggle span {
position: relative;
display: block;
margin: auto;
transition: .3s all ease;
}
.rd-navbar-toggle span::after, .rd-navbar-toggle span::before {
content: "";
position: absolute;
left: 0;
top: -6px;
transition: .3s all ease;
}
.rd-navbar-toggle span::after {
top: 5px;
}
.rd-navbar-toggle span::after, .rd-navbar-toggle span::before, .rd-navbar-toggle span {
width: 24px;
height: 2px;
background-color: #495057;
backface-visibility: hidden;
border-radius: 5;
}
.rd-navbar-toggle.active span {
background: transparent;
transition: .01s;
}
.rd-navbar-toggle.active span::before, .rd-navbar-toggle.active span::after {
transform-origin: 50% 50%;
top: 0;
}
.rd-navbar-toggle.active span::before {
transform: rotate(45deg);
}
.rd-navbar-toggle.active span::after {
transform: rotate(-45deg);
}
.rd-navbar-collapse-toggle {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
display: inline-block;
position: relative;
width: 40px;
height: 40px;
line-height: 40px;
cursor: pointer;
color: #495057;
display: none;
}
.rd-navbar-collapse-toggle::-moz-focus-inner {
border: none;
padding: 0;
}
.rd-navbar-collapse-toggle span {
top: 50%;
margin-top: -2.5px;
}
.rd-navbar-collapse-toggle span, .rd-navbar-collapse-toggle span::before, .rd-navbar-collapse-toggle span::after {
position: absolute;
width: 5px;
height: 5px;
line-height: 5px;
text-align: center;
background: #495057;
left: 50%;
margin-left: -2.5px;
border-radius: 50%;
transition: .3s all ease;
}
.rd-navbar-collapse-toggle span::before, .rd-navbar-collapse-toggle span::after {
content: '';
}
.rd-navbar-collapse-toggle span::before {
bottom: 100%;
margin-bottom: 2.5px;
}
.rd-navbar-collapse-toggle span::after {
top: 100%;
margin-top: 2.5px;
}
.rd-navbar-collapse-toggle.active span {
transform: scale(0.7);
}
.rd-navbar-collapse-toggle.active span::before {
transform: translateY(15px);
}
.rd-navbar-collapse-toggle.active span::after {
transform: translateY(-15px);
}
.rd-navbar-brand a {
display: block;
}
.rd-navbar-search {
position: relative;
display: inline-flex;
}
.rd-navbar-search .form-input {
padding-right: 50px;
}
.rd-navbar-search .rd-search-form-submit {
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 50px;
padding: 0;
margin: 0;
border: none;
cursor: pointer;
background-color: transparent;
font-size: 20px;
color: #aeb1be;
transition: .33s;
}
.rd-navbar-search .rd-search-form-submit:hover {
color: #0045b6;
}
.rd-navbar-search .rd-search-results-live {
pointer-events: none;
}
.rd-navbar-search .rd-search-results-live > * {
pointer-events: auto;
}
.rd-navbar-search-toggle {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
}
.rd-navbar-search-toggle::-moz-focus-inner {
border: none;
padding: 0;
}
.rd-navbar-dropdown {
display: none;
}
.rd-navbar-popup {
position: absolute;
padding: 15px 25px 20px 20px;
width: calc(100vw - 10px);
border-radius: 6px;
opacity: 0;
visibility: hidden;
transition: .2s;
overflow: hidden;
background-color: #495057;
}
.rd-navbar-popup::before {
content: '';
position: absolute;
right: 0;
left: 0;
top: 0;
bottom: 0;
z-index: -1;
transform: scale3d(1, 0.1, 1);
transform-origin: 50% 0;
background: #495057;
border-radius: inherit;
transition: .5s;
}
.rd-navbar-popup > * {
position: relative;
z-index: 1;
opacity: 0;
visibility: hidden;
transition: .5s;
transform-origin: 50% 0;
transform: scale3d(1, 0.9, 1);
}
.rd-navbar-popup.active {
opacity: 1;
visibility: visible;
}
.rd-navbar-popup.active > * {
opacity: Line truncated
|
||||
* @subsection RD Navbar Static
|
||||
*/
.rd-navbar-static {
display: block;
position: relative;
}
.rd-navbar-static .rd-nav-item {
display: inline-block;
}
.rd-navbar-static .rd-nav-item.focus .rd-nav-link, .rd-navbar-static .rd-nav-item.opened .rd-nav-link {
color: rgba(255, 255, 255, 0.5);
background: transparent;
}
.rd-navbar-static .rd-nav-item.focus > .rd-navbar-submenu-toggle, .rd-navbar-static .rd-nav-item.opened > .rd-navbar-submenu-toggle {
color: #fff;
}
.rd-navbar-static .rd-nav-item.active .rd-nav-link {
color: rgba(255, 255, 255, 0.5);
background: transparent;
}
.rd-navbar-static .rd-nav-item.active > .rd-navbar-submenu-toggle {
color: #fff;
}
.rd-navbar-static .rd-nav-item.focus > .rd-navbar-submenu-toggle::before,
.rd-navbar-static .rd-nav-item.opened > .rd-navbar-submenu-toggle::before,
.rd-navbar-static .rd-nav-item .rd-nav-link:hover + .rd-navbar-submenu-toggle::before {
transform: rotate(180deg);
color: rgba(255, 255, 255, 0.5);
}
.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle {
margin-left: 4px;
font-family: "Material Design Icons";
font-size: 16px;
cursor: pointer;
color: #fff;
}
.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle::before {
position: relative;
display: inline-block;
transition: .22s;
content: '\f236';
}
.rd-navbar-static .rd-nav-item > .rd-navbar-submenu-toggle:hover {
color: rgba(255, 255, 255, 0.4);
}
.rd-navbar-static .rd-nav-item > .rd-navbar-submenu {
margin-top: 20px;
}
.rd-navbar-static .rd-nav-item + .rd-nav-item {
margin-left: 35px;
}
.rd-navbar-static .rd-nav-link {
position: relative;
display: inline-block;
color: #fff;
transition: .25s;
padding-bottom: 2px;
}
.rd-navbar-static .rd-nav-link:hover {
color: rgba(255, 255, 255, 0.4);
}
.rd-navbar-static .rd-menu {
position: absolute;
z-index: 15;
display: block;
padding: 16px 27px;
margin-top: 22px;
margin-left: -27px;
visibility: hidden;
opacity: 0;
text-align: left;
box-shadow: 0 5px 10px 1px rgba(20, 20, 28, 0.3);
border-radius: 6px;
transform: translate3d(0, 30px, 0);
}
.rd-navbar-static .rd-dropdown-item + .rd-dropdown-item,
.rd-navbar-static .rd-megamenu-list-item + .rd-megamenu-list-item {
margin-top: 7px;
}
.rd-navbar-static .rd-navbar-dropdown {
position: absolute;
left: 0;
width: 290px;
background: #232426;
z-index: 5;
}
.rd-navbar-static .rd-navbar-dropdown .rd-navbar-dropdown {
top: -1px;
left: 100%;
z-index: 2;
margin-top: -15px;
margin-left: 15px;
transform: translate3d(30px, 0, 0);
}
.rd-navbar-static .rd-navbar-dropdown .rd-navbar-dropdown.rd-navbar-open-left {
left: auto;
right: 100%;
margin-left: 0;
margin-right: 15px;
transform: translate3d(-30px, 0, 0);
}
.rd-navbar-static .rd-dropdown-item.focus .rd-dropdown-link, .rd-navbar-static .rd-dropdown-item.opened .rd-dropdown-link {
color: #fff;
}
.rd-navbar-static .rd-dropdown-link {
color: #aeb1be;
}
.rd-navbar-static .rd-dropdown-link:hover {
color: #fff;
}
.rd-navbar-static .rd-navbar-dropdown li > a,
.rd-navbar-static .rd-megamenu-list li > a {
position: relative;
left: -13px;
display: flex;
padding: 4px 18px 4px 0;
text-align: left;
}
.rd-navbar-static .rd-navbar-dropdown li > a, .rd-navbar-static .rd-navbar-dropdown li > a:focus, .rd-navbar-static .rd-navbar-dropdown li > a:active,
.rd-navbar-static .rd-megamenu-list li > a,
.rd-navbar-static .rd-megamenu-list li > a:focus,
.rd-navbar-static .rd-megamenu-list li > a:active {
color: #aeb1be;
}
.rd-navbar-static .rd-navbar-dropdown li > a:hover,
.rd-navbar-static .rd-megamenu-list li > a:hover {
color: #fff;
}
.rd-navbar-static .rd-navbar-dropdown li > a, .rd-navbar-static .rd-navbar-dropdown li > a::before,
.rd-navbar-static .rd-megamenu-list li > a,
.rd-navbar-static .rd-megamenu-list li > a::before {
transition: all .2s ease-in-out;
}
.rd-navbar-static .rd-navbar-dropdown li > a::before,
.rd-navbar-static .rd-megamenu-list li > a::before {
position: relative;
top: -1px;
left: -6px;
display: inline-block;
content: '\f238';
font-family: 'Material Design Icons';
font-size: inherit;
line-height: inherit;
color: #fff;
opacity: 0;
visibility: hidden;
}
.rd-navbar-static .rd-navbar-dropdown li.focus > a,
.rd-navbar-static .rd-navbar-dropdown li.opened > a,
.rd-navbar-static .rd-navbar-dropdown li > a:hover,
.rd-navbar-static .rd-megamenu-list li.focus > a,
.rd-navbar-static .rd-megamenu-list li.opened > a,
.rd-navbar-static .rd-megamenu-list li > a:hover {
left: -13px;
padding-left: 18px;
padding-right: 0;
}
.rd-navbar-static .rd-navbar-dropdown li.focus > a::before,
.rd-navbar-static .rd-navbar-dropdown li.opened > a::before,
.rd-navbar-static .rd-navbar-dropdown li > a:hover::before,
.rd-navbar-static .rd-megamenu-list li.focus > a::before,
.rd-navbar-static .rd-megamenu-list li.opened > a::before,
.rd-navbar-static .rd-megamenu-list li > a:hover::before {
left: -7px;
opacity: 1;
visibility: visible;
}
.rd-navbar-static .rd-navbar-megamenu {
display: flex;
left: 0;
overflow: hidden;
max-width: 7Line truncated
|
||||
*
|
||||
* RD Navbar Fixed
|
||||
*/
.rd-navbar-fixed {
display: block;
width: 100%;
}
.rd-navbar-fixed .rd-navbar-toggle {
display: inline-block;
}
.rd-navbar-fixed .rd-navbar-brand {
position: relative;
top: -2px;
margin-left: 12px;
font-size: 0;
line-height: 0;
text-align: left;
}
.rd-navbar-fixed .rd-navbar-brand img {
max-width: 160px;
max-height: 58px;
width: auto;
height: auto;
}
.rd-navbar-fixed .rd-navbar-panel {
position: fixed;
left: 0;
top: 0;
right: 0;
z-index: 1080;
display: flex;
align-items: center;
height: 56px;
padding: 8px;
}
.rd-navbar-fixed .rd-navbar-nav-wrap {
position: fixed;
left: 0;
top: -56px;
bottom: -56px;
z-index: 1079;
width: 270px;
padding: 112px 0 81px;
overflow-y: auto;
overflow-x: hidden;
-webkit-overflow-scrolling: touch;
font-size: 14px;
line-height: 34px;
transform: translateX(-110%);
}
.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar {
width: 4px;
}
.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar-thumb {
background: #1d73ff;
border: none;
border-radius: 0;
opacity: .2;
}
.rd-navbar-fixed .rd-navbar-nav-wrap::-webkit-scrollbar-track {
background: #0045b6;
border: none;
border-radius: 0;
}
.rd-navbar-fixed .rd-navbar-nav-wrap.active {
transform: translateX(0);
}
.rd-navbar-fixed .rd-navbar-nav {
display: block;
margin: 15px 0;
height: auto;
text-align: left;
}
.rd-navbar-fixed .rd-nav-item {
text-align: left;
}
.rd-navbar-fixed .rd-nav-item + .rd-nav-item {
margin-top: 4px;
}
.rd-navbar-fixed .rd-nav-link {
display: block;
padding: 14px 56px 14px 18px;
}
.rd-navbar-fixed li.opened > .rd-navbar-dropdown {
padding: 4px 0 0;
}
.rd-navbar-fixed li.opened > .rd-navbar-megamenu {
padding-top: 15px;
padding-bottom: 15px;
}
.rd-navbar-fixed li.opened > .rd-menu {
opacity: 1;
height: auto;
}
.rd-navbar-fixed li.opened > .rd-navbar-submenu-toggle::after {
transform: rotate(180deg);
}
.rd-navbar-fixed .rd-menu {
display: none;
transition: opacity 0.3s, height 0.4s ease;
opacity: 0;
height: 0;
overflow: hidden;
}
.rd-navbar-fixed .rd-navbar-submenu {
position: relative;
}
.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown .rd-navbar-submenu-toggle:after {
height: 34px;
line-height: 34px;
}
.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown > li > a {
padding-left: 30px;
}
.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown li li > a,
.rd-navbar-fixed .rd-navbar-submenu .rd-navbar-megamenu ul li li > a {
padding-left: 46px;
}
.rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-dropdown,
.rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-megamenu {
display: block;
}
.rd-navbar-fixed .rd-megamenu-list > li > a,
.rd-navbar-fixed .rd-navbar-dropdown > li > a {
display: block;
padding: 9px 56px 9px 16px;
font-size: 14px;
line-height: 1.5;
}
.rd-navbar-fixed .rd-megamenu-list > li + li,
.rd-navbar-fixed .rd-navbar-dropdown > li + li {
margin-top: 3px;
}
.rd-navbar-fixed .rd-megamenu-list > li > a {
padding-left: 30px;
}
.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title {
position: relative;
display: block;
padding: 0 18px 7px;
font-size: 16px;
line-height: 1.5;
}
.rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-title::after {
content: '';
position: absolute;
left: 20px;
right: 20px;
bottom: 0;
border-bottom: 1px solid;
}
.rd-navbar-fixed .rd-navbar-megamenu * + .rd-megamenu-list {
margin-top: 11px;
}
.rd-navbar-fixed .rd-navbar-megamenu * + .rd-megamenu-title {
margin-top: 20px;
}
.rd-navbar-fixed .rd-navbar-megamenu > li + li {
margin-top: 20px;
}
.rd-navbar-fixed .rd-navbar-submenu-toggle {
cursor: pointer;
}
.rd-navbar-fixed .rd-navbar-submenu-toggle::after {
content: '\f107';
position: absolute;
top: 0;
right: 0;
width: 56px;
height: 48px;
font: 400 14px "FontAwesome";
line-height: 48px;
text-align: center;
transition: 0.4s all ease;
z-index: 2;
cursor: pointer;
}
.rd-navbar-fixed .rd-navbar-collapse-toggle {
display: block;
top: 8px;
z-index: 1081;
}
.rd-navbar-fixed .rd-navbar-collapse-content {
position: fixed;
right: 0;
top: 56px;
z-index: 1079;
transform: translate3d(0, -10px, 0);
padding: 30px;
width: auto;
border-radius: 0 0 0 6px;
text-align: left;
font-size: 14px;
opacity: 0;
visibility: hidden;
transition: .3s;
}
.rd-navbar-fixed .rd-navbar-collapse-content.active {
transform: translate3d(0, 0, 0);
opacity: 1;
visibility: visible;
}
.rd-navbar-fixed .rd-navbar-collapse-content > * + * {
margin-top: 25px;
}
.rd-navbar-fixed .rd-navbar-main-outer,
.rd-navbar-fixed .rd-navbar-main-element {
position: absolute;
float: left;
width: 100%;
}
.rd-navbar-fixed .rd-navbar-search .rd-search {
position: fixed;
right: 0;
left: 0;
top: 56px;
z-index: 1079;
width: 100%;
opacity: 0;
visibility: hidden;
transition: .3s;
transform: translate3d(0, -100%, 0);
}
.rd-navbar-fixed .rd-navbar-search .rd-search-results-live {
display: none;
}
.rd-navbar-fixed .rd-navbar-search .form-input {
padding-right: 60px;
}
Line truncated
|
||||
*
|
||||
* RD Navbar Sidebar
|
||||
*/
.rd-navbar-sidebar {
display: block;
background: #fff;
}
.rd-navbar-sidebar .rd-navbar-main-outer {
padding-left: 15px;
padding-right: 15px;
}
.rd-navbar-sidebar .rd-navbar-main {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 22px 60px 22px 0;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
transition: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.rd-navbar-sidebar .rd-navbar-main-element {
display: flex;
align-items: center;
}
.rd-navbar-sidebar .rd-navbar-main-element > * + * {
margin-left: 20px;
}
.rd-navbar-sidebar .rd-navbar-toggle {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
display: block;
z-index: 1102;
}
.rd-navbar-sidebar .rd-navbar-panel {
min-width: 200px;
text-align: center;
}
.rd-navbar-sidebar .rd-navbar-brand img {
width: auto;
height: auto;
max-width: 200px;
max-height: 200px;
}
.rd-navbar-sidebar .rd-navbar-nav-wrap {
position: fixed;
top: 0;
bottom: 0;
right: 0;
z-index: 1101;
width: 450px;
padding: 94px 0 0 0;
background: #fff;
transition: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
transform: translateX(100%);
box-shadow: 0 0 13px 0 rgba(174, 177, 190, 0.16);
}
.rd-navbar-sidebar .rd-navbar-nav-wrap.active {
transition-delay: .1s;
transform: translateX(0);
}
.rd-navbar-sidebar .rd-navbar-nav {
height: calc(100vh - 100px);
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
border-top: 1px solid #e8e9ee;
}
.rd-navbar-sidebar .rd-nav-item {
position: relative;
display: block;
padding: 19px 30px 19px 40px;
}
.rd-navbar-sidebar .rd-nav-item.active .rd-nav-link {
color: #0045b6;
}
.rd-navbar-sidebar .rd-nav-item .rd-nav-link,
.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle {
font-size: 18px;
}
.rd-navbar-sidebar .rd-nav-item + .rd-nav-item {
border-top: 1px solid #e8e9ee;
}
.rd-navbar-sidebar .rd-nav-item:last-child {
border-bottom: 1px solid #e8e9ee;
margin-bottom: 30px;
}
.rd-navbar-sidebar .rd-nav-link {
max-width: calc(100% - 30px);
word-break: break-all;
font-size: 18px;
line-height: 1.4;
text-transform: none;
color: #aeb1be;
}
.rd-navbar-sidebar .rd-nav-link:hover {
color: #0045b6;
}
.rd-navbar-sidebar .rd-navbar-submenu .opened > .rd-navbar-submenu-toggle::after {
transform: rotate(180deg);
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-megamenu {
display: none;
opacity: 0;
visibility: hidden;
will-change: opacity, visibility;
transition: opacity .2s;
}
.rd-navbar-sidebar .rd-navbar-submenu.opened > .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-navbar-submenu.opened > .rd-navbar-megamenu {
display: block;
opacity: 1;
visibility: visible;
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu > .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu > .rd-navbar-megamenu {
transform: translateY(30px);
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu.opened > .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu.opened > .rd-navbar-megamenu {
transform: translateY(0);
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu .rd-navbar-submenu > .rd-navbar-dropdown {
transform: translateX(-20px);
}
.rd-navbar-sidebar .rd-navbar-submenu > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown {
transform: translateX(0);
}
.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle,
.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle {
position: absolute;
top: 0;
right: 0;
padding-top: inherit;
padding-right: inherit;
padding-left: 10px;
margin-bottom: inherit;
display: inline-block;
width: 30px;
margin-left: 5px;
text-align: center;
cursor: pointer;
color: #495057;
}
.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle:hover,
.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle:hover {
color: #0045b6;
}
.rd-navbar-sidebar .rd-nav-item > .rd-navbar-submenu-toggle::after,
.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle::after {
content: '\f107';
position: relative;
display: inline-block;
font-family: "FontAwesome";
font-size: inherit;
line-height: inherit;
text-align: center;
vertical-align: middle;
transition: 0.4s all ease;
z-index: 2;
will-change: transform;
}
.rd-navbar-sidebar .rd-nav-item .rd-navbar--has-dropdown > .rd-navbar-submenu-toggle {
font-size: 14px;
color: #aeb1be;
margin-left: 7px;
}
.rd-navbar-sidebar .rd-menu {
margin-top: 31px;
}
.rd-navbar-sidebar .rd-navbar-dropdown,
.rd-navbar-sidebar .rd-megamenu-list {
font-size: 14px;
}
.rd-navbar-sidebar .rd-navbar-dropdown li > a,
.rd-navbar-sidebar .rd-megamenu-list li > a {
position: relative;
left: -13px;
display: flex;
padding: 4px 18px 4px 0;
text-align: left;
}
.rd-navbar-sidebar .rd-navbar-dropdown li > a, .rd-navbar-sidebar .Line truncated
|
||||
*
|
||||
* RD Navbar Minimal
|
||||
*
|
||||
*/
.rd-navbar-minimal.rd-navbar-static {
border-bottom: 1px solid transparent;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-main-outer {
padding-left: 15px;
padding-right: 15px;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-main {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1170px;
padding: 20px 0;
margin-left: auto;
margin-right: auto;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-main-element {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
min-width: 690px;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-brand img {
width: auto;
height: auto;
max-width: 200px;
max-height: 200px;
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-megamenu {
margin-top: 24px;
width: calc(100% + 27px + 15px);
}
.rd-navbar-minimal.rd-navbar-static .rd-navbar-search-toggle span {
font-size: 20px;
}
@media (min-width: 1200px) {
.rd-navbar-minimal.rd-navbar-static .rd-navbar-main {
padding: 30px 0;
}
.rd-navbar-minimal.rd-navbar-static .rd-menu {
margin-top: 34px;
}
}
.rd-navbar-minimal.rd-navbar-static.rd-navbar--is-stuck, .rd-navbar-minimal.rd-navbar-static.rd-navbar--is-clone {
border-bottom-color: #e8e9ee;
}
.rd-navbar-minimal.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main, .rd-navbar-minimal.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main {
padding: 20px 0;
}
.rd-navbar-minimal.rd-navbar-static.rd-navbar--is-stuck .rd-menu, .rd-navbar-minimal.rd-navbar-static.rd-navbar--is-clone .rd-menu {
margin-top: 24px;
}
.rd-navbar-minimal.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-item > .rd-navbar-submenu, .rd-navbar-minimal.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-item > .rd-navbar-submenu {
margin-top: 17px;
}
.rd-navbar-minimal.rd-navbar-fixed .rd-navbar-search-toggle {
position: fixed;
right: 10px;
top: 5px;
}
.rd-navbar-minimal.rd-navbar-fixed .rd-navbar-search .form-input {
border-width: 1px 0 1px 0;
border-radius: 0;
}
.rd-navbar-minimal-wide.rd-navbar-static .rd-navbar-main {
padding: 54px 0;
}
.rd-navbar-minimal-wide.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main {
padding: 21px 0;
}
.context-dark .rd-navbar-minimal .rd-nav-link, .bg-gray-700 .rd-navbar-minimal .rd-nav-link, .bg-gray-800 .rd-navbar-minimal .rd-nav-link, .bg-primary .rd-navbar-minimal .rd-nav-link, .bg-primary-darker .rd-navbar-minimal .rd-nav-link,
.context-dark .rd-navbar-minimal .rd-navbar-submenu-toggle,
.bg-gray-700 .rd-navbar-minimal .rd-navbar-submenu-toggle,
.bg-gray-800 .rd-navbar-minimal .rd-navbar-submenu-toggle,
.bg-primary .rd-navbar-minimal .rd-navbar-submenu-toggle,
.bg-primary-darker .rd-navbar-minimal .rd-navbar-submenu-toggle,
.context-dark .rd-navbar-minimal .rd-navbar-search-toggle,
.bg-gray-700 .rd-navbar-minimal .rd-navbar-search-toggle,
.bg-gray-800 .rd-navbar-minimal .rd-navbar-search-toggle,
.bg-primary .rd-navbar-minimal .rd-navbar-search-toggle,
.bg-primary-darker .rd-navbar-minimal .rd-navbar-search-toggle {
color: #fff;
}
.context-dark .rd-navbar-minimal.rd-navbar-static, .bg-gray-700 .rd-navbar-minimal.rd-navbar-static, .bg-gray-800 .rd-navbar-minimal.rd-navbar-static, .bg-primary .rd-navbar-minimal.rd-navbar-static, .bg-primary-darker .rd-navbar-minimal.rd-navbar-static {
background-color: transparent;
}
.context-dark .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link, .bg-gray-700 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link, .bg-gray-800 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link, .bg-primary .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link, .bg-primary-darker .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-nav-link,
.context-dark .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.bg-gray-700 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.bg-gray-800 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.bg-primary .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.bg-primary-darker .rd-navbar-minimal.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.context-dark .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.bg-gray-700 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.bg-gray-800 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.bg-primary .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.bg-primary-darker .rd-navbar-minimal.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.context-dark .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.bg-gray-700 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.bg-gray-800 .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.bg-primary .rd-navbar-minimal.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.bg-primary-Line truncated
|
||||
*
|
||||
* RD Navbar Corporate
|
||||
*
|
||||
*/
.rd-navbar-corporate.rd-navbar-static .rd-navbar-aside-outer,
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main-outer {
padding-left: 15px;
padding-right: 15px;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-aside,
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main {
max-width: 1170px;
margin-left: auto;
margin-right: auto;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-aside {
display: flex;
align-items: center;
justify-content: space-between;
padding: 30px 0 40px;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main-outer {
background: rgba(51, 51, 51, 0.1);
position: absolute;
top: 100%;
z-index: 10;
width: 100%;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-main {
position: relative;
padding: 16px 0;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-nav-wrap {
position: relative;
display: flex;
flex-direction: row-reverse;
align-items: center;
justify-content: space-between;
min-width: 690px;
}
.ie-10 .rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse,
.ie-11 .rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse {
width: 100%;
max-width: 870px;
}
.ie-10 .rd-navbar-corporate.rd-navbar-static .unit,
.ie-11 .rd-navbar-corporate.rd-navbar-static .unit {
flex: auto;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-panel + .rd-navbar-collapse {
margin-left: 50px;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content {
display: flex;
align-items: center;
justify-content: center;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content .button {
flex-shrink: 0;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content > * {
margin-top: 0;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content > * + * {
margin-left: 50px;
}
.rd-navbar-corporate.rd-navbar-static .rd-menu {
margin-top: 21px;
}
.rd-navbar-corporate.rd-navbar-static .rd-navbar-megamenu {
margin-top: 24px;
}
@media (min-width: 1200px) {
.rd-navbar-corporate.rd-navbar-static .rd-navbar-collapse-content > * + * {
margin-left: 92px;
}
.rd-navbar-corporate.rd-navbar-static .rd-nav-item + .rd-nav-item {
margin-left: 55px;
}
}
.rd-navbar-corporate.rd-navbar-static.rd-navbar--is-stuck, .rd-navbar-corporate.rd-navbar-static.rd-navbar--is-clone {
border-bottom-color: #e8e9ee;
}
.rd-navbar-corporate.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-aside-outer, .rd-navbar-corporate.rd-navbar-static.rd-navbar--is-clone .rd-navbar-aside-outer {
display: none;
}
.rd-navbar-corporate.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-main-outer, .rd-navbar-corporate.rd-navbar-static.rd-navbar--is-clone .rd-navbar-main-outer {
background: #232426;
box-shadow: 0 5px 10px 0px rgba(20, 20, 28, 0.3);
}
.rd-navbar-corporate.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-item > .rd-navbar-submenu, .rd-navbar-corporate.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-item > .rd-navbar-submenu {
margin-top: 17px;
}
.rd-navbar-corporate.rd-navbar-fixed .rd-navbar-search {
margin: 20px 5px;
}
.rd-navbar-corporate.rd-navbar-fixed .rd-navbar-search-toggle {
display: none;
}
.rd-navbar-corporate.rd-navbar-fixed .rd-search {
position: relative;
top: 0;
left: 0;
transform: none;
opacity: 1;
visibility: visible;
z-index: 1;
}
.rd-navbar-corporate.rd-navbar-fixed .rd-navbar-nav {
margin: 0;
}
/**
|
||||
*
|
||||
* RD Navbar Thin
|
||||
*
|
||||
*/
.rd-navbar-thin.rd-navbar-static {
background-color: #495057;
border-bottom: 1px solid transparent;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-main-outer {
padding-left: 15px;
padding-right: 15px;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-main {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1170px;
padding: 23px 0;
margin-left: auto;
margin-right: auto;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-nav-wrap {
position: absolute;
top: 0;
bottom: 0;
left: 200px;
right: 80px;
z-index: 102;
display: flex;
align-items: center;
justify-content: flex-end;
min-width: 690px;
background: #495057;
opacity: 0;
visibility: hidden;
transition: .44s ease-in-out;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-nav-wrap .rd-navbar-brand {
display: none;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-nav-wrap.active {
opacity: 1;
visibility: visible;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-panel {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding-right: 50px;
}
.ie-10 .rd-navbar-thin.rd-navbar-static .rd-navbar-panel,
.ie-11 .rd-navbar-thin.rd-navbar-static .rd-navbar-panel {
justify-content: flex-start;
}
.ie-10 .rd-navbar-thin.rd-navbar-static .rd-navbar-block,
.ie-11 .rd-navbar-thin.rd-navbar-static .rd-navbar-block {
width: 100%;
justify-content: flex-end;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-toggle {
position: absolute;
right: 0;
top: 50%;
display: block;
transform: translate3d(0, -50%, 0);
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-block {
display: flex;
align-items: center;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-brand {
max-width: 300px;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-brand img {
width: auto;
height: auto;
max-width: 200px;
max-height: 200px;
}
.rd-navbar-thin.rd-navbar-static .rd-nav-link,
.rd-navbar-thin.rd-navbar-static .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-navbar-search-toggle {
color: #fff;
}
.rd-navbar-thin.rd-navbar-static .rd-nav-item.opened .rd-nav-link,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.focus .rd-nav-link,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.active .rd-nav-link,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.opened .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.focus .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-nav-item.active .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-nav-link:hover,
.rd-navbar-thin.rd-navbar-static .rd-nav-link:hover ~ .rd-navbar-submenu-toggle,
.rd-navbar-thin.rd-navbar-static .rd-navbar-search-toggle:hover {
color: #1d73ff;
}
.rd-navbar-thin.rd-navbar-static .rd-menu {
margin-top: 27px;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-megamenu {
margin-top: 24px;
width: calc(100% + 27px + 15px);
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-search {
position: static;
}
.rd-navbar-thin.rd-navbar-static * + .rd-navbar-search-toggle {
margin-left: 60px;
}
.rd-navbar-thin.rd-navbar-static .rd-search {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
width: calc(100% - 70px);
margin: 0;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-wrap {
display: flex;
width: 100%;
background: #495057;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-wrap::before {
content: '\f43b';
position: absolute;
top: 50%;
transform: translate3d(0, -50%, 0);
font-family: 'Material Design Icons';
font-size: 30px;
line-height: 1;
color: #fff;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-input,
.rd-navbar-thin.rd-navbar-static .rd-search .form-label {
padding-left: 40px;
font-size: 30px;
color: #fff;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-input {
background-color: transparent;
border: 0;
border-radius: 0;
}
.rd-navbar-thin.rd-navbar-static .rd-search .form-label {
top: 50%;
transform: translate3d(0, -50%, 0);
}
.rd-navbar-thin.rd-navbar-static .rd-search-results-live {
height: 100vh;
margin: 1px 0 0 0;
}
.rd-navbar-thin.rd-navbar-static .search-list {
display: flex;
flex-wrap: wrap;
margin-bottom: -20px;
}
.rd-navbar-thin.rd-navbar-static .search-list-item {
width: 25%;
padding-left: 15px;
padding-right: 15px;
margin-bottom: 20px;
}
.rd-navbar-thin.rd-navbar-static .search-list-item + .search-list-item {
margin-top: 0;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-search-toggle {
position: relative;
z-index: 12;
}
.rd-navbar-thin.rd-navbar-static .rd-navbar-popup {
left: 50%;
z-index: 110;
transform: translateX(-50%);
margin-top: 30px;
}
.rd-navbar-thin.rd-navbar-static .list-inline-bordered {
position: relative;
}
@media (min-width: 992px) and (max-width: 1199.98px) {
.rd-navbar-thin.rd-navbar-static .rd-nav-item + .rd-nav-item {
margin-left: 30px;
}
}
@media (min-width: 1200px) {
.rd-navbar-thin.rd-navbar-static .rd-navbar-panel {
padding-right: 70px;
}
.rd-navbar-thin.rd-navbar-statLine truncated
|
||||
*
|
||||
* Swiper
|
||||
*/
.swiper-container {
position: relative;
display: flex;
margin: 0 auto;
overflow: hidden;
list-style: none;
padding: 0;
/* Fix of Webkit flickering */
z-index: 1;
pointer-events: none;
}
.swiper-container, .swiper-container * {
backface-visibility: hidden;
}
.swiper-container-no-flexbox .swiper-slide {
float: left;
}
.swiper-container-vertical > .swiper-wrapper {
flex-direction: column;
}
.swiper-wrapper {
position: relative;
z-index: 1;
display: flex;
align-self: stretch;
align-items: stretch;
width: 100%;
height: auto;
min-height: inherit;
transition-property: transform;
box-sizing: content-box;
}
.swiper-container-android .swiper-slide,
.swiper-wrapper {
transform: translate3d(0px, 0, 0);
}
.swiper-container-multirow > .swiper-wrapper {
flex-wrap: wrap;
}
.swiper-container-free-mode > .swiper-wrapper {
transition-timing-function: ease-out;
margin: 0 auto;
}
.swiper-slide {
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
background-size: cover;
transition-property: transform, transform;
pointer-events: auto;
contain: paint;
}
.swiper-invisible-blank-slide {
visibility: hidden;
}
/* Auto Height */
.swiper-container-autoheight, .swiper-container-autoheight .swiper-slide {
height: auto;
}
.swiper-container-autoheight .swiper-wrapper {
align-items: flex-start;
transition-property: transform, height;
}
/* 3D Effects */
.swiper-container-3d {
perspective: 1200px;
}
.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
transform-style: preserve-3d;
}
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: 10;
}
.swiper-container-3d .swiper-slide-shadow-left {
background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-right {
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-top {
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
.swiper-container-3d .swiper-slide-shadow-bottom {
background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}
/* IE10 Windows Phone 8 Fixes */
.swiper-container-wp8-horizontal,
.swiper-container-wp8-horizontal > .swiper-wrapper {
touch-action: pan-y;
}
.swiper-container-wp8-vertical,
.swiper-container-wp8-vertical > .swiper-wrapper {
touch-action: pan-x;
}
.swiper-button-prev,
.swiper-button-next {
position: absolute;
top: 50%;
width: 27px;
height: 44px;
margin-top: -22px;
z-index: 10;
cursor: pointer;
background-size: 27px 44px;
background-position: center;
background-repeat: no-repeat;
}
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
opacity: 0.35;
cursor: auto;
pointer-events: none;
}
.swiper-button-lock {
display: none;
}
.swiper-pagination {
position: absolute;
text-align: center;
transition: 300ms opacity;
transform: translate3d(0, 0, 0);
z-index: 10;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
bottom: 10px;
left: 0;
width: 100%;
}
/* Bullets */
.swiper-pagination-bullets-dynamic {
overflow: hidden;
font-size: 0;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
transform: scale(0.33);
position: relative;
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
transform: scale(1);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
transform: scale(0.33);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
transform: scale(0.66);
}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
transform: scale(0.33);
}
.swiper-pagination-bullet {
width: 8px;
height: 8px;
display: inline-block;
border-radius: 100%;
background: #000;
}
button.swiper-pagination-bullet {
border: none;
margin: 0;
padding: 0;
box-shadow: none;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
.swiper-pagination-bullet-active {
opacity: 1;
background: #007aff;
}
.swiper-container-vertical > .swiper-pagination-bullets {
right: 10px;
top: 50%;
transform: translate3d(0px, -50%, 0);
}
Line truncated
|
||||
*
|
||||
* RD Google Map
|
||||
*/
.google-map {
color: #000;
height: 200px;
}
.google-map img {
max-width: none !important;
}
@media (min-width: 576px) {
.google-map {
height: 250px;
}
}
@media (min-width: 768px) {
.google-map {
height: 300px;
}
}
@media (min-width: 992px) {
.google-map {
height: 350px;
}
}
@media (min-width: 1200px) {
.google-map {
height: 766px;
}
}
.ie-10 .google-map,
.ie-11 .google-map {
height: 770px;
}
.map_locations {
display: none;
}
.google-map-container, .google-map {
width: 100%;
}
.google-map-markers {
display: none;
}
/*
|
||||
*
|
||||
* Search Results
|
||||
*/
.rd-search-results-live {
position: absolute;
left: 0;
right: 0;
top: 100%;
max-height: 600px;
overflow-y: auto;
margin: -3px 0 0;
text-align: left;
z-index: 998;
}
.rd-search-results-live #search-results {
position: relative;
padding: 10px 0 0;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
color: #495057;
background: #fff;
border: 1px solid #c5c6cd;
border-top: 0;
opacity: 0;
visibility: hidden;
transform-origin: 50% 0;
transform: scale(1, 0.9);
transition: .3s all ease;
}
.rd-search-results-live #search-results.active {
opacity: 1;
visibility: visible;
transform: scale(1, 1);
}
.rd-search-results-live #search-results.active .form-input {
border-bottom-left-radius: 0;
}
.rd-search-results-live .search-quick-result {
padding-left: 15px;
padding-right: 15px;
font-family: "Poppins", sans-serif;
font-size: 14px;
font-weight: 500;
letter-spacing: .08em;
line-height: 30px;
text-transform: uppercase;
color: #151515;
}
.rd-search-results-live .search-list {
margin-top: 11px;
}
.rd-search-results-live .search-list li:only-child {
padding: 0 15px 15px;
}
.rd-search-results-live .search-link {
color: #aeb1be;
}
.rd-search-results-live .search-link:hover {
color: #0045b6;
}
.rd-search-results-live .search-error {
padding: 0 0 20px;
font-size: 14px;
line-height: 1.6;
}
.rd-search-results-live .search-title {
position: relative;
font-size: 16px;
font-weight: 400;
color: #151515;
}
.rd-search-results-live .search-title a:hover {
color: #0045b6;
}
.rd-search-results-live .search-link {
display: block;
}
.rd-search-results-live .search-list-item-all {
margin-top: 18px;
width: 100%;
}
.rd-search-results-live .search-submit {
position: relative;
overflow: hidden;
z-index: 0;
display: block;
padding: 10px 20px;
margin: 0 -1px;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
font-family: "Poppins", sans-serif;
font-size: 12px;
font-weight: 500;
letter-spacing: 0.1em;
text-transform: uppercase;
text-align: center;
color: #fff;
background: #0045b6;
}
.rd-search-results-live .search-submit:hover {
color: #fff;
background: #4854ed;
}
.rd-search-results-live .match {
display: none;
}
.not-empty ~ .rd-search-results-live {
visibility: visible;
opacity: 1;
}
.rd-search-results-live p {
font-size: 14px;
}
.rd-search-results-live .search-list-item {
padding: 0 15px;
}
.rd-search-results-live * + p {
margin-top: 3px;
}
.rd-search-results-live .search-list-item + .search-list-item {
margin-top: 17px;
}
.rd-search-results .search-list {
counter-reset: li;
text-align: left;
padding-left: 0;
font-size: 18px;
list-style-type: none;
overflow: hidden;
}
.rd-search-results .search-list li div {
overflow: hidden;
text-overflow: ellipsis;
max-width: 100%;
white-space: nowrap;
}
.rd-search-results .search-list li:only-child::before {
display: none;
}
.rd-search-results .search-list-item {
position: relative;
padding-left: 40px;
font-size: 16px;
color: #9b9b9b;
}
.rd-search-results .search-list-item::before {
content: counter(li, decimal) ".";
counter-increment: li;
position: absolute;
left: 0;
top: -0.1em;
line-height: inherit;
}
.rd-search-results .search-title {
position: relative;
color: #0045b6;
}
.rd-search-results .search-title a {
color: inherit;
}
.rd-search-results .search-title a:hover {
color: #343db0;
}
.rd-search-results .search {
color: #fff;
padding: 0 .25em;
background: #0045b6;
}
.rd-search-results .match {
padding: 5px;
font-size: 12px;
line-height: 1.7;
letter-spacing: .1em;
text-transform: uppercase;
color: #000;
}
.rd-search-results .match em {
margin: 0;
font-style: normal;
}
.rd-search-results * + .match {
margin-top: 10px;
}
.rd-search-results .search-list-item + .search-list-item {
margin-top: 40px;
}
* + .rd-search-results {
margin-top: 40px;
}
@media (min-width: 768px) {
.rd-search-results .search-list-item::before {
top: 4px;
}
.rd-search-results * + p {
margin-top: 12px;
}
* + .rd-search-results {
margin-top: 55px;
}
}
@media (min-width: 992px) {
.rd-search-results .search-list-item {
padding-left: 50px;
}
.rd-search-results * + p {
margin-top: 17px;
}
.rd-search-results .search-list-item + .search-list-item {
margin-top: 50px;
}
}
@media (min-width: 1200px) {
* + .rd-search-results {
margin-top: 70px;
}
}
@media (min-width: 1600px) {
.rd-search-results .search-list-item + .search-list-item {
margin-top: 70px;
}
}
.rd-search-classic {
position: relative;
}
.rd-search-classic .form-wrap-inner {
position: relative;
}
.rd-search-classic .form-input {
padding-right: 50px;
}
.rd-search-classic .form-input,
.rd-search-classic .form-label {
letter-spacing: 0;
}
.rd-search-classic .rd-search-submit {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
position: absolute;
top: 0;
right: 0;
bottomLine truncated
|
||||
*
|
||||
* Isotope
|
||||
*/
@keyframes sprite-animation {
from {
background-position: 0 0;
}
}
[data-isotope-layout] {
z-index: 0;
display: block;
overflow: hidden;
min-height: 160px;
margin-left: -15px;
margin-right: -15px;
transition: .4s all ease;
}
[data-isotope-layout]:after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 64px;
height: 64px;
margin-top: 15px;
background-image: url("../images/isotope-loader.png");
background-position: -1152px 0;
animation: 0.7s sprite-animation steps(18) infinite;
transition: .4s all ease;
transform: translate3d(-50%, -50%, 0);
}
[data-isotope-layout] [class*="col-"] {
display: block;
opacity: 0;
will-change: transform;
backface-visibility: hidden;
transition: .1s opacity ease-in;
}
[data-isotope-layout].isotope--loaded [class*="col-"] {
opacity: 1;
}
[data-isotope-layout].isotope--loaded:after {
opacity: 0;
visibility: hidden;
}
.isotope.isotope-condensed {
margin-left: 0;
margin-right: 0;
overflow: hidden;
}
.isotope.isotope-condensed [class*='col'] {
padding: 0;
margin: 0 0 30px 0;
}
@media (min-width: 576px) {
.isotope.isotope-condensed [class*='col'] {
margin: 0 -1px -1px 0;
}
}
.isotope-filters-list {
position: relative;
font-size: 16px;
margin-left: -20px;
margin-bottom: -10px;
}
.isotope-filters-list > * {
margin-left: 20px;
}
.isotope-filters-list::after {
content: '';
position: absolute;
left: 20px;
right: 0;
bottom: 10px;
border-bottom: 1px solid #e8e9ee;
}
.isotope-filters-list li {
display: inline-block;
margin-bottom: 10px;
}
.isotope-filters-list a {
position: relative;
display: block;
z-index: 1;
padding-bottom: 10px;
color: #74757f;
}
.isotope-filters-list a::after {
content: '';
position: absolute;
right: 0;
bottom: 0;
width: 0;
height: 1px;
transition: .4s;
background: #0045b6;
}
.isotope-filters-list a:hover {
color: #495057;
}
.isotope-filters-list a.active {
color: #495057;
}
.isotope-filters-list a.active::after {
right: auto;
left: 0;
width: 100%;
}
@media (min-width: 992px) {
.isotope-filters-list {
font-size: 18px;
margin-left: -48px;
}
.isotope-filters-list > * {
margin-left: 48px;
}
.isotope-filters-list::after {
left: 45px;
}
}
@media (min-width: 1200px) {
.isotope-filters-list {
font-size: 20px;
}
}
@media (max-width: 767.98px) {
.isotope-responsive {
margin-left: -7px;
margin-right: -7px;
margin-bottom: -14px;
}
.isotope-responsive:empty {
margin-bottom: 0;
}
.isotope-responsive > * {
margin-bottom: 14px;
}
.isotope-responsive [class*='col'] {
padding-left: 7px;
padding-right: 7px;
}
}
@media (min-width: 768px) {
.isotope-responsive {
margin-bottom: -30px;
}
.isotope-responsive:empty {
margin-bottom: 0;
}
.isotope-responsive > * {
margin-bottom: 30px;
}
}
@media (max-width: 767.98px) {
.isotope-filters-modern {
position: relative;
z-index: 10;
}
.isotope-filters-toggle {
display: block;
padding: 10px 20px;
color: #fff;
background: #0045b6;
box-shadow: none;
border: 0;
}
.isotope-filters-toggle .caret {
position: relative;
display: inline-block;
margin-left: 5px;
font-family: "FontAwesome";
font-size: 14px;
transition: .22s;
will-change: transform;
}
.isotope-filters-toggle .caret::before {
content: '\f107';
}
.isotope-filters-toggle.active .caret {
transform: scale(1, -1);
}
.isotope-filters-list {
position: absolute;
top: 100%;
left: 0;
z-index: 10;
min-width: 240px;
margin: 5px 0 0 0;
padding: 20px;
border: 1px solid #e8e9ee;
opacity: 0;
visibility: hidden;
background: #fff;
transition: .3s ease-in;
}
.isotope-filters-list::after {
display: none;
}
.isotope-filters-list.active {
opacity: 1;
visibility: visible;
}
.isotope-filters-list li {
display: block;
width: 100%;
margin-left: 0;
}
.isotope-filters-list a {
padding: 0;
}
.isotope-filters-list a::after {
display: none;
}
}
@media (min-width: 768px) {
.isotope-filters-modern .isotope-filters-toggle {
display: none;
}
}
* + .isotope {
margin-top: 30px;
}
@media (min-width: 768px) {
* + .isotope {
margin-top: 47px;
}
}
.nav {
display: block;
}
.tabs-custom {
text-align: left;
}
.tabs-custom .nav-tabs {
font-size: 0;
line-height: 0;
word-spacing: 0;
border: 0;
}
.tabs-custom .nav-tabs:before, .tabs-custom .nav-tabs:after {
display: none;
}
.tabs-custom .nav-item {
float: none;
border: 0;
cursor: pointer;
transition: .33s all ease;
}
.tabs-custom .nav-link {
margin: 0;
border-radius: 0;
border: 0;
}
.tabs-custom .nav-link.active {
cursor: default;
border: 0;
}
.tab-content > .tab-pane {
display: block;
visibility: hidden;
height: 0;
overflow: hidden;
}
.tab-content > .active {
visibility: visible;
height: auto;
overflow: visible;
}
.tabs-line .nav-tabs {
position: relative;
}
.tabs-line .nav-link {
font-size: 16px;
line-height: 1.4;
text-align: center;
vertical-align: middle;
}
.tabs-line * + .tab-content {
maLine truncated
|
||||
* Card corporate
|
||||
*/
.card-corporate {
border-top: 1px solid #f5f6fa;
text-align: left;
}
.card-corporate:last-child {
border-bottom: 1px solid #f5f6fa;
}
.card-corporate .card-collapse {
background: #fff;
}
.card-corporate .card-title a {
position: relative;
z-index: 1;
padding: 15px 40px 15px 70px;
font-size: 17px;
line-height: 1.5;
letter-spacing: 0;
color: #495057;
transition: 1.3s all ease;
}
.card-corporate .card-title a[aria-expanded='true'], .card-corporate .card-title a:hover {
color: #0045b6;
}
.card-corporate .card-title a .card-arrow {
transition: .33s;
}
.card-corporate .card-title a.collapsed {
color: #495057;
border-bottom-width: 0;
}
.card-corporate .card-title a.collapsed .card-arrow::before {
opacity: 1;
}
.card-corporate .card-title a.collapsed .card-arrow::after {
opacity: 0;
}
.card-corporate .card-arrow {
position: absolute;
top: 16px;
left: 13px;
z-index: 2;
width: 20px;
height: 20px;
color: #0045b6;
transition: .33s all ease;
text-align: center;
}
.card-corporate .card-arrow::before, .card-corporate .card-arrow::after {
position: absolute;
z-index: 4;
font-family: 'Material Design Icons';
font-size: 24px;
line-height: 1;
transition: .22s;
}
.card-corporate .card-arrow::before {
content: '\f505';
opacity: 0;
}
.card-corporate .card-arrow::after {
content: '\f466';
opacity: 1;
}
.card-corporate .card-collapse {
position: relative;
z-index: 1;
color: #74757f;
}
.card-corporate .card-body {
padding: 2px 44px 25px 70px;
}
@media (max-width: 767.98px) {
.card-corporate .card-arrow {
left: 0;
}
.card-corporate .card-title a,
.card-corporate .card-body {
padding-left: 50px;
}
}
@media (min-width: 768px) {
.card-corporate .card-title a {
font-size: 20px;
line-height: 1.4;
}
.card-corporate .card-arrow {
top: 18px;
}
}
/*
|
||||
*
|
||||
* Tooltop Custom
|
||||
*/
.tooltip {
font-size: 16px;
line-height: 1.2;
}
.tooltip-inner {
background-color: #0045b6;
}
.bs-tooltip-top .arrow::before {
border-top-color: #0045b6;
}
.bs-tooltip-right .arrow::before {
border-right-color: #0045b6;
}
.bs-tooltip-bottom .arrow::before {
border-bottom-color: #0045b6;
}
.bs-tooltip-left .arrow::before {
border-left-color: #0045b6;
}
@media (min-width: 1200px) {
.tooltip-inner {
padding: 9px 18px;
}
}
/*
|
||||
*
|
||||
* Modal Custom
|
||||
*/
.modal {
display: flex !important;
padding: 30px 15px 7vh;
visibility: hidden;
}
.modal .close {
cursor: pointer;
color: #74757f;
transition: .22s;
}
.modal .close span::before {
content: '\f24c';
font-family: 'Material Design Icons';
}
.modal .close:hover {
color: #495057;
}
.modal.show {
visibility: visible;
}
.modal.fade .modal-dialog {
transform: translate3d(0, -30px, 0);
}
.modal.show .modal-dialog {
transform: translate3d(0, 0, 0);
}
.modal-dialog {
display: flex;
align-items: flex-start;
justify-content: center;
margin: 0 auto;
}
.modal-content {
height: 100%;
border-radius: 6px;
}
.modal-body {
height: 100%;
overflow-y: auto;
}
@media (min-width: 768px) {
.modal-header,
.modal-body {
padding-left: 30px;
padding-right: 30px;
}
.modal-header {
padding-top: 20px;
padding-bottom: 20px;
}
.modal-body {
padding-top: 30px;
padding-bottom: 30px;
}
.modal-dialog {
max-width: 800px;
}
}
/*
|
||||
*
|
||||
* Progress Bars
|
||||
*/
.progress-linear {
position: relative;
text-align: left;
}
.progress-linear .progress-header {
display: flex;
align-items: center;
justify-content: space-between;
transform: translate3d(0, -10px, 0);
margin-bottom: -10px;
margin-left: -5px;
margin-right: -5px;
}
.progress-linear .progress-header > * {
margin-top: 10px;
padding-left: 5px;
padding-right: 5px;
}
.progress-linear .progress-bar-linear-wrap {
height: 2px;
background: #f5f6fa;
}
.progress-linear .progress-bar-linear {
width: 0;
height: inherit;
background: #0045b6;
transition: .5s all ease-in-out;
}
.progress-linear .progress-value::after {
content: '\0025';
}
* + .progress-linear {
margin-top: 25px;
}
* + .progress-linear-outer {
margin-top: 25px;
}
* + .progress-bar-linear-wrap {
margin-top: 8px;
}
.progress-linear + .progress-linear {
margin-top: 20px;
}
.progress-linear-outer + .progress-linear-outer {
margin-top: 20px;
}
@media (min-width: 768px) {
* + .progress-linear {
margin-top: 40px;
}
* + .progress-linear-outer {
margin-top: 40px;
}
}
@media (min-width: 1200px) {
.progress-linear + .progress-linear {
margin-top: 34px;
}
.progress-linear-outer + .progress-linear-outer {
margin-top: 34px;
}
}
/*
|
||||
*
|
||||
* Time Circles
|
||||
*/
.time_circles {
position: relative;
width: 100%;
}
.time_circles > div {
position: absolute;
top: 0 !important;
bottom: 0;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: center;
margin-top: -10px;
text-align: center;
}
@media (min-width: 1200px) {
#DateCountdown {
width: 100%;
}
}
.time_circles > div > h4 {
position: absolute;
left: 0;
top: calc(100% + 14px);
right: 0;
transform: translateY(-100%);
margin: 0;
padding: 0;
text-align: center;
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 14px !important;
line-height: 1.2 !important;
color: #868e96;
}
.time_circles > div > h4 + * {
margin-top: 0;
}
@media (min-width: 576px) {
.time_circles > div > h4 {
font-size: 16px !important;
}
}
.time_circles > div > span {
display: block;
text-align: center;
letter-spacing: 0;
font-size: 24px !important;
font-weight: 700;
line-height: 1 !important;
color: #111111;
}
.context-dark .time_circles > div > span, .bg-gray-700 .time_circles > div > span, .bg-gray-800 .time_circles > div > span, .bg-primary .time_circles > div > span, .bg-primary-darker .time_circles > div > span {
color: #fff;
}
.context-dark .time_circles > div > h4, .bg-gray-700 .time_circles > div > h4, .bg-gray-800 .time_circles > div > h4, .bg-primary .time_circles > div > h4, .bg-primary-darker .time_circles > div > h4 {
color: #fff;
}
.countdown-wrap {
max-width: 530px;
padding-bottom: 20px;
}
* + .countdown-wrap {
margin-top: 35px;
}
.countdown-wrap + .button {
margin-top: 40px;
}
/*
|
||||
* jQuery mousewheel plugin
|
||||
*/
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
1. BASIC STYLE
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCustomScrollbar {
-ms-touch-action: pinch-zoom;
touch-action: pinch-zoom;
/* direct pointer events to js */
}
.mCustomScrollbar.mCS_no_scrollbar, .mCustomScrollbar.mCS_touch_action {
-ms-touch-action: auto;
touch-action: auto;
}
.mCustomScrollBox {
/* contains plugin's markup */
position: relative;
overflow: hidden;
height: 100%;
max-width: 100%;
outline: none;
direction: ltr;
}
.mCSB_container {
/* contains the original content */
overflow: hidden;
width: auto;
height: auto;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
2. VERTICAL SCROLLBAR
|
||||
y-axis
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCSB_inside > .mCSB_container {
margin-right: 30px;
}
.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden {
margin-right: 0;
}
/* non-visible scrollbar */
.mCS-dir-rtl-custom > .mCSB_inside > .mCSB_container {
/* RTL direction/left-side scrollbar */
margin-right: 0;
margin-left: 30px;
}
.mCS-dir-rtl-custom > .mCSB_inside > .mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden {
margin-left: 0;
}
/* RTL direction/left-side scrollbar */
.mCSB_scrollTools {
/* contains scrollbar markup (draggable element, dragger rail, buttons etc.) */
position: absolute;
width: 16px;
height: auto;
left: auto;
top: 0;
right: 0;
bottom: 0;
}
.mCSB_outside + .mCSB_scrollTools {
right: -26px;
}
/* scrollbar position: outside */
.mCS-dir-rtl-custom > .mCSB_inside > .mCSB_scrollTools,
.mCS-dir-rtl-custom > .mCSB_outside + .mCSB_scrollTools {
/* RTL direction/left-side scrollbar */
right: auto;
left: 0;
}
.mCS-dir-rtl-custom > .mCSB_outside + .mCSB_scrollTools {
left: -26px;
}
/* RTL direction/left-side scrollbar (scrollbar position: outside) */
.mCSB_scrollTools .mCSB_draggerContainer {
/* contains the draggable element and dragger rail markup */
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
height: auto;
}
.mCSB_scrollTools a + .mCSB_draggerContainer {
margin: 20px 0;
}
.mCSB_scrollTools .mCSB_draggerRail {
width: 16px;
height: 100%;
margin: 0 auto;
border-radius: 0;
}
.mCSB_scrollTools .mCSB_dragger {
/* the draggable element */
cursor: pointer;
width: 100%;
height: 30px;
/* minimum dragger height */
z-index: 1;
}
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
/* the dragger element */
position: relative;
width: 16px;
height: 100%;
margin: 0 auto;
border-radius: 0;
text-align: center;
}
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar {
width: 12px;
/* auto-expanded scrollbar */
}
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
width: 8px;
/* auto-expanded scrollbar */
}
.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown {
display: block;
position: absolute;
height: 20px;
width: 100%;
overflow: hidden;
margin: 0 auto;
cursor: pointer;
}
.mCSB_scrollTools .mCSB_buttonDown {
bottom: 0;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
3. HORIZONTAL SCROLLBAR
|
||||
x-axis
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCSB_horizontal.mCSB_inside > .mCSB_container {
margin-right: 0;
margin-bottom: 30px;
}
.mCSB_horizontal.mCSB_outside > .mCSB_container {
min-height: 100%;
}
.mCSB_horizontal > .mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden {
margin-bottom: 0;
}
/* non-visible scrollbar */
.mCSB_scrollTools.mCSB_scrollTools_horizontal {
width: auto;
height: 16px;
top: auto;
right: 0;
bottom: 0;
left: 0;
}
.mCustomScrollBox + .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCustomScrollBox + .mCSB_scrollTools + .mCSB_scrollTools.mCSB_scrollTools_horizontal {
bottom: -26px;
}
/* scrollbar position: outside */
.mCSB_scrollTools.mCSB_scrollTools_horizontal a + .mCSB_draggerContainer {
margin: 0 20px;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail {
width: 100%;
height: 2px;
margin: 7px 0;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger {
width: 30px;
/* minimum dragger width */
height: 100%;
left: 0;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar {
width: 100%;
height: 4px;
margin: 6px auto;
}
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar {
height: 12px;
/* auto-expanded scrollbar */
margin: 2px auto;
}
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded + .mCSB_draggerRail,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail {
height: 8px;
/* auto-expanded scrollbar */
margin: 4px 0;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight {
display: block;
position: absolute;
width: 20px;
height: 100%;
overflow: hidden;
margin: 0 auto;
cursor: pointer;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft {
left: 0;
}
.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight {
right: 0;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
4. VERTICAL AND HORIZONTAL SCROLLBARS
|
||||
yx-axis
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCSB_container_wrapper {
position: absolute;
height: auto;
width: auto;
overflow: hidden;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin-right: 30px;
margin-bottom: 30px;
}
.mCSB_container_wrapper > .mCSB_container {
padding-right: 30px;
padding-bottom: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_vertical {
bottom: 20px;
}
.mCSB_vertical_horizontal > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
right: 20px;
}
/* non-visible horizontal scrollbar */
.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden + .mCSB_scrollTools.mCSB_scrollTools_vertical {
bottom: 0;
}
/* non-visible vertical scrollbar/RTL direction/left-side scrollbar */
.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal,
.mCS-dir-rtl-custom > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
right: 0;
}
/* RTL direction/left-side scrollbar */
.mCS-dir-rtl-custom > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_scrollTools.mCSB_scrollTools_horizontal {
left: 20px;
}
/* non-visible scrollbar/RTL direction/left-side scrollbar */
.mCS-dir-rtl-custom > .mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden + .mCSB_scrollTools ~ .mCSB_scrollTools.mCSB_scrollTools_horizontal {
left: 0;
}
.mCS-dir-rtl-custom > .mCSB_inside > .mCSB_container_wrapper {
/* RTL direction/left-side scrollbar */
margin-right: 0;
margin-left: 30px;
}
.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden > .mCSB_container {
padding-right: 0;
}
.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden > .mCSB_container {
padding-bottom: 0;
}
.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden {
margin-right: 0;
/* non-visible scrollbar */
margin-left: 0;
}
/* non-visible horizontal scrollbar */
.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside > .mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden {
margin-bottom: 0;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
5. TRANSITIONS
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
.mCSB_scrollTools,
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown,
.mCSB_scrollTools .mCSB_buttonLeft,
.mCSB_scrollTools .mCSB_buttonRight {
-webkit-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
-moz-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
-o-transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
transition: opacity .2s ease-in-out, background-color .2s ease-in-out;
}
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,
.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,
.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail {
-webkit-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;
-moz-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;
-o-transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;
transition: width .2s ease-out .2s, height .2s ease-out .2s, margin-left .2s ease-out .2s, margin-right .2s ease-out .2s, margin-top .2s ease-out .2s, margin-bottom .2s ease-out .2s, opacity .2s ease-in-out, background-color .2s ease-in-out;
}
/*
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
6. SCROLLBAR COLORS, OPACITY AND BACKGROUNDS
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
*/
/*
|
||||
----------------------------------------
|
||||
6.1 THEMES
|
||||
----------------------------------------
|
||||
*/
/* default theme ("light") */
.mCSB_scrollTools .mCSB_draggerRail {
background-color: transparent;
}
.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
background-color: #f2f3f8;
}
.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
background-color: #d1d4e6;
}
.mCSB_scrollTools .mCSB_buttonUp,
.mCSB_scrollTools .mCSB_buttonDown,
.mCSB_scrollTools .mCSB_buttonLeft,
.mCSB_scrollTools .mCSB_buttonRight {
background-image: url(../images/mCSB_buttons.png);
/* css sprites */
background-repeat: no-repeat;
opacity: 0.4;
}
.mCSB_scrollTools .mCSB_buttonUp {
background-position: 0 0;
}
.mCSB_scrollTools .mCSB_buttonDown {
background-position: 0 -20px;
}
.mCSB_scrollTools .mCSB_buttonLeft {
background-position: 0 -40px;
}
.mCSB_scrollTools .mCSB_buttonRight {
background-position: 0 -56px;
}
.mCSB_scrollTools .mCSB_buttonUp:hover,
.mCSB_scrollTools .mCSB_buttonDown:hover,
.mCSB_scrollTools .mCSB_buttonLeft:hover,
.mCSB_scrollTools .mCSB_buttonRight:hover {
opacity: 0.75;
}
.mCSB_scrollTools .mCSB_buttonUp:active,
.mCSB_scrollTools .mCSB_buttonDown:active,
.mCSB_scrollTools .mCSB_buttonLeft:active,
.mCSB_scrollTools .mCSB_buttonRight:active {
opacity: 0.9;
}
/* theme: "dark" */
.mCS-dark.mCSB_scrollTools .mCSB_draggerRail {
background-color: #000000;
background-color: rgba(0, 0, 0, 0.15);
}
.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
background-color: #000000;
background-color: rgba(0, 0, 0, 0.75);
}
.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
background-color: rgba(0, 0, 0, 0.85);
}
.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
background-color: rgba(0, 0, 0, 0.9);
}
.mCS-dark.mCSB_scrollTools .mCSB_buttonUp {
background-position: -80px 0;
}
.mCS-dark.mCSB_scrollTools .mCSB_buttonDown {
background-position: -80px -20px;
}
.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft {
background-position: -80px -40px;
}
.mCS-dark.mCSB_scrollTools .mCSB_buttonRight {
background-position: -80px -56px;
}
/*
|
||||
*
|
||||
* Owl Carousel
|
||||
*/
.owl-carousel .animated {
animation-duration: 1000ms;
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 Carousel - Auto Height Plugin
|
||||
*/
.owl-height {
transition: height 500ms ease-in-out;
}
/*
|
||||
* Core Owl Carousel CSS File
|
||||
*/
.owl-carousel {
display: none;
width: 100%;
-webkit-tap-highlight-color: transparent;
/* position relative and z-index fix webkit rendering fonts issue */
position: relative;
z-index: 1;
}
.owl-carousel .owl-stage {
position: relative;
-ms-touch-action: pan-Y;
}
.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;
/* fix for flashing background */
-webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-controls .owl-nav .owl-prev,
.owl-carousel .owl-controls .owl-nav .owl-next,
.owl-carousel .owl-controls .owl-dot {
cursor: pointer;
user-select: none;
}
.owl-carousel.owl-loaded {
display: block;
}
.owl-carousel.owl-loading {
opacity: 0;
display: block;
}
.owl-carousel.owl-hidden {
opacity: 0;
}
.owl-carousel .owl-refresh .owl-item {
display: none;
}
.owl-carousel .owl-item {
position: relative;
min-height: 1px;
float: left;
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none;
}
.owl-carousel .owl-grab {
cursor: move;
cursor: -webkit-grab;
cursor: grab;
}
.owl-carousel.owl-rtl {
direction: rtl;
}
.owl-carousel.owl-rtl .owl-item {
float: right;
}
/* No Js */
.no-js .owl-carousel {
display: block;
}
/*
|
||||
* Owl Carousel - Lazy Load Plugin
|
||||
*/
.owl-carousel .owl-item .owl-lazy {
opacity: 0;
transition: opacity 400ms ease;
}
/*
|
||||
* Owl Carousel - Video Plugin
|
||||
*/
.owl-carousel .owl-video-wrapper {
position: relative;
height: 100%;
background: #000000;
}
.owl-carousel .owl-video-play-icon {
position: absolute;
height: 80px;
width: 80px;
left: 50%;
top: 50%;
margin-left: -40px;
margin-top: -40px;
font: 400 40px/80px 'FontAwesome';
cursor: pointer;
z-index: 1;
transition: scale 100ms ease;
}
.owl-carousel .owl-video-play-icon:before {
content: '\f144';
}
.owl-carousel .owl-video-play-icon:hover {
transform: scale(1.3);
}
.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
display: none;
}
.owl-carousel .owl-video-tn {
opacity: 0;
height: 100%;
background-position: center center;
background-repeat: no-repeat;
background-size: contain;
transition: opacity 400ms ease;
}
.owl-carousel .owl-video-frame {
position: relative;
z-index: 1;
}
/*
|
||||
* Owl Navigation
|
||||
*/
.owl-nav.disabled {
display: none !important;
}
.owl-prev,
.owl-next {
position: absolute;
top: 50%;
transform: translateY(-50%);
font: 400 46px/50px 'FontAwesome';
color: #aeb1be;
}
.owl-prev:hover,
.owl-next:hover {
color: #0045b6;
}
.owl-prev {
left: 0;
}
.owl-prev::before {
content: '\f104';
}
.owl-next {
right: 0;
}
.owl-next::before {
content: '\f105';
}
/*
|
||||
* Owl Pagination
|
||||
*/
.owl-dots {
margin-top: 10px;
}
.owl-dots.disabled {
display: none !important;
}
@media (min-width: 576px) {
.owl-dots {
margin-top: 25px;
}
}
button.owl-dot {
background: none;
border: none;
display: inline-block;
padding: 0;
outline: none;
outline-offset: 0;
cursor: pointer;
-webkit-appearance: none;
}
button.owl-dot::-moz-focus-inner {
border: none;
padding: 0;
}
.owl-dot {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
vertical-align: middle;
width: 14px;
height: 14px;
border-radius: 50%;
margin-left: 14px;
margin-right: 14px;
text-align: center;
outline: none;
cursor: pointer;
}
.owl-dot::before {
content: '';
display: block;
width: 100%;
height: 100%;
transform: scale3d(0.56, 0.56, 0.56);
background: #e8e9ee;
border-radius: inherit;
transition: .2s;
}
.owl-dot:only-child {
display: none;
}
.owl-dot:hover::before, .owl-dot.active::before {
transform: scale3d(1, 1, 1);
background-color: #0045b6;
}
* + .owl-carousel {
margin-top: 30px;
}
.owl-carousel-1 {
text-align: center;
}
.owl-carousel-1 .owl-stage {
position: relative;
display: flex;
align-items: center;
}
.owl-carousel-centered-pagination .owl-dots {
text-align: center;
}
.owl-carousel-indigo {
position: relative;
overflow: hidden;
max-width: 100vw;
padding: 0 15px;
margin-left: auto;
margin-right: auto;
pointer-events: none;
}
.owl-carousel-indigo, .owl-carousel-indigo * {
backface-visibility: hidden;
}
.owl-carousel-indigo .owl-stage-outer {
padding: 23px;
margin: -23px;
}
.owl-carousel-indigo .owl-item.active {
pointer-events: auto;
}
.owl-carousel-indigo .owl-dots {
pointer-events: auto;
}
.owl-carousel-indigo * + .owl-dots {
margin-top: 25px;
}
@media (max-width: 575.98px) {
.owl-carousel-indigo .owl-dot {
width: 11px;
height: 11px;
margin: 0 6px;
}
}
@media (min-width: 768px) {
.owl-carousel-indigo {
padding: 0 0;
}
.owl-carousel-indigo * + .owl-dots {
margin-top: 60px;
}
}
.owl-carousel-dots-space .owl-dots {
margin-bottom: 25px;
}
.lg-sub-html, .lg-toolbar {
background-color: rgba(0, 0, 0, 0.45);
}
@font-face {
font-family: lg;
src: url(../fonts/lg.eot?n1z373);
src: url(../fonts/lg.eot?#iefixn1z373) format("embedded-opentype"), url(../fonts/lg.woff?n1z373) format("woff"), url(../fonts/lg.ttf?n1z373) format("truetype"), url(../fonts/lg.svg?n1z373#lg) format("svg");
font-weight: 400;
font-style: normal;
}
.lg-icon {
font-family: lg;
speak: none;
font-style: normal;
font-weight: 400;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.lg-actions .lg-next, .lg-actions .lg-prev {
background-color: rgba(0, 0, 0, 0.45);
border-radius: 2px;
color: #999;
cursor: pointer;
display: block;
font-size: 22px;
margin-top: -10px;
padding: 8px 10px 9px;
position: absolute;
top: 50%;
z-index: 1180;
border: none;
outline: 0;
}
.lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled {
pointer-events: none;
opacity: .5;
}
.lg-actions .lg-next:hover, .lg-actions .lg-prev:hover {
color: #fff;
}
.lg-actions .lg-next {
right: 20px;
}
.lg-actions .lg-next:before {
content: "\e095";
}
.lg-actions .lg-prev {
left: 20px;
}
.lg-actions .lg-prev:after {
content: "\e094";
}
@-webkit-keyframes lg-right-end {
0%, 100% {
left: 0;
}
50% {
left: -30px;
}
}
@-moz-keyframes lg-right-end {
0%, 100% {
left: 0;
}
50% {
left: -30px;
}
}
@-ms-keyframes lg-right-end {
0%, 100% {
left: 0;
}
50% {
left: -30px;
}
}
@keyframes lg-right-end {
0%, 100% {
left: 0;
}
50% {
left: -30px;
}
}
@-webkit-keyframes lg-left-end {
0%, 100% {
left: 0;
}
50% {
left: 30px;
}
}
@-moz-keyframes lg-left-end {
0%, 100% {
left: 0;
}
50% {
left: 30px;
}
}
@-ms-keyframes lg-left-end {
0%, 100% {
left: 0;
}
50% {
left: 30px;
}
}
@keyframes lg-left-end {
0%, 100% {
left: 0;
}
50% {
left: 30px;
}
}
.lg-outer.lg-right-end .lg-object {
-webkit-animation: lg-right-end .3s;
-o-animation: lg-right-end .3s;
animation: lg-right-end .3s;
position: relative;
}
.lg-outer.lg-left-end .lg-object {
-webkit-animation: lg-left-end .3s;
-o-animation: lg-left-end .3s;
animation: lg-left-end .3s;
position: relative;
}
.lg-toolbar {
z-index: 1182;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
.lg-toolbar .lg-icon {
color: #999;
cursor: pointer;
float: right;
font-size: 24px;
height: 47px;
line-height: 27px;
padding: 10px 0;
text-align: center;
width: 50px;
text-decoration: none !important;
outline: 0;
transition: color .2s linear;
}
@media (max-width: 575.98px) {
.lg-toolbar .lg-icon {
font-size: 21px;
width: 36px;
}
}
@media (max-width: 575.98px) {
#lg-counter {
font-size: 14px;
line-height: 27px;
}
}
.lg-toolbar .lg-icon:hover {
color: #fff;
}
.lg-toolbar .lg-close:after {
content: "\e070";
}
.lg-toolbar .lg-download:after {
content: Line truncated
|
||||
*
|
||||
* Material Parallax
|
||||
*/
.parallax-content {
position: relative;
z-index: 1;
}
.parallax-container {
position: relative;
overflow: hidden;
background-position: center center;
background-size: cover;
}
.material-parallax {
position: absolute;
top: 0;
left: -1px;
right: -1px;
bottom: 0;
z-index: 0;
background-position: center center;
}
.ipad .parallax-container,
.iphone .parallax-container {
background-attachment: scroll !important;
}
.material-parallax img {
display: none;
position: absolute;
left: 50%;
bottom: 0;
min-width: 101%;
min-height: 101%;
max-width: none;
transform: translate3d(-50%, 0, 0);
}
/*
|
||||
*
|
||||
* Slick Carousel
|
||||
*/
/*rtl:begin:ignore*/
.slick-slider {
position: relative;
display: block;
box-sizing: border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: pan-y;
touch-action: pan-y;
-webkit-tap-highlight-color: transparent;
}
.slick-list {
position: relative;
overflow: hidden;
display: block;
margin: 0;
padding: 0;
}
.slick-list:focus {
outline: none;
}
.slick-list.dragging {
cursor: pointer;
cursor: hand;
}
.slick-slider .slick-track,
.slick-slider .slick-list {
transform: translate3d(0, 0, 0);
}
.slick-track {
position: relative;
left: 0;
top: 0;
display: block;
}
.slick-track::before, .slick-track::after {
content: "";
display: table;
}
.slick-track::after {
clear: both;
}
.slick-loading .slick-track {
visibility: hidden;
}
.slick-slide {
float: left;
height: 100%;
min-height: 1px;
display: none;
}
[dir="rtl"] .slick-slide {
float: right;
}
.slick-slide img {
display: block;
}
.slick-slide.slick-loading img {
display: none;
}
.slick-slide.dragging img {
pointer-events: none;
}
.slick-initialized .slick-slide {
display: block;
}
.slick-loading .slick-slide {
visibility: hidden;
}
.slick-vertical .slick-slide {
display: block;
height: auto;
border: 1px solid transparent;
}
.slick-arrow.slick-hidden {
display: none;
}
.slick-loading .slick-list {
background: #fff url("./../images/ajax-loader.gif") center center no-repeat;
}
/* Icons */
/* Arrows */
.slick-prev,
.slick-next {
position: absolute;
display: block;
height: 20px;
width: 20px;
line-height: 0;
font-size: 0;
cursor: pointer;
color: transparent;
background-color: transparent;
top: 50%;
transform: translate(0, -50%);
padding: 0;
border: none;
outline: none;
z-index: 9;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
opacity: 0.25;
}
.slick-prev::before,
.slick-next::before {
font-family: "fl-bigmug-line";
font-size: 24px;
line-height: 1;
color: #0045b6;
opacity: 0.75;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transition: .22s;
}
.slick-prev:hover::before,
.slick-next:hover::before {
color: #343db0;
}
.slick-prev {
left: 0;
}
[dir="rtl"] .slick-prev {
left: auto;
right: 0;
}
.slick-prev:before {
content: "";
}
[dir="rtl"] .slick-prev:before {
content: "";
}
.slick-next {
right: 0;
}
[dir="rtl"] .slick-next {
left: 0;
right: auto;
}
.slick-next:before {
content: "";
}
[dir="rtl"] .slick-next:before {
content: "";
}
/* Dots */
.slick-dots {
position: absolute;
bottom: -45px;
list-style: none;
display: block;
text-align: center;
padding: 0;
width: 100%;
}
.slick-dots li {
position: relative;
display: inline-block;
height: 20px;
width: 20px;
margin: 0 5px;
padding: 0;
cursor: pointer;
}
.slick-dots li button {
border: 0;
background: transparent;
display: block;
height: 20px;
width: 20px;
outline: none;
line-height: 0;
font-size: 0;
color: transparent;
padding: 5px;
cursor: pointer;
}
.slick-dots li button:hover, .slick-dots li button:focus {
outline: none;
}
.slick-dots li button:hover:before, .slick-dots li button:focus:before {
opacity: 1;
}
.slick-dots li button:before {
position: absolute;
top: 0;
left: 0;
content: "";
font-family: "fl-bigmug-line";
font-size: 6px;
line-height: 20px;
text-align: center;
color: #0045b6;
opacity: 0.25;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before {
color: #0045b6;
opacity: 0.75;
}
/*rtl:end:ignore*/
.slick-widget-testimonials .carousel-child {
max-width: 570px;
padding: 0 50px;
margin-left: auto;
margin-right: auto;
}
.slick-widget-testimonials .carousel-child .item {
border-radius: 50%;
cursor: pointer;
transform: scale3d(0.66, 0.66, 0.66);
transition: .22s;
text-align: center;
}
.slick-widget-testimonials .carousel-child .slick-center {
transform: scale3d(1, 1, 1);
}
.slick-widget-testimonials .carousel-child img {
border-radius: inherit;
max-width: 100%;
margin: 0 auto;
}
@media (max-width: 575.98px) {
.slick-widget-testimonials .carousel-child .slick-prev {
left: 30px;
}
.slick-widget-testimonials .carousel-child .slick-next {
right: 30px;
}
}
.slick-widget-testimonials .carousel-parent {
max-width: 780px;
margin-left: auto;
margin-right: auto;
}
.slick-widget-testimonials .carousel-parent .item > * {
transform-origin: 50% 0;
opacity: 0;
transition: .44s;
}
.slick-widget-testimonials .carousel-parent .slick-active > * {
opacity: 1;
}
.slick-widget-testimonials > * + * {
margin-top: 20px;
}
* + .slick-widget-testimonials {
margin-top: 30px;
}
@media (min-width: 768px) {
* + .slick-widget-testimonials {
margin-top: 55px;
}
}
@media (min-width: 1200px) {
* + .slick-widget-testimonials {
margin-top: 75px;
}
}
/*
|
||||
*
|
||||
* Select 2 v4
|
||||
*/
.select2 {
width: 100% !important;
}
.select2-container {
box-sizing: border-box;
display: inline-block;
margin: 0;
position: relative;
vertical-align: middle;
}
.select2-container .select2-container--default .select2-selection--single {
width: 100% !important;
}
.select2-container .select2-selection--single {
display: block;
cursor: pointer;
user-select: none;
}
.select2-container .select2-selection--single .select2-selection__rendered {
display: block;
padding-left: 8px;
padding-right: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.select2-container .select2-selection--single .select2-selection__clear {
position: relative;
}
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 8px;
padding-left: 20px;
}
.select2-container .select2-selection--multiple {
display: block;
cursor: pointer;
min-height: 32px;
user-select: none;
-webkit-user-select: none;
}
.select2-container .select2-selection--multiple .select2-selection__rendered {
display: inline-block;
overflow: hidden;
padding-left: 8px;
text-overflow: ellipsis;
white-space: nowrap;
}
.select2-container .select2-search--inline {
float: left;
}
.select2-container .select2-search--inline .select2-search__field {
border: none;
font-size: 100%;
margin-top: 5px;
padding: 0;
}
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none;
}
.select2-dropdown {
position: absolute;
left: -100000px;
z-index: 1051;
display: block;
overflow: hidden;
width: 100%;
border: 1px;
border-radius: 6px;
background-color: #fff;
box-shadow: 0 0 5px 0 rgba(73, 80, 87, 0.2);
}
.select2-results {
display: block;
}
.select2-results__options {
list-style: none;
margin: 0;
padding: 0;
}
.select2-results__option {
padding: 6px;
user-select: none;
-webkit-user-select: none;
}
.select2-results__option[aria-selected] {
cursor: pointer;
}
.select2-container--open .select2-dropdown {
left: 0;
}
.select2-container--open .select2-dropdown--above {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.select2-container--open .select2-dropdown--below {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.select2-search--dropdown {
display: block;
padding: 4px;
}
.select2-search--dropdown .select2-search__field {
padding: 4px;
width: 100%;
box-sizing: border-box;
}
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none;
}
.select2-search--dropdown.select2-search--hide {
display: none;
}
.select2-close-mask {
border: 0;
margin: 0;
padding: 0;
display: block;
position: fixed;
left: 0;
top: 0;
min-height: 100%;
min-width: 100%;
height: auto;
width: auto;
opacity: 0;
z-index: 99;
background-color: #fff;
filter: alpha(opacity=0);
}
.select2-hidden-accessible {
border: 0 !important;
clip: rect(0 0 0 0) !important;
height: 1px !important;
margin: -1px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
width: 1px !important;
}
.select2-container--default .select2-selection--single {
background-color: #fff;
border: 1px;
border-radius: 6px;
border-style: solid;
border-color: #aeb1be;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
display: block;
padding: 11px 29px 11px 19px;
color: #495057;
font-size: 16px;
line-height: 1.5;
font-weight: 400;
min-height: 48px;
}
.select2-container--default .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: 700;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder {
color: #74757f;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
position: absolute;
top: 50%;
transform: translate3d(0, -50%, 0);
right: 5px;
width: 20px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
pointer-events: none;
color: #495057;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b::before {
position: relative;
display: inline-block;
content: "";
font-family: "Material Design Icons";
font-size: 18px;
transform: rotate(0deg);
transition: .1s;
}
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left;
}
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
left: 1px;
right: auto;
}
.select2-container--default.select2-container--disabled .select2-selection--single {
background-color: #f5f6fa;
cursor: default;
}
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
display: none;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrowLine truncated
|
||||
*
|
||||
* D3 Charts
|
||||
*/
.c3 svg {
padding-left: 4px;
width: 100%;
-webkit-tap-highlight-color: transparent;
}
.c3 path,
.c3 line {
fill: none;
stroke: #9f9f9f;
}
.c3 text {
font-family: "Work Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 16px;
fill: #9b9b9b;
user-select: none;
}
.c3-legend-item-tile,
.c3-xgrid-focus,
.c3-ygrid,
.c3-event-rect,
.c3-bars path {
shape-rendering: crispEdges;
}
.c3-chart-arc path {
stroke: #fff;
}
.c3-chart-arc text {
fill: #fff;
font-size: 14px;
}
/*-- Axis --*/
/*-- Grid --*/
.c3-grid line {
stroke: #eaebee;
}
.c3-grid text {
fill: #aaa;
}
.c3-xgrid,
.c3-ygrid {
stroke-dasharray: 0 0;
}
/*-- Text on Chart --*/
.c3-text.c3-empty {
fill: #808080;
font-size: 2em;
}
/*-- Line --*/
.c3-line {
stroke-width: 3px;
}
/*-- Point --*/
.c3-circle._expanded_ {
stroke-width: 2px;
stroke: white;
}
.c3-selected-circle {
fill: white;
stroke-width: 2px;
}
/*-- Bar --*/
.c3-bar {
stroke-width: 0;
}
.c3-bar._expanded_ {
fill-opacity: 0.75;
}
/*-- Focus --*/
.c3-target.c3-focused {
opacity: 1;
}
.c3-target.c3-focused path.c3-line,
.c3-target.c3-focused path.c3-step {
stroke-width: 2px;
}
.c3-target.c3-defocused {
opacity: 0.3 !important;
}
/*-- Region --*/
.c3-region {
fill: steelblue;
fill-opacity: .1;
}
/*-- Brush --*/
.c3-brush .extent {
fill-opacity: .1;
fill: #000;
}
/*-- Select - Drag --*/
/*-- Legend --*/
.c3-legend-item {
font-size: 12px;
}
.c3-legend-item-hidden {
opacity: 0.15;
}
.c3-legend-background {
opacity: 0.75;
fill: white;
stroke: lightgray;
stroke-width: 1;
}
/*-- Title --*/
.c3-title {
font: 14px sans-serif;
}
/*-- Tooltip --*/
.c3-tooltip-container {
z-index: 10;
}
.c3-tooltip {
border-collapse: collapse;
border-spacing: 0;
background-color: #fff;
empty-cells: show;
opacity: 0.9;
border: 1px solid #ccc;
}
.c3-tooltip tr {
border: 1px solid #ccc;
}
.c3-tooltip th {
background-color: #aaa;
font-size: 14px;
line-height: 1.2;
padding: 2px 5px;
text-align: left;
color: #fff;
}
.c3-tooltip td {
font-size: 13px;
padding: 3px 6px;
background-color: #fff;
color: #000;
border-left: 1px dotted #999;
}
.c3-tooltip td > span {
display: inline-block;
width: 10px;
height: 10px;
margin-right: 6px;
}
.c3-tooltip td.value {
text-align: right;
}
/*-- Area --*/
.c3-area {
stroke-width: 0;
opacity: 0.2;
}
/*-- Arc --*/
.c3-chart-arcs-title {
dominant-baseline: middle;
font-size: 1.3em;
}
.c3-chart-arcs .c3-chart-arcs-background {
fill: #e0e0e0;
stroke: none;
}
.c3-chart-arcs .c3-chart-arcs-gauge-unit {
fill: #000;
font-size: 16px;
}
.c3-chart-arcs .c3-chart-arcs-gauge-max {
fill: #777;
}
.c3-chart-arcs .c3-chart-arcs-gauge-min {
fill: #777;
}
.c3-chart-arc .c3-gauge-value {
fill: #000;
}
.c3 .domain {
stroke: #c8c8c8;
}
.d3-chart .tick line {
display: none;
}
.d3-chart .c3-tooltip {
opacity: 1;
color: #fff;
background: #0045b6;
border: 1px solid #aeb1be;
}
.d3-chart .c3-tooltip tr th {
padding: 8px 10px;
color: #fff;
background: #495057;
}
.d3-chart .c3-tooltip tr td {
padding: 5px 10px;
color: #838386;
background: #fff;
}
.d3-chart .c3-tooltip .value {
border-left: 1px solid #f2f3f9;
}
#line-chart .c3-tooltip-container {
border-radius: 6px;
overflow: hidden;
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.05);
}
#line-chart .c3-tooltip-container tr {
border: 0;
}
#line-chart .c3-tooltip-container .name {
border-left: 0;
}
#line-chart .c3-tooltip-container table {
border: 0 solid transparent;
border-radius: 6px;
}
#line-chart .c3-axis-y-label {
transform: translateY(-10px);
}
#line-chart .c3-axis-y .tick text {
transform: translateX(1px);
}
#line-chart .c3-axis-x {
text-align: left;
}
#line-chart .c3-axis-x text {
transform: translateX(-1px);
text-anchor: start !important;
}
#line-chart .c3-legend-item {
display: none !important;
transform: translateY(15px);
}
#line-chart .c3-legend-item text {
font-size: 16px;
color: #29293a;
}
.d3-chart-wrap {
width: 100%;
max-width: 100%;
overflow-y: hidden;
overflow-x: auto;
padding-bottom: 30px;
}
.d3-chart-wrap > .d3-chart {
min-width: 520px;
}
.d3-chart-legend {
transform: translateY(-5px);
margin-bottom: -5px;
margin-left: -30px;
text-align: center;
}
.d3-chart-legend > * {
display: inline-block;
margin-top: 5px;
margin-left: 30px;
}
.d3-chart-legend span {
position: relative;
display: inline-block;
font-size: 16px;
color: #74757f;
cursor: pointer;
}
.d3-chart-legend span::before {
content: '';
display: inline-block;
height: 3px;
width: 30px;
margin-right: 12px;
vertical-align: middle;
}
.d3-chart-legend span:nth-child(1)::before {
background: #0045b6;
}
.d3-chart-legend span:nth-child(2)::before {
background: #aeb1be;
}
* + .d3-chart-legend {
margin-top: 20px;
}
@media (min-width: 1600px) {
.d3-chart-legend span {
font-size: 18px;
}
}
.rd-range-input {
border: none;
background: none;
width: auto;
}
.price-devider {
paddinLine truncated
|
||||
@@ -0,0 +1,373 @@
|
||||
/* EXIT Realty / MKDRealtor public brand overrides on Real Estate theme */
|
||||
|
||||
:root {
|
||||
--monica-primary: #00626c;
|
||||
--monica-primary-light: #008898;
|
||||
--monica-ink: #212121;
|
||||
--monica-muted: #6b7280;
|
||||
--monica-surface: #f4f7f7;
|
||||
--monica-border: #d9e3e4;
|
||||
}
|
||||
|
||||
.footer-brand-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.footer-brand-row img {
|
||||
height: 40px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.about-subtitle {
|
||||
font-size: 18px;
|
||||
color: var(--monica-muted);
|
||||
}
|
||||
|
||||
.page .button-primary,
|
||||
.page .button-primary:focus,
|
||||
.page .button-primary:active,
|
||||
.cookie-consent-banner .button-primary,
|
||||
.cookie-consent-banner .button-primary:focus,
|
||||
.cookie-consent-banner .button-primary:active {
|
||||
background-color: var(--monica-primary) !important;
|
||||
border-color: var(--monica-primary) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.page .button-primary:hover,
|
||||
.cookie-consent-banner .button-primary:hover {
|
||||
background-color: var(--monica-primary-light) !important;
|
||||
border-color: var(--monica-primary-light) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
/* Theme default blue (#0045b6) → EXIT Realty teal on public chrome */
|
||||
html .page .text-primary {
|
||||
color: var(--monica-primary) !important;
|
||||
}
|
||||
.page .breadcrumbs-custom-path a,
|
||||
.page a.link-default {
|
||||
color: var(--monica-primary);
|
||||
}
|
||||
.page a.link-default:hover {
|
||||
color: var(--monica-primary-light);
|
||||
}
|
||||
|
||||
.page .button-gray-bordered:hover,
|
||||
.page .button-gray-bordered:active,
|
||||
.page .button-default:hover,
|
||||
.page .button-default:active,
|
||||
.page .button-accent-outline:hover,
|
||||
.page .button-accent-outline:active,
|
||||
.page .button-primary-outline:hover,
|
||||
.page .button-primary-outline:active,
|
||||
.page .button-primary-white:hover,
|
||||
.page .button-primary-white:active,
|
||||
.page .button.button-primary-lighten,
|
||||
.page .button.button-primary-lighten:focus {
|
||||
background-color: var(--monica-primary) !important;
|
||||
border-color: var(--monica-primary) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
.page .button.button-primary-lighten:hover,
|
||||
.page .button.button-primary-lighten:active {
|
||||
background-color: var(--monica-ink) !important;
|
||||
border-color: var(--monica-ink) !important;
|
||||
}
|
||||
.page .button-accent-outline,
|
||||
.page .button-accent-outline:focus {
|
||||
border-color: var(--monica-primary) !important;
|
||||
}
|
||||
.page .button-video:hover {
|
||||
color: var(--monica-primary) !important;
|
||||
}
|
||||
.page .btn-primary,
|
||||
.page .btn-primary:active,
|
||||
.page .btn-primary:focus {
|
||||
background: var(--monica-primary) !important;
|
||||
border-color: var(--monica-primary) !important;
|
||||
}
|
||||
.page .box-chloe__icon,
|
||||
.page .box-light-icon,
|
||||
.page .box-minimal-icon .box-chloe__icon {
|
||||
color: var(--monica-primary);
|
||||
}
|
||||
|
||||
/* Mobile drawer active/hover — theme uses #0045b6 */
|
||||
.rd-navbar-fixed .rd-nav-item:hover .rd-nav-link,
|
||||
.rd-navbar-fixed .rd-nav-item.focus .rd-nav-link,
|
||||
.rd-navbar-fixed .rd-nav-item.active .rd-nav-link,
|
||||
.rd-navbar-fixed .rd-nav-item.opened .rd-nav-link {
|
||||
background: var(--monica-primary) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
/* Scroll-to-top (injected outside .page) */
|
||||
.ui-to-top {
|
||||
background: var(--monica-primary) !important;
|
||||
color: #fff !important;
|
||||
box-shadow: 0 6px 16px rgba(0, 98, 108, 0.35);
|
||||
}
|
||||
.ui-to-top:hover,
|
||||
.ui-to-top:focus {
|
||||
background: var(--monica-primary-light) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
/* Django flash messages */
|
||||
.flash {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 12px 0 0;
|
||||
}
|
||||
.flash li {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto 8px;
|
||||
padding: 12px 16px;
|
||||
background: #e8f4f5;
|
||||
border-left: 3px solid #00626c;
|
||||
color: #0d4a52;
|
||||
font-size: 14px;
|
||||
}
|
||||
.flash li.error,
|
||||
.flash li.danger {
|
||||
background: #fee2e2;
|
||||
border-left-color: #b91c1c;
|
||||
color: #991b1b;
|
||||
}
|
||||
|
||||
/* Form field errors */
|
||||
.form-wrap .errorlist {
|
||||
list-style: none;
|
||||
margin: 6px 0 0;
|
||||
padding: 0;
|
||||
color: #b91c1c;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/* Cookie consent — match public EXIT Realty teal brand */
|
||||
.cookie-consent-banner {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 11000;
|
||||
padding: 1rem 1.25rem;
|
||||
background: rgba(17, 24, 28, 0.96);
|
||||
border-top: 2px solid var(--monica-primary);
|
||||
box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.28);
|
||||
font-family: "Work Sans", sans-serif;
|
||||
}
|
||||
.cookie-consent-content {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
}
|
||||
.cookie-consent-text {
|
||||
flex: 1 1 420px;
|
||||
color: #d7dee3;
|
||||
font-size: 0.9375rem;
|
||||
line-height: 1.45;
|
||||
margin: 0;
|
||||
font-family: "Work Sans", sans-serif;
|
||||
font-weight: 400;
|
||||
}
|
||||
.cookie-consent-text-short {
|
||||
display: none;
|
||||
}
|
||||
.cookie-consent-actions {
|
||||
display: flex;
|
||||
gap: 0.75rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.cookie-consent-banner .button {
|
||||
min-width: 10rem;
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
font-family: "Work Sans", sans-serif;
|
||||
font-weight: 500;
|
||||
}
|
||||
.visually-hidden {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap;
|
||||
border: 0;
|
||||
}
|
||||
.footer-link-btn {
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
color: #7dd3da;
|
||||
font: inherit;
|
||||
font-size: 13px;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
.footer-link-btn:hover {
|
||||
text-decoration: underline;
|
||||
color: #a8e8ed;
|
||||
}
|
||||
|
||||
.cookie-consent-link {
|
||||
color: #7dd3da;
|
||||
text-decoration: underline;
|
||||
text-underline-offset: 2px;
|
||||
}
|
||||
.cookie-consent-link:hover {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.legal-prose {
|
||||
max-width: 42rem;
|
||||
}
|
||||
.legal-prose .legal-lead {
|
||||
font-size: 1.05rem;
|
||||
color: var(--monica-ink);
|
||||
margin-bottom: 1.75rem;
|
||||
}
|
||||
.legal-prose h2 {
|
||||
font-size: 1.35rem;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 0.75rem;
|
||||
text-transform: none;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
.legal-prose p {
|
||||
margin-bottom: 1rem;
|
||||
color: #4b5563;
|
||||
line-height: 1.65;
|
||||
}
|
||||
.legal-prose .legal-updated {
|
||||
margin-top: 2.5rem;
|
||||
font-size: 0.875rem;
|
||||
color: var(--monica-muted);
|
||||
}
|
||||
|
||||
/* Contact form — breathe on narrow viewports */
|
||||
@media (max-width: 767.98px) {
|
||||
.contact-form-section > .container {
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
.contact-form-section .section-lg {
|
||||
padding-top: 2.5rem;
|
||||
padding-bottom: 2.5rem;
|
||||
}
|
||||
.contact-form-section h3 {
|
||||
margin-bottom: 1.25rem;
|
||||
padding-right: 0.25rem;
|
||||
}
|
||||
.contact-message-form .form-wrap {
|
||||
margin-bottom: 0.35rem;
|
||||
}
|
||||
.contact-message-form .form-label-outside {
|
||||
margin-bottom: 0.35rem;
|
||||
}
|
||||
.contact-message-form .row-10 {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
.contact-message-form .row-10 > [class*="col-"] {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.footer-aside-copy {
|
||||
text-align: right;
|
||||
}
|
||||
.footer-aside-copy .rights {
|
||||
margin: 0;
|
||||
}
|
||||
.footer-made-by {
|
||||
margin: 6px 0 0;
|
||||
font-size: 13px;
|
||||
color: #9ca3af;
|
||||
font-family: "Work Sans", sans-serif;
|
||||
}
|
||||
.footer-made-by a {
|
||||
color: #d1d5db;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.footer-made-by a:hover {
|
||||
color: #fff;
|
||||
}
|
||||
.footer-minimal .footer-made-by {
|
||||
margin-top: 8px;
|
||||
}
|
||||
.footer-minimal-inner {
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.pref-check {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
font-size: 15px;
|
||||
color: var(--monica-ink);
|
||||
cursor: pointer;
|
||||
}
|
||||
.pref-check input {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.cookie-consent-banner {
|
||||
padding: 0.625rem 0.75rem;
|
||||
padding-bottom: max(0.625rem, env(safe-area-inset-bottom));
|
||||
}
|
||||
.cookie-consent-content {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
gap: 0.625rem;
|
||||
}
|
||||
.cookie-consent-text-short {
|
||||
display: inline;
|
||||
}
|
||||
.cookie-consent-text-full {
|
||||
display: none;
|
||||
}
|
||||
.cookie-consent-text {
|
||||
flex: none;
|
||||
font-size: 0.8125rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
.cookie-consent-actions {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Keep hero slide-2 heading visually aligned with slide-1 h1 (SEO: one h1). */
|
||||
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
|
||||
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
|
||||
font-size: 2.5rem;
|
||||
line-height: 1.15;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
|
||||
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
|
||||
font-size: 3.5rem;
|
||||
}
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.swiper-slider-minimal .jumbotron-classic-content h1.font-weight-bold,
|
||||
.swiper-slider-minimal .jumbotron-classic-content h2.font-weight-bold {
|
||||
font-size: 4.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 1.5 MiB |
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg"><defs><font id="flaticon" horiz-adv-x="512"><font-face units-per-em="512" ascent="448" descent="-64" x-height="240" cap-height="480"/><missing-glyph horiz-adv-x="512"/><glyph unicode="" glyph-name="add137" horiz-adv-x="512" d="M448 256h-128V384c0 35.344 -28.656 64 -64 64c-35.344 0 -64 -28.656 -64 -64v-128H64 c-35.344 0 -64 -28.656 -64 -64c0 -35.344 28.656 -64 64 -64h128v-128c0 -35.344 28.656 -64 64 -64c35.344 0 64 28.656 64 64v128h128c35.344 0 64 28.656 64 64 C512 227.344 483.344 256 448 256zM448 160H288v-160c0 -17.68 -14.32 -32 -32 -32s-32 14.32 -32 32V160H64c-17.68 0 -32 14.32 -32 32c0 17.68 14.32 32 32 32h160V384 c0 17.68 14.32 32 32 32s32 -14.336 32 -32v-160h160c17.68 0 32 -14.32 32 -32C480 174.32 465.68 160 448 160z"/><glyph unicode="" glyph-name="add139" horiz-adv-x="512" d="M256 448C114.608 448 0 333.392 0 192s114.608 -256 256 -256c141.392 0 256 114.624 256 256 S397.392 448 256 448zM256 -32C132.288 -32 32 68.288 32 192S132.288 416 256 416s224 -100.288 224 -224S379.712 -32 256 -32zM352 208h-80v80c0 8.832 -7.168 16 -16 16 c-8.832 0 -16 -7.168 -16 -16v-80h-80c-8.832 0 -16 -7.168 -16 -16s7.168 -16 16 -16h80v-80c0 -8.832 7.168 -16 16 -16c8.832 0 16 7.168 16 16v80h80 c8.832 0 16 7.168 16 16S360.832 208 352 208z"/><glyph unicode="" glyph-name="add149" horiz-adv-x="512" d="M352 208h-80v80c0 8.832 -7.168 16 -16 16s-16 -7.168 -16 -16v-80h-80c-8.832 0 -16 -7.168 -16 -16 c0 -8.832 7.168 -16 16 -16h80v-80c0 -8.832 7.168 -16 16 -16s16 7.168 16 16v80h80c8.832 0 16 7.168 16 16C368 200.832 360.832 208 352 208zM448 448H64 C28.656 448 0 419.344 0 384v-384c0 -35.344 28.656 -64 64 -64h384c35.344 0 64 28.656 64 64V384C512 419.344 483.344 448 448 448zM480 0c0 -17.68 -14.336 -32 -32 -32H64 c-17.68 0 -32 14.32 -32 32V384c0 17.68 14.32 32 32 32h384c17.664 0 32 -14.336 32 -32V0z"/><glyph unicode="" glyph-name="airplane86" horiz-adv-x="512" d="M499.41888892363 435.14677837872c-19.960108794198 20.008128302123 -55.014349579517 15.318223028105 -75.070497389565 -4.7859442898678l-102.05746084347 -101.83336980648 L132.95001094195 399.29221246131C114.83064995154 403.98211773533 96.567230437365 410.03257573389 74.062087723138 387.49542001438c-11.460655891456 -11.492668896739 -35.326351330228 -35.406383843436 0 -70.796761184231l129.82874292681 -106.29918404352L119.42451620971 126.10923187545l-78.816019007722 19.687998249289 c-11.700753431081 3.025228999281 -19.559946228155 0.65626660830963 -25.562384718792 -5.9544189827117c-3.025228999281 -3.7775346234408 -24.970144121049 -20.056147810048 -9.6839340982274 -35.374370838153l91.653234126364 -71.292962766124l71.276956263482 -91.653234126364 c11.076499828055 -11.092506330697 21.368681026667 -4.1776971894832 35.43839684872 9.1877325163348c8.9156219714259 8.9316284740676 6.9948416544221 13.525494732235 4.3057492106168 26.554787882577l-17.81523744021 78.255791415262l83.89008034514 84.178197392691l106.12311251446 -129.82874292681 c35.326351330228 -35.390377340795 59.192046769 -11.476662394098 70.652702660456 0c22.505142714228 22.553162222153 16.454684715666 40.848594741614 11.78078594429 58.9999687373l-70.156501078563 189.6290367962l101.65729827743 102.00944133554 C514.24091036984 380.62863038109 519.37899771782 415.15465657924 499.41888892363 435.14677837872zM477.76209084941 381.63704004752l-119.28045768593 -119.71263325726l72.125300903492 -198.40060024385c3.553443586457 -11.364616875606 1.3445462219026 -25.434332697658 -3.2493200362647 -30.028198955826 c-13.045299652984 -13.077312658267 -22.361084190452 -6.8667896332885 -27.291087004095 -1.376559227186l-115.32685153344 155.80729671429l-127.65185856754 -128.11604714415l22.969331290837 -85.314659080251c-9.0596804952012 9.0916935004846 -62.02519773658 80.016506705849 -63.305717947916 81.297026917185 c-0.84834464001 0.84834464001 -70.492637634039 52.773439209679 -78.015693875637 60.312501953919l81.825241504361 -22.072967142902l130.08484696908 127.73189108075L95.942976834339 336.22659205302c-4.4338012317504 3.9696126551412 -10.260168193329 15.686372588864 1.6806827773783 27.659236564854 c4.5778597555257 4.5938662581674 18.503517053803 5.9864319879951 29.852127426767 2.4329884015381l197.5362491012 -71.581079813674l120.89711445275 118.72023009348c8.4354268921749 8.4514333948166 24.986150623691 7.5870822521649 32.381154844155 0.17607152905868 C485.70131615969 406.22302810517 486.19751774158 390.08847344234 477.76209084941 381.63704004752z"/><glyph unicode="" glyph-name="alarm31" horiz-adv-x="512" d="M368 208h-96V320c0 8.832 -7.168 16 -16 16c-8.832 0 -16 -7.168 -16 -16v-128 c0 -8.832 7.168 -16 16 -16h112c8.832 0 16 7.168 16 16C384 200.832 376.832 208 368 208zM32 368c0 26.512 21.488 48 48 48l32 0V448H80C35.824 448 0 412.176 0 368v-32 h32V368zM432 448h-32l0 -32l32 0c26.512 0 48 -21.488 48 -48v-32h32V368C512 412.176 476.176 448 432 448zM480 192c0 123.712 -100.288 224 -224 224C132.288 416 32 315.712 32 192 c0 -84.832 47.184 -158.64 116.72 -196.656L96 -64h48l42.96 42.96C208.72 Line truncated
|
||||
|
After Width: | Height: | Size: 270 KiB |
|
After Width: | Height: | Size: 434 KiB |
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
<json>
|
||||
<![CDATA[
|
||||
{
|
||||
"fontFamily": "lg",
|
||||
"majorVersion": 1,
|
||||
"minorVersion": 0,
|
||||
"fontURL": "https://github.com/sachinchoolur/lightGallery",
|
||||
"copyright": "sachin",
|
||||
"license": "MLT",
|
||||
"licenseURL": "http://opensource.org/licenses/MIT",
|
||||
"version": "Version 1.0",
|
||||
"fontId": "lg",
|
||||
"psName": "lg",
|
||||
"subFamily": "Regular",
|
||||
"fullName": "lg",
|
||||
"description": "Font generated by IcoMoon."
|
||||
}
|
||||
]]>
|
||||
</json>
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="lg" horiz-adv-x="1024">
|
||||
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
||||
<missing-glyph horiz-adv-x="1024" />
|
||||
<glyph unicode=" " horiz-adv-x="512" d="" />
|
||||
<glyph unicode="" glyph-name="pause_circle_outline" data-tags="pause_circle_outline" d="M554 256.667v340h86v-340h-86zM512 84.667q140 0 241 101t101 241-101 241-241 101-241-101-101-241 101-241 241-101zM512 852.667q176 0 301-125t125-301-125-301-301-125-301 125-125 301 125 301 301 125zM384 256.667v340h86v-340h-86z" />
|
||||
<glyph unicode="" glyph-name="play_circle_outline" data-tags="play_circle_outline" d="M512 84.667q140 0 241 101t101 241-101 241-241 101-241-101-101-241 101-241 241-101zM512 852.667q176 0 301-125t125-301-125-301-301-125-301 125-125 301 125 301 301 125zM426 234.667v384l256-192z" />
|
||||
<glyph unicode="" glyph-name="stack-2" data-tags="stack-2" d="M384 853.334h426.667q53 0 90.5-37.5t37.5-90.5v-426.667q0-53-37.5-90.5t-90.5-37.5h-426.667q-53 0-90.5 37.5t-37.5 90.5v426.667q0 53 37.5 90.5t90.5 37.5zM170.667 675.334v-547.333q0-17.667 12.5-30.167t30.167-12.5h547.333q-13.333-37.667-46.333-61.5t-74.333-23.833h-426.667q-53 0-90.5 37.5t-37.5 90.5v426.667q0 41.333 23.833 74.333t61.5 46.333zM810.667 768h-426.667q-17.667 0-30.167-12.5t-12.5-30.167v-426.667q0-17.667 12.5-30.167t30.167-12.5h426.667q17.667 0 30.167 12.5t12.5 30.167v426.667q0 17.667-12.5 30.167t-30.167 12.5z" />
|
||||
<glyph unicode="" glyph-name="clear" data-tags="clear" d="M810 664.667l-238-238 238-238-60-60-238 238-238-238-60 60 238 238-238 238 60 60 238-238 238 238z" />
|
||||
<glyph unicode="" glyph-name="arrow-left" data-tags="arrow-left" d="M426.667 768q17.667 0 30.167-12.5t12.5-30.167q0-18-12.667-30.333l-225.667-225.667h665q17.667 0 30.167-12.5t12.5-30.167-12.5-30.167-30.167-12.5h-665l225.667-225.667q12.667-12.333 12.667-30.333 0-17.667-12.5-30.167t-30.167-12.5q-18 0-30.333 12.333l-298.667 298.667q-12.333 13-12.333 30.333t12.333 30.333l298.667 298.667q12.667 12.333 30.333 12.333z" />
|
||||
<glyph unicode="" glyph-name="arrow-right" data-tags="arrow-right" d="M597.333 768q18 0 30.333-12.333l298.667-298.667q12.333-12.333 12.333-30.333t-12.333-30.333l-298.667-298.667q-12.333-12.333-30.333-12.333-18.333 0-30.5 12.167t-12.167 30.5q0 18 12.333 30.333l226 225.667h-665q-17.667 0-30.167 12.5t-12.5 30.167 12.5 30.167 30.167 12.5h665l-226 225.667q-12.333 12.333-12.333 30.333 0 18.333 12.167 30.5t30.5 12.167z" />
|
||||
<glyph unicode="" glyph-name="vertical_align_bottom" data-tags="vertical_align_bottom" d="M170 128.667h684v-86h-684v86zM682 384.667l-170-172-170 172h128v426h84v-426h128z" />
|
||||
<glyph unicode="" glyph-name="apps" data-tags="apps" d="M682 84.667v172h172v-172h-172zM682 340.667v172h172v-172h-172zM426 596.667v172h172v-172h-172zM682 768.667h172v-172h-172v172zM426 340.667v172h172v-172h-172zM170 340.667v172h172v-172h-172zM170 84.667v172h172v-172h-172zM426 84.667v172h172v-172h-172zM170 596.667v172h172v-172h-172z" />
|
||||
<glyph unicode="" glyph-name="fullscreen" data-tags="fullscreen" d="M598 724.667h212v-212h-84v128h-128v84zM726 212.667v128h84v-212h-212v84h128zM214 512.667v212h212v-84h-128v-128h-84zM298 340.667v-128h128v-84h-212v212h84z" />
|
||||
<glyph unicode="" glyph-name="fullscreen_exit" data-tags="fullscreen_exit" d="M682 596.667h128v-84h-212v212h84v-128zM598 128.667v212h212v-84h-128v-128h-84zM342 596.667v128h84v-212h-212v84h128zM214 256.667v84h212v-212h-84v128h-128z" />
|
||||
<glyph unicode="" glyph-name="zoom_in" data-tags="zoom_in" d="M512 512.667h-86v-86h-42v86h-86v42h86v86h42v-86h86v-42zM406 340.667q80 0 136 56t56 136-56 136-136 56-136-56-56-136 56-136 136-56zM662 340.667l212-212-64-64-212 212v34l-12 12q-76-66-180-66-116 0-197 80t-81 196 81 197 197 81 196-81 80-197q0-104-66-180l12-12h34z" />
|
||||
<glyph unicode="" glyph-name="zoom_out" data-tags="zoom_out" d="M298 554.667h214v-42h-214v42zM406 340.667q80 0 136 56t56 136-56 136-136 56-136-56-56-136 56-136 136-56zM662 340.667l212-212-64-64-212 212v34l-12 12q-76-66-180-66-116 0-197 80t-81 196 81 197 197 81 196-81 80-197q0-104-66-180l12-12h34z" />
|
||||
<glyph unicode="" glyph-name="share" data-tags="share" d="M768 252.667c68 0 124-56 124-124s-56-126-124-126-124 58-124 126c0 10 0 20 2 28l-302 176c-24-22-54-34-88-34-70 0-128 58-128 128s58 128 128 128c34 0 64-12 88-34l300 174c-2 10-4 20-4 30 0 70 58 128 128 128s128-58 128-128-58-128-128-128c-34 0-64 14-88 36l-300-176c2-10 4-20 4-30s-2-20-4-30l304-176c22 20 52 32 84 32z" />
|
||||
<glyph unicode="" glyph-name="facebook-with-circle" data-tags="facebook-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM628.429 612.659h-73.882c-8.755 0-18.483-11.52-18.483-26.829v-53.35h92.416l-13.978-76.083h-78.438v-228.403h-87.194v228.403h-79.104v76.083h79.104v44.749c0 64.205 44.544 116.378 105.677 116.378h73.882v-80.947z" />
|
||||
<glyph unicode="" glyph-name="google-with-circle" data-tags="google+-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM483.686 249.805c-30.874-15.002-64.102-16.589-76.954-16.589-2.458 0-3.84 0-3.84 0s-1.178 0-2.765 0c-20.070 0-119.962 4.608-119.962 95.59 0 89.395 108.8 96.41 142.131 96.41h0.87c-19.251 25.702-15.258 51.61-15.258 51.61-1.69-0.102-4.147-0.205-7.168-0.205-12.544 0-36.762 1.997-57.549 15.411-25.498 16.384-38.4 44.288-38.4 82.893 0 109.107 119.142 113.51 120.32 113.613h118.989v-2.611c0-13.312-23.91-15.923-40.192-18.125-5.53-0.819-16.64-1.894-19.763-3.482 30.157-16.128 35.021-41.421 35.021-79.104 0-42.906-16.794-65.587-34.611-81.51-11.059-9.882-19.712-17.613-19.712-28.006 0-10.189 11.878-20.582 25.702-32.717 22.579-19.917 53.555-47.002 53.555-92.723 0-47.258-20.326-81.050-60.416-100.454zM742.4 460.8h-76.8v-76.8h-51.2v76.8h-76.8v51.2h76.8v76.8h51.2v-76.8h76.8v-51.2zM421.018 401.92c-2.662 0-5.325-0.102-8.038-0.307-22.733-1.69-43.725-10.189-58.88-24.013-15.053-13.619-22.733-30.822-21.658-48.179 2.304-36.403 41.37-57.702 88.832-54.323 46.694 3.379 77.824 30.31 75.571 66.714-2.15 34.202-31.898 60.109-75.827 60.109zM465.766 599.808c-12.39 43.52-32.358 56.422-63.386 56.422-3.328 0-6.707-0.512-9.933-1.382-13.466-3.84-24.166-15.053-30.106-31.744-6.093-16.896-6.451-34.509-1.229-54.579 9.472-35.891 34.97-61.901 60.672-61.901 3.379 0 6.758 0.41 9.933 1.382 28.109 7.885 45.722 50.79 34.048 91.802z" />
|
||||
<glyph unicode="" glyph-name="pinterest-with-circle" data-tags="pinterest-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM545.638 344.32c-31.539 2.406-44.749 18.022-69.427 32.973-13.568-71.219-30.157-139.52-79.309-175.206-15.206 107.725 22.221 188.518 39.629 274.381-29.645 49.92 3.533 150.323 66.099 125.645 76.954-30.515-66.662-185.6 29.747-205.005 100.659-20.173 141.773 174.694 79.36 237.978-90.214 91.494-262.502 2.099-241.306-128.87 5.12-32 38.246-41.728 13.21-85.914-57.702 12.8-74.957 58.317-72.704 118.989 3.533 99.328 89.242 168.909 175.155 178.483 108.698 12.083 210.688-39.885 224.819-142.182 15.821-115.405-49.101-240.282-165.274-231.27z" />
|
||||
<glyph unicode="" glyph-name="twitter-with-circle" data-tags="twitter-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM711.936 549.683c0.205-4.198 0.256-8.397 0.256-12.493 0-128-97.331-275.507-275.405-275.507-54.682 0-105.574 15.974-148.378 43.52 7.526-0.922 15.258-1.28 23.091-1.28 45.363 0 87.091 15.411 120.218 41.421-42.342 0.819-78.080 28.774-90.419 67.174 5.888-1.075 11.93-1.69 18.176-1.69 8.806 0 17.408 1.178 25.498 3.379-44.288 8.909-77.67 48.026-77.67 94.925v1.178c13.056-7.219 28.006-11.622 43.878-12.134-26.010 17.408-43.059 47.002-43.059 80.64 0 17.715 4.762 34.406 13.107 48.691 47.77-58.573 119.040-97.075 199.526-101.222-1.69 7.117-2.509 14.49-2.509 22.118 0 53.402 43.315 96.819 96.819 96.819 27.802 0 52.992-11.776 70.656-30.618 22.067 4.403 42.752 12.39 61.44 23.501-7.219-22.579-22.528-41.574-42.547-53.606 19.61 2.406 38.246 7.578 55.603 15.309-12.954-19.405-29.389-36.506-48.282-50.125z" />
|
||||
</font></defs></svg>
|
||||
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 647 KiB |
|
After Width: | Height: | Size: 455 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 163 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 244 KiB |
|
After Width: | Height: | Size: 412 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
@@ -0,0 +1,149 @@
|
||||
/**
|
||||
* Address autocomplete via Django /api/address-suggest/ (Nominatim proxy).
|
||||
* Never calls Nominatim from the browser.
|
||||
*
|
||||
* Markup: wrap fields in [data-address-autocomplete][data-suggest-url="..."].
|
||||
* Mark inputs with data-ac="line1|line2|city|state|zip|country".
|
||||
* The line1 input is the typeahead trigger.
|
||||
*/
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
var DEBOUNCE_MS = 280;
|
||||
var MIN_CHARS = 3;
|
||||
|
||||
function debounce(fn, wait) {
|
||||
var t;
|
||||
return function () {
|
||||
var ctx = this;
|
||||
var args = arguments;
|
||||
clearTimeout(t);
|
||||
t = setTimeout(function () {
|
||||
fn.apply(ctx, args);
|
||||
}, wait);
|
||||
};
|
||||
}
|
||||
|
||||
function field(root, key) {
|
||||
return root.querySelector('[data-ac="' + key + '"]');
|
||||
}
|
||||
|
||||
function ensureList(root) {
|
||||
var list = root.querySelector(".address-ac-list");
|
||||
if (list) {
|
||||
return list;
|
||||
}
|
||||
list = document.createElement("ul");
|
||||
list.className = "address-ac-list";
|
||||
list.hidden = true;
|
||||
list.setAttribute("role", "listbox");
|
||||
var line1 = field(root, "line1");
|
||||
var wrap = line1 && line1.closest(".form-wrap, .field");
|
||||
(wrap || root).appendChild(list);
|
||||
if (wrap) {
|
||||
wrap.classList.add("address-ac-wrap");
|
||||
} else {
|
||||
root.classList.add("address-ac-wrap");
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
function hide(list) {
|
||||
list.hidden = true;
|
||||
list.innerHTML = "";
|
||||
}
|
||||
|
||||
function fill(root, item) {
|
||||
var map = {
|
||||
line1: item.line1 || "",
|
||||
line2: item.line2 || "",
|
||||
city: item.city || "",
|
||||
state: item.state || "",
|
||||
zip: item.zip || "",
|
||||
country: item.country || "US",
|
||||
};
|
||||
Object.keys(map).forEach(function (key) {
|
||||
var el = field(root, key);
|
||||
if (el) {
|
||||
el.value = map[key];
|
||||
el.dispatchEvent(new Event("input", { bubbles: true }));
|
||||
el.dispatchEvent(new Event("change", { bubbles: true }));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function render(root, list, results) {
|
||||
list.innerHTML = "";
|
||||
if (!results.length) {
|
||||
hide(list);
|
||||
return;
|
||||
}
|
||||
results.forEach(function (item, index) {
|
||||
var li = document.createElement("li");
|
||||
li.className = "address-ac-item";
|
||||
li.setAttribute("role", "option");
|
||||
li.setAttribute("tabindex", "-1");
|
||||
li.dataset.index = String(index);
|
||||
li.textContent = item.label || item.line1 || "Address";
|
||||
li.addEventListener("mousedown", function (ev) {
|
||||
ev.preventDefault();
|
||||
fill(root, item);
|
||||
hide(list);
|
||||
});
|
||||
list.appendChild(li);
|
||||
});
|
||||
list.hidden = false;
|
||||
}
|
||||
|
||||
function bind(root) {
|
||||
var url = root.getAttribute("data-suggest-url");
|
||||
var input = field(root, "line1");
|
||||
if (!url || !input) {
|
||||
return;
|
||||
}
|
||||
var list = ensureList(root);
|
||||
input.setAttribute("autocomplete", "off");
|
||||
input.setAttribute("aria-autocomplete", "list");
|
||||
|
||||
var fetchSuggest = debounce(function () {
|
||||
var q = (input.value || "").trim();
|
||||
if (q.length < MIN_CHARS) {
|
||||
hide(list);
|
||||
return;
|
||||
}
|
||||
var req = url + (url.indexOf("?") >= 0 ? "&" : "?") + "q=" + encodeURIComponent(q) + "&limit=5";
|
||||
fetch(req, { headers: { Accept: "application/json" }, credentials: "same-origin" })
|
||||
.then(function (res) {
|
||||
return res.json();
|
||||
})
|
||||
.then(function (data) {
|
||||
render(root, list, (data && data.results) || []);
|
||||
})
|
||||
.catch(function () {
|
||||
hide(list);
|
||||
});
|
||||
}, DEBOUNCE_MS);
|
||||
|
||||
input.addEventListener("input", fetchSuggest);
|
||||
input.addEventListener("keydown", function (ev) {
|
||||
if (ev.key === "Escape") {
|
||||
hide(list);
|
||||
}
|
||||
});
|
||||
document.addEventListener("click", function (ev) {
|
||||
if (!root.contains(ev.target)) {
|
||||
hide(list);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function init() {
|
||||
document.querySelectorAll("[data-address-autocomplete]").forEach(bind);
|
||||
}
|
||||
|
||||
if (document.readyState === "loading") {
|
||||
document.addEventListener("DOMContentLoaded", init);
|
||||
} else {
|
||||
init();
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,299 @@
|
||||
/**
|
||||
* @module jQuery
|
||||
* @author jQuery Foundation and other contributors
|
||||
* @see https://code.jquery.com/jquery/
|
||||
* @license MIT (jquery.org/license)
|
||||
* @version 3.3.1
|
||||
*/
|
||||
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)Line truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery Migrate
|
||||
* @author jQuery Foundation and other contributors
|
||||
* @see https://code.jquery.com/jquery/
|
||||
* @license MIT
|
||||
* @version 3.0.0
|
||||
*/
|
||||
"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b){"use strict";function c(c){var d=b.console;e[c]||(e[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function d(a,b,d,e){Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:function(){return c(e),d}})}a.migrateVersion="3.0.0",function(){var c=b.console&&b.console.log&&function(){b.console.log.apply(b.console,arguments)},d=/^[12]\./;c&&(a&&!d.test(a.fn.jquery)||c("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),a.migrateWarnings&&c("JQMIGRATE: Migrate plugin loaded multiple times"),c("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion))}();var e={};a.migrateWarnings=[],void 0===a.migrateTrace&&(a.migrateTrace=!0),a.migrateReset=function(){e={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&c("jQuery is not compatible with Quirks Mode");var f=a.fn.init,g=a.isNumeric,h=a.find,i=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,j=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;a.fn.init=function(a){var b=Array.prototype.slice.call(arguments);return"string"==typeof a&&"#"===a&&(c("jQuery( '#' ) is not a valid selector"),b[0]=[]),f.apply(this,b)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&i.test(a))try{document.querySelector(a)}catch(d){a=a.replace(j,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),c("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){c("Attribute selector with '#' was not fixed: "+b[0])}}return h.apply(this,b)};var k;for(k in h)Object.prototype.hasOwnProperty.call(h,k)&&(a.find[k]=h[k]);a.fn.size=function(){return c("jQuery.fn.size() is deprecated; use the .length property"),this.length},a.parseJSON=function(){return c("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},a.isNumeric=function(b){function d(b){var c=b&&b.toString();return!a.isArray(b)&&c-parseFloat(c)+1>=0}var e=g(b),f=d(b);return e!==f&&c("jQuery.isNumeric() should not be called on constructed objects"),f},d(a,"unique",a.uniqueSort,"jQuery.unique is deprecated, use jQuery.uniqueSort"),d(a.expr,"filters",a.expr.pseudos,"jQuery.expr.filters is now jQuery.expr.pseudos"),d(a.expr,":",a.expr.pseudos,'jQuery.expr[":"] is now jQuery.expr.pseudos');var l=a.ajax;a.ajax=function(){var a=l.apply(this,arguments);return a.promise&&(d(a,"success",a.done,"jQXHR.success is deprecated and removed"),d(a,"error",a.fail,"jQXHR.error is deprecated and removed"),d(a,"complete",a.always,"jQXHR.complete is deprecated and removed")),a};var m=a.fn.removeAttr,n=a.fn.toggleClass,o=/\S+/g;a.fn.removeAttr=function(b){var d=this;return a.each(b.match(o),function(b,e){a.expr.match.bool.test(e)&&(c("jQuery.fn.removeAttr no longer sets boolean properties: "+e),d.prop(e,!1))}),m.apply(this,arguments)},a.fn.toggleClass=function(b){return void 0!==b&&"boolean"!=typeof b?n.apply(this,arguments):(c("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var c=this.getAttribute&&this.getAttribute("class")||"";c&&a.data(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||b===!1?"":a.data(this,"__className__")||"")}))};var p=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return p=!0,a=d.apply(this,arguments),p=!1,a})}),a.swap=function(a,b,d,e){var f,g,h={};p||c("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=d.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f};var q=a.data;a.data=function(b,d,e){var f;return d&&d!==a.camelCase(d)&&(f=a.hasData(b)&&q.call(this,b),f&&d in f)?(c("jQuery.data() always sets/gets camelCased names: "+d),arguments.length>2&&(f[d]=e),f[d]):q.apply(this,arguments)};var r=a.Tween.prototype.run;a.Tween.prototype.run=function(b){a.easing[this.easing].length>1&&(c('easing function "jQuery.easing.'+this.easing.toString()+'" should use only first argument'),a.easing[this.easing]=a.easing[this.easing].bind(a.easing,b,this.options.duration*b,0,1,this.options.duration)),r.apply(this,arguments)};var s=a.fn.load,t=a.event.fix;a.event.props=[],a.event.fixHooks={},a.event.fix=function(b){var d,e=b.type,f=this.fixHooks[e],g=a.event.props;if(g.length)for(c("jQuery.event.props are deprecated and removed: "+g.join());g.length;)a.event.addProp(g.pop());if(f&&!f._migrated_&&(f._migrated_=!0,c("jQuery.event.fixHooks are deprecated and removed: "+e),(g=f.props)&&g.length))for(;g.length;)a.event.addProp(g.pop());return d=t.call(this,b),f&&f.filter?f.filter(d,b):d},a.each(["load","unload","error"],function(b,d){a.fn[d]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===d&&"string"==typeof a[0]?s.apply(this,a):(c("jQuery.fn."+d+"() is deprecated"),a.splice(0,0,d),arguments.length?this.on.apply(this,aLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery Cookie Plugin
|
||||
* @see https://github.com/carhartl/jquery-cookie
|
||||
* @license MIT
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(function(e){function n(e){return u.raw?e:encodeURIComponent(e)}function o(e){return u.raw?e:decodeURIComponent(e)}function i(e){return n(u.json?JSON.stringify(e):String(e))}function t(e){0===e.indexOf('"')&&(e=e.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return e=decodeURIComponent(e.replace(c," ")),u.json?JSON.parse(e):e}catch(e){}}function r(n,o){var i=u.raw?n:t(n);return e.isFunction(o)?o(i):i}var c=/\+/g,u=e.cookie=function(t,c,s){if(arguments.length>1&&!e.isFunction(c)){if("number"==typeof(s=e.extend({},u.defaults,s)).expires){var d=s.expires,f=s.expires=new Date;f.setMilliseconds(f.getMilliseconds()+864e5*d)}return document.cookie=[n(t),"=",i(c),s.expires?"; expires="+s.expires.toUTCString():"",s.path?"; path="+s.path:"",s.domain?"; domain="+s.domain:"",s.secure?"; secure":""].join("")}for(var a=t?void 0:{},p=document.cookie?document.cookie.split("; "):[],l=0,m=p.length;l<m;l++){var x=p[l].split("="),g=o(x.shift()),j=x.join("=");if(t===g){a=r(j,c);break}t||void 0===(j=r(j))||(a[g]=j)}return a};u.defaults={},e.removeCookie=function(n,o){return e.cookie(n,"",e.extend({},o,{expires:-1})),!e.cookie(n)}});
|
||||
|
||||
|
||||
/**
|
||||
* @module Device.js
|
||||
* @see https://github.com/matthewhudson/device.js
|
||||
* @license MIT
|
||||
*/
|
||||
(function(){var n,e,o,t,i,r,d,a,c,l;e=window.device,n={},window.device=n,t=window.document.documentElement,l=window.navigator.userAgent.toLowerCase(),n.ios=function(){return n.iphone()||n.ipod()||n.ipad()},n.iphone=function(){return!n.windows()&&i("iphone")},n.ipod=function(){return i("ipod")},n.ipad=function(){return i("ipad")},n.android=function(){return!n.windows()&&i("android")},n.androidPhone=function(){return n.android()&&i("mobile")},n.androidTablet=function(){return n.android()&&!i("mobile")},n.blackberry=function(){return i("blackberry")||i("bb10")||i("rim")},n.blackberryPhone=function(){return n.blackberry()&&!i("tablet")},n.blackberryTablet=function(){return n.blackberry()&&i("tablet")},n.windows=function(){return i("windows")},n.windowsPhone=function(){return n.windows()&&i("phone")},n.windowsTablet=function(){return n.windows()&&i("touch")&&!n.windowsPhone()},n.fxos=function(){return(i("(mobile;")||i("(tablet;"))&&i("; rv:")},n.fxosPhone=function(){return n.fxos()&&i("mobile")},n.fxosTablet=function(){return n.fxos()&&i("tablet")},n.meego=function(){return i("meego")},n.cordova=function(){return window.cordova&&"file:"===location.protocol},n.nodeWebkit=function(){return"object"==typeof window.process},n.mobile=function(){return n.androidPhone()||n.iphone()||n.ipod()||n.windowsPhone()||n.blackberryPhone()||n.fxosPhone()||n.meego()},n.tablet=function(){return n.ipad()||n.androidTablet()||n.blackberryTablet()||n.windowsTablet()||n.fxosTablet()},n.desktop=function(){return!n.tablet()&&!n.mobile()},n.television=function(){var n,e=["googletv","viera","smarttv","internet.tv","netcast","nettv","appletv","boxee","kylo","roku","dlnadoc","roku","pov_tv","hbbtv","ce-html"];for(n=0;n<e.length;){if(i(e[n]))return!0;n++}return!1},n.portrait=function(){return window.innerHeight/window.innerWidth>1},n.landscape=function(){return window.innerHeight/window.innerWidth<1},n.noConflict=function(){return window.device=e,this},i=function(n){return-1!==l.indexOf(n)},d=function(n){var e;return e=new RegExp(n,"i"),t.className.match(e)},o=function(n){var e=null;d(n)||(e=t.className.replace(/^\s+|\s+$/g,""),t.className=e+" "+n)},c=function(n){d(n)&&(t.className=t.className.replace(" "+n,""))},n.ios()?n.ipad()?o("ios ipad tablet"):n.iphone()?o("ios iphone mobile"):n.ipod()&&o("ios ipod mobile"):n.android()?o(n.androidTablet()?"android tablet":"android mobile"):n.blackberry()?o(n.blackberryTablet()?"blackberry tablet":"blackberry mobile"):n.windows()?o(n.windowsTablet()?"windows tablet":n.windowsPhone()?"windows mobile":"desktop"):n.fxos()?o(n.fxosTablet()?"fxos tablet":"fxos mobile"):n.meego()?o("meego mobile"):n.nodeWebkit()?o("node-webkit"):n.television()?o("television"):n.desktop()&&o("desktop"),n.cordova()&&o("cordova"),r=function(){n.landscape()?(c("portrait"),o("landscape")):(c("landscape"),o("portrait"))},a=Object.prototype.hasOwnProperty.call(window,"onorientationchange")?"orientationchange":"resize",window.addEventListener?window.addEventListener(a,r,!1):window.attachEvent?window.attachEvent(a,r):window[a]=r,r(),"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return n}):"undefined"!=typeof module&&module.exports?module.exports=n:window.device=n}).call(this);
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery resize event
|
||||
* @see http://benalman.com/projects/jquery-resize-plugin/
|
||||
* @license MIT
|
||||
*/
|
||||
(function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this);
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery easing
|
||||
* @author George McGinley Smith
|
||||
* @see http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
* @license BSD
|
||||
* @version 1.4.0
|
||||
*/
|
||||
!function(n){"function"==typeof define&&define.amd?define(["jquery"],function(e){return n(e)}):"object"==typeof module&&"object"==typeof module.exports?exports=n(require("jquery")):n(jQuery)}(function(n){function e(n){var e=7.5625,t=2.75;return n<1/t?e*n*n:n<2/t?e*(n-=1.5/t)*n+.75:n<2.5/t?e*(n-=2.25/t)*n+.9375:e*(n-=2.625/t)*n+.984375}n.easing.jswing=n.easing.swing;var t=Math.pow,u=Math.sqrt,r=Math.sin,i=Math.cos,a=Math.PI,c=1.70158,o=1.525*c,s=2*a/3,f=2*a/4.5;n.extend(n.easing,{def:"easeOutQuad",swing:function(e){return n.easing[n.easing.def](e)},easeInQuad:function(n){return n*n},easeOutQuad:function(n){return 1-(1-n)*(1-n)},easeInOutQuad:function(n){return n<.5?2*n*n:1-t(-2*n+2,2)/2},easeInCubic:function(n){return n*n*n},easeOutCubic:function(n){return 1-t(1-n,3)},easeInOutCubic:function(n){return n<.5?4*n*n*n:1-t(-2*n+2,3)/2},easeInQuart:function(n){return n*n*n*n},easeOutQuart:function(n){return 1-t(1-n,4)},easeInOutQuart:function(n){return n<.5?8*n*n*n*n:1-t(-2*n+2,4)/2},easeInQuint:function(n){return n*n*n*n*n},easeOutQuint:function(n){return 1-t(1-n,5)},easeInOutQuint:function(n){return n<.5?16*n*n*n*n*n:1-t(-2*n+2,5)/2},easeInSine:function(n){return 1-i(n*a/2)},easeOutSine:function(n){return r(n*a/2)},easeInOutSine:function(n){return-(i(a*n)-1)/2},easeInExpo:function(n){return 0===n?0:t(2,10*n-10)},easeOutExpo:function(n){return 1===n?1:1-t(2,-10*n)},easeInOutExpo:function(n){return 0===n?0:1===n?1:n<.5?t(2,20*n-10)/2:(2-t(2,-20*n+10))/2},easeInCirc:function(n){return 1-u(1-t(n,2))},easeOutCirc:function(n){return u(1-t(n-1,2))},easeInOutCirc:function(n){return n<.5?(1-u(1-t(2*n,2)))/2:(u(1-t(-2*n+2,2))+1)/2},easeInElastic:function(n){return 0===n?0:1===n?1:-t(2,10*n-10)*r((10*n-10.75)*s)},easeOutElastic:function(n){return 0===n?0:1===n?1:t(2,-10*n)*r((10*n-.75)*s)+1},easeInOutElastic:function(n){return 0===n?0:1===n?1:n<.5?-t(2,20*n-10)*r((20*n-11.125)*f)/2:t(2,-20*n+10)*r((20*n-11.125)*f)/2+1},easeInBack:function(n){return 2.70158*n*n*n-c*n*n},easeOutBack:function(n){return 1+2.70158*t(n-1,3)+c*t(n-1,2)},easeInOutBack:function(n){return n<.5?t(2*n,2)*(7.189819*n-o)/2:(t(2*n-2,2)*((o+1)*(2*n-2)+o)+2)/2},easeInBounce:function(n){return 1-e(1-n)},easeOutBounce:e,easeInOutBounce:function(n){return n<.5?(1-e(1-2*n))/2:(1+e(2*n-1))/2}})});
|
||||
|
||||
/**
|
||||
* @module TouchSwipe
|
||||
* @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
|
||||
* @license MIT
|
||||
* @version 1.6.18
|
||||
*/
|
||||
!function(e){"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e("undefined"!=typeof module&&module.exports?require("jquery"):jQuery)}(function(e){"use strict";function n(n){return!n||void 0!==n.allowPageScroll||void 0===n.swipe&&void 0===n.swipeStatus||(n.allowPageScroll=c),void 0!==n.click&&void 0===n.tap&&(n.tap=n.click),n||(n={}),n=e.extend({},e.fn.swipe.defaults,n),this.each(function(){var r=e(this),i=r.data(D);i||(i=new t(this,n),r.data(D,i))})}function t(n,t){function P(n){if(!(ce()||e(n.target).closest(t.excludedElements,Ve).length>0)){var r=n.originalEvent?n.originalEvent:n;if(!r.pointerType||"mouse"!=r.pointerType||0!=t.fallbackToMouseEvents){var i,l=r.touches,o=l?l[0]:r;return We=y,l?ze=l.length:!1!==t.preventDefaultEvents&&n.preventDefault(),je=0,Ne=null,He=null,Xe=null,_e=0,qe=0,Qe=0,Ce=1,Fe=0,Ye=we(),ue(),pe(0,o),!l||ze===t.fingers||t.fingers===T||X()?(Ze=Oe(),2==ze&&(pe(1,l[1]),qe=Qe=be(Ge[0].start,Ge[1].start)),(t.swipeStatus||t.pinchStatus)&&(i=j(r,We))):i=!1,!1===i?(We=x,j(r,We),i):(t.hold&&(nn=setTimeout(e.proxy(function(){Ve.trigger("hold",[r.target]),t.hold&&(i=t.hold.call(Ve,r,r.target))},this),t.longTapThreshold)),se(!0),null)}}}function L(e){var n=e.originalEvent?e.originalEvent:e;if(We!==m&&We!==x&&!ae()){var r,i=n.touches,l=fe(i?i[0]:n);if(Be=Oe(),i&&(ze=i.length),t.hold&&clearTimeout(nn),We=E,2==ze&&(0==qe?(pe(1,i[1]),qe=Qe=be(Ge[0].start,Ge[1].start)):(fe(i[1]),Qe=be(Ge[0].end,Ge[1].end),Xe=Ee(Ge[0].end,Ge[1].end)),Ce=ye(qe,Qe),Fe=Math.abs(qe-Qe)),ze===t.fingers||t.fingers===T||!i||X()){if(Ne=Se(l.start,l.end),He=Se(l.last,l.end),C(e,He),je=me(l.start,l.end),_e=Te(),de(Ne,je),r=j(n,We),!t.triggerOnTouchEnd||t.triggerOnTouchLeave){var o=!0;if(t.triggerOnTouchLeave){var u=Me(this);o=De(l.end,u)}!t.triggerOnTouchEnd&&o?We=U(E):t.triggerOnTouchLeave&&!o&&(We=U(m)),We!=x&&We!=m||j(n,We)}}else We=x,j(n,We);!1===r&&(We=x,j(n,We))}}function R(e){var n=e.originalEvent?e.originalEvent:e,r=n.touches;if(r){if(r.length&&!ae())return oe(n),!0;if(r.length&&ae())return!0}return ae()&&(ze=Ke),Be=Oe(),_e=Te(),_()||!H()?(We=x,j(n,We)):t.triggerOnTouchEnd||!1===t.triggerOnTouchEnd&&We===E?(!1!==t.preventDefaultEvents&&!1!==e.cancelable&&e.preventDefault(),We=m,j(n,We)):!t.triggerOnTouchEnd&&B()?(We=m,N(n,We,h)):We===E&&(We=x,j(n,We)),se(!1),null}function k(){ze=0,Be=0,Ze=0,qe=0,Qe=0,Ce=1,ue(),se(!1)}function A(e){var n=e.originalEvent?e.originalEvent:e;t.triggerOnTouchLeave&&(We=U(m),j(n,We))}function I(){Ve.unbind(Re,P),Ve.unbind(Ue,k),Ve.unbind(ke,L),Ve.unbind(Ae,R),Ie&&Ve.unbind(Ie,A),se(!1)}function U(e){var n=e,r=Q(),i=H(),l=_();return!r||l?n=x:!i||e!=E||t.triggerOnTouchEnd&&!t.triggerOnTouchLeave?!i&&e==m&&t.triggerOnTouchLeave&&(n=x):n=m,n}function j(e,n){var t,r=e.touches;return(z()||W())&&(t=N(e,n,p)),(Y()||X())&&!1!==t&&(t=N(e,n,f)),ie()&&!1!==t?t=N(e,n,d):le()&&!1!==t?t=N(e,n,g):re()&&!1!==t&&(t=N(e,n,h)),n===x&&k(e),n===m&&(r?r.length||k(e):k(e)),t}function N(n,c,s){var w;if(s==p){if(Ve.trigger("swipeStatus",[c,Ne||null,je||0,_e||0,ze,Ge,He]),t.swipeStatus&&!1===(w=t.swipeStatus.call(Ve,n,c,Ne||null,je||0,_e||0,ze,Ge,He)))return!1;if(c==m&&V()){if(clearTimeout(en),clearTimeout(nn),Ve.trigger("swipe",[Ne,je,_e,ze,Ge,He]),t.swipe&&!1===(w=t.swipe.call(Ve,n,Ne,je,_e,ze,Ge,He)))return!1;switch(Ne){case r:Ve.trigger("swipeLeft",[Ne,je,_e,ze,Ge,He]),t.swipeLeft&&(w=t.swipeLeft.call(Ve,n,Ne,je,_e,ze,Ge,He));break;case i:Ve.trigger("swipeRight",[Ne,je,_e,ze,Ge,He]),t.swipeRight&&(w=t.swipeRight.call(Ve,n,Ne,je,_e,ze,Ge,He));break;case l:Ve.trigger("swipeUp",[Ne,je,_e,ze,Ge,He]),t.swipeUp&&(w=t.swipeUp.call(Ve,n,Ne,je,_e,ze,Ge,He));break;case o:Ve.trigger("swipeDown",[Ne,je,_e,ze,Ge,He]),t.swipeDown&&(w=t.swipeDown.call(Ve,n,Ne,je,_e,ze,Ge,He))}}}if(s==f){if(Ve.trigger("pinchStatus",[c,Xe||null,Fe||0,_e||0,ze,Ce,Ge]),t.pinchStatus&&!1===(w=t.pinchStatus.call(Ve,n,c,Xe||null,Fe||0,_e||0,ze,Ce,Ge)))return!1;if(c==m&&F())switch(Xe){case u:Ve.trigger("pinchIn",[Xe||null,Fe||0,_e||0,ze,Ce,Ge]),t.pinchIn&&(w=t.pinchIn.call(Ve,n,Xe||null,Fe||0,_e||0,ze,Ce,Ge));break;case a:Ve.trigger("pinchOut",[Xe||null,Fe||0,_e||0,ze,Ce,Ge]),t.pinchOut&&(w=t.pinchOut.call(Ve,n,Xe||null,Fe||0,_e||0,ze,Ce,Ge))}}return s==h?c!==x&&c!==m||(clearTimeout(en),clearTimeout(nn),J()&&!ee()?($e=Oe(),en=setTimeout(e.proxy(function(){$e=null,Ve.trigger("tap",[n.target]),t.tap&&(w=t.tap.call(Ve,n,n.target))},this),t.doubleTapThreshold)):($e=null,Ve.trigger("tap",[n.target]),t.tap&&(w=t.tap.call(Ve,n,n.target)))):s==d?c!==x&&c!==m||(clearTimeout(en),clearTimeout(nn),$e=null,Ve.trigger("doubletap",[n.target]),t.doubleTap&&(w=t.doubleTap.call(Ve,n,n.target))):s==g&&(c!==x&&c!==m||(clearTimeout(en),$e=null,Ve.trigger("longtap",[n.target]),t.longTap&&(w=t.longTap.call(Ve,n,n.target)))),w}function H(){var e=!0;return null!==t.threshold&&(e=je>=t.threshold),e}function _(){var e=!1;return null!==t.cancelThreshold&&null!==Ne&&(e=ge(Ne)-je>=t.cancelThreshold),e}function q(){return null===t.pinchThreshold||Fe>=t.pLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Popper.js
|
||||
* @author Federico Zivolo
|
||||
* @see https://github.com/FezVrasta/popper.js
|
||||
* @license MIT
|
||||
* @version 1.11.0
|
||||
*/
|
||||
(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var f=a.commonAncestorContainer;if(e!==f&&t!==f||i.contains(n))return p(f)?f:r(f);var l=s(e);return l.host?d(l.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=window.document.documentElement,r=window.document.scrollingElement||n;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function l(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return+e['border'+o+'Width'].split('px')[0]+ +e['border'+i+'Width'].split('px')[0]}function m(e,t,o,i){return _(t['offset'+e],o['client'+e],o['offset'+e],ie()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function h(){var e=window.document.body,t=window.document.documentElement,o=ie()&&window.getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function c(e){return se({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ie())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},p='HTML'===e.nodeName?h():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,f=e.offsetWidth-s,m=e.offsetHeight-d;if(f||m){var g=t(e);f-=l(g,'x'),m-=l(g,'y'),r.width-=f,r.height-=m}return c(r)}function u(e,o){var i=ie(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),l=+a.borderTopWidth.split('px')[0],m=+a.borderLeftWidth.split('px')[0],h=c({top:p.top-s.top-l,left:p.left-s.left-m,width:p.width,height:p.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=+a.marginTop.split('px')[0],b=+a.marginLeft.split('px')[0];h.top-=l-u,h.bottom-=l-u,h.left-=m-b,h.right-=m-b,h.marginTop=u,h.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(h=f(h,o)),h}function b(e){var t=window.document.documentElement,o=u(e,t),i=_(t.clientWidth,window.innerWidth||0),n=_(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return c(s)}function y(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||y(o(e))}function w(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(e)),'BODY'===a.nodeName&&(a=window.document.documentElement)):'window'===r?a=window.document.documentElement:a=r;var f=u(a,s);if('HTML'===a.nodeName&&!y(s)){var l=h(),m=l.height,c=l.width;p.top+=f.top-f.marginTop,p.bottom=m+f.top,p.left+=f.left-f.marginLeft,p.right=c+f.left}else p=f}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function v(e){var t=e.width,o=e.height;return t*o}function E(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=w(o,i,r,n),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return se({key:e},s[e],{area:v(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),f=0<a.length?a[0].key:d[0].key,l=e.split('-')[1];return f+(l?'-'+l:'')}function x(e,t,o){var i=d(t,o);return u(o,i)}function O(e){var t=window.getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o};return n}function L(e){var t={left:'right',rLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Bootstrap
|
||||
* @author Twitter, Inc.
|
||||
* @see http://getbootstrap.com
|
||||
* @license MIT
|
||||
* @version 4.0.0beta2
|
||||
*/
|
||||
var bootstrap=function(t,e,n){"use strict";function i(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)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}}}function i(){if(window.QUnit)return!1;var t=document.createElement("bootstrap");for(var e in o)if("undefined"!=typeof t.style[e])return{end:o[e]};return!1}function s(t){var n=this,i=!1;return e(this).one(a.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||a.triggerTransitionEnd(n)},t),this}var r=!1,o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},a={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var n=t.getAttribute("data-target");n&&"#"!==n||(n=t.getAttribute("href")||"");try{return e(document).find(n).length>0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(r.end)},supportsTransitionEnd:function(){return Boolean(r)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){var r=i[s],o=n[s],l=o&&a.isElement(o)?"element":t(o);if(!new RegExp(r).test(l))throw new Error(e.toUpperCase()+': Option "'+s+'" provided type "'+l+'" but expected type "'+r+'".')}}};return r=i(),e.fn.emulateTransitionEnd=s,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),r=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t},o=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e},a=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},o={ALERT:"alert",FADE:"fade",SHOW:"show"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+o.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(o.SHOW),s.supportsTransitionEnd()&&e(t).hasClass(o.FADE)?e(t).one(s.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.alert");s||(s=new t(this),i.data("bs.alert",s)),"close"===n&&s[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,a._handleDismiss(new a)),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),l=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},s={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,r=e(this._element).closest(s.DATA_TOGGLE)[0];if(r){var o=e(this._element).find(s.INPUT)[0];if(o){if("radio"===o.type)if(o.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(r).find(s.ACTIVE)[0];a&&e(a).removeClass(i.ACTIVE)}if(t){if(o.hasAttribute("disabled")||r.hasAttribute("disabled")||o.classList.contains("disabled")||r.classList.contains("disabled"))return;o.checked=!e(this._element).hasClass(i.ACTIVE),e(o).trigger("change")}o.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,s.DATA_TOGGLE_CARROT,function(t){t.preventDefault();Line truncated
|
||||
|
||||
/**
|
||||
* @module Regula
|
||||
* @description An annotation-based form-validation framework in Javascript
|
||||
* @license BSD
|
||||
* @version 1.3.4
|
||||
* @copyright Robert Nyman, http://www.robertnyman.com
|
||||
*/
|
||||
(function(e,t){typeof define=="function"&&define.amd?define("utils/MapUtils",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.MapUtils=t())})(this,function(){return{iterateOverMap:function(e,t){var n=0;for(var r in e)e.hasOwnProperty(r)&&r!=="__size__"&&(t.call(e,r,e[r],n),n++)},exists:function(e,t){var n=!1,r=0;while(!n&&r<e.length)n=t==e[r],r++;return n},put:function(e,t,n){e.__size__||(e.__size__=0),e[t]||e.__size__++,e[t]=n},isEmpty:function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}}}),function(e,t){typeof define=="function"&&define.amd?define("utils/DOMUtils",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.DOMUtils=t())}(this,function(){function t(e,t,n,r){var i=t=="*"&&e.all?e.all:e.getElementsByTagName(t),s=[],o=typeof r!="undefined"?new RegExp("(^|\\s)"+r+"(\\s|$)"):null,u,a;for(var f=0;f<i.length;f++)u=i[f],a=u.getAttribute&&u.getAttribute(n),typeof a=="string"&&a.length>0&&(typeof r=="undefined"||o&&o.test(a))&&s.push(u);return s}function n(e,t){var n=e.getAttribute&&e.getAttribute(t)||null;if(!n){var r=e.attributes;for(var i=0;i<r.length;i++)r[i].nodeName===t&&(n=r[i].nodeValue)}return n}function r(){return"regula-generated-"+Math.floor(Math.random()*1e6)}function i(){return typeof document.createElement("input").checkValidity=="function"}var e={form:"The form",select:"The select box",textarea:"The text area",checkbox:"The checkbox",radio:"The radio button",text:"The text field",password:"The password",email:"The email",url:"The URL",number:"The number",datetime:"The datetime","datetime-local":"The local datetime",date:"The date",month:"The month",time:"The time",week:"The week",range:"The range",tel:"The telephone number",color:"The color"};return{friendlyInputNames:e,getElementsByAttribute:t,getAttributeValueForElement:n,generateRandomId:r,supportsHTML5Validation:i}}),function(e,t){typeof define=="function"&&define.amd?define("service/GroupService",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.GroupService=t())}(this,function(){var e={Default:0},t={0:"Default"},n=[],r=1;return{Group:e,ReverseGroup:t,deletedGroupIndices:n,firstCustomGroupIndex:r}}),function(e,t){typeof define=="function"&&define.amd?define("utils/ArrayUtils",t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.ArrayUtils=t())}(this,function(){function e(e,t){var n="";for(var r=0;r<e.length;r++)n+=e[r]+t;return n.replace(new RegExp(t+"$"),"")}return{explode:e}}),function(e,t){typeof define=="function"&&define.amd?define("service/ExceptionService",["utils/ArrayUtils"],t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.ExceptionService=t(e.regulaModules.ArrayUtils))}(this,function(e){function i(e,t,n){var r="";return e!=null?(r=e.id,t==""||t==null||t==undefined?r+=": ":r+="."+t+": "):t!=""&&t!=null&&t!=undefined&&(r="@"+t+": "),r+n}function s(t){var n="Function received: {";for(var r in t)t.hasOwnProperty(r)&&(typeof t[r]=="string"?n+=r+": "+t[r]+", ":t[r]instanceof Array&&(n+=r+": ["+e.explode(t[r],", ")+"], "));return n=n.replace(/, $/,"")+"}",n}var t={IllegalArgumentException:function(e){this.name="IllegalArgumentException",this.message=e},ConstraintDefinitionException:function(e){this.name="ConstraintDefinitionException",this.message=e},BindException:function(e){this.name="BindException",this.message=e},MissingFeatureException:function(e){this.name="MissingFeatureException",this.message=e}};for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];r.prototype=new Error,r.prototype.constructor=r}return{Exception:t,generateExceptionMessage:i,explodeParameters:s}}),function(e,t){typeof define=="function"&&define.amd?define("service/ValidationService",["utils/DOMUtils","utils/MapUtils","service/GroupService","service/ExceptionService","utils/ArrayUtils"],t):(typeof e.regulaModules=="undefined"&&(e.regulaModules={}),e.regulaModules.ValidationService=t(e.regulaModules.DOMUtils,e.regulaModules.MapUtils,e.regulaModules.GroupService,e.regulaModules.ExceptionService,e.regulaModules.ArrayUtils))}(this,function(e,t,n,r,i){function h(e){for(var t in e)e.hasOwnProperty(t)&&v(t,e)}function p(e){s=e.config,o=e.ReverseConstraint,u=e.constraintDefinitions,a=e.boundConstraints}function v(e,t){var n=t[e],i=e.replace(/(^[A-Z]+)/,function(e){return e.toLowerCase()});n.async?c[i]=function(t,i,s){if(typeof s=="undefined")throw new r.Exception.IllegalArgumentException(e+" is an asynchronous constraint, but you have not provided a callback.");return n.validator.call(t,i,c,s)}:c[i]=function(e,t){return n.validator.call(e,t,c)}}function m(e,n,r,i){function a(n,r){var i={};for(var s in n)n.hasOwnProperty(s)&&s!="__size__"&&t.put(i,s,n[s]);if(r.length>0)for(var s in e)e.hasOwnProperty(s)&&s!="__size__"&&t.put(i,s,e[s]);return i}function f(e,t,n,i){var s=o[y.constraintType],a=W(t,s,i),f={group:n,constraintName:e.constraintName,custom:u[s].custom,compound:u[s].compound,async:u[s].async,constraintParameters:yLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery Form Plugin
|
||||
* @author M. Alsup
|
||||
* @see http://malsup.com/jquery/form/
|
||||
* @license MIT and GPL
|
||||
* @version 3.51
|
||||
*/
|
||||
!function(e){"use strict";"function"==typeof define&&define.amd?define(["../jquery"],e):e("undefined"!=typeof jQuery?jQuery:window.Zepto)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=this;if(i.clk=r,"image"==r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n={};n.fileapi=void 0!==e("<input type='file'/>").get(0).files,n.formdata=void 0!==window.FormData;var i=!!e.fn.prop;e.fn.attr2=function(){if(!i)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t){function r(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;o>a;a++)i[a]=i[a].replace(/\+/g," "),n=i[a].split("="),s.push([decodeURIComponent(n[0]),decodeURIComponent(n[1])]);return s}function o(a){for(var n=new FormData,i=0;i<a.length;i++)n.append(a[i].name,a[i].value);if(t.extraData){var o=r(t.extraData);for(i=0;i<o.length;i++)o[i]&&n.append(o[i][0],o[i][1])}t.data=null;var s=e.extend(!0,{},e.ajaxSettings,t,{contentType:!1,processData:!1,cache:!1,type:u||"POST"});t.uploadProgress&&(s.xhr=function(){var r=e.ajaxSettings.xhr();return r.upload&&r.upload.addEventListener("progress",function(e){var r=0,a=e.loaded||e.position,n=e.total;e.lengthComputable&&(r=Math.ceil(a/n*100)),t.uploadProgress(e,a,n,r)},!1),r}),s.data=null;var c=s.beforeSend;return s.beforeSend=function(e,r){r.data=t.formData?t.formData:n,c&&c.call(this,e,r)},e.ajax(s)}function s(r){function n(e){var t=null;try{e.contentWindow&&(t=e.contentWindow.document)}catch(r){a("cannot get iframe.contentWindow document: "+r)}if(t)return t;try{t=e.contentDocument?e.contentDocument:e.document}catch(r){a("cannot get iframe.contentDocument: "+r),t=e.document}return t}function o(){function t(){try{var e=n(g).readyState;a("state = "+e),e&&"uninitialized"==e.toLowerCase()&&setTimeout(t,50)}catch(r){a("Server abort: ",r," (",r.name,")"),s(k),j&&clearTimeout(j),j=void 0}}var r=f.attr2("target"),i=f.attr2("action"),o="multipart/form-data",c=f.attr("enctype")||f.attr("encoding")||o;w.setAttribute("target",p),(!u||/post/i.test(u))&&w.setAttribute("method","POST"),i!=m.url&&w.setAttribute("action",m.url),m.skipEncodingOverride||u&&!/post/i.test(u)||f.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),m.timeout&&(j=setTimeout(function(){T=!0,s(D)},m.timeout));var l=[];try{if(m.extraData)for(var d in m.extraData)m.extraData.hasOwnProperty(d)&&l.push(e.isPlainObject(m.extraData[d])&&m.extraData[d].hasOwnProperty("name")&&m.extraData[d].hasOwnProperty("value")?e('<input type="hidden" name="'+m.extraData[d].name+'">').val(m.extraData[d].value).appendTo(w)[0]:e('<input type="hidden" name="'+d+'">').val(m.extraData[d]).appendTo(w)[0]);m.iframeTarget||v.appendTo("body"),g.attachEvent?g.attachEvent("onload",s):g.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(h){var x=document.createElement("form").submit;x.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",c),r?w.setAttribute("target",r):f.removeAttr("target"),e(l).remove()}}function s(t){if(!x.aborted&&!F){if(M=n(g),M||(a("cannot access response document"),t=k),t===D&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t==k&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(M&&M.location.href!=m.iframeSrc||T){g.detachEvent?g.detachEvent("onload",s):g.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"==m.dataType||M.XMLDocument||e.isXMLDoc(M);if(a("isXml="+o),!o&&window.opera&&(null===M.body||!M.body.innerHTML)&&--O)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=M.body?M.body:M.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=M.XMLDocument?M.XMLDocument:M,o&&(m.dataType="xml"),x.getResponseHeader=function(e){var t={"content-type":m.dataType};return t[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(m.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||m.textarea){var f=M.getElementsByTagName("textarea")[0];if(f)x.responseText=f.value,x.status=Number(f.getAttribute("status"))||x.status,x.statusText=f.getAttribute("statusText")||x.statusText;else if(l){var p=M.getElementsByTagName("prLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module RDInputLabel
|
||||
* @author Evgeniy Gusarov
|
||||
* @license MIT
|
||||
*/
|
||||
(function(){!function(t,e,i){var s,n;return n=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isWebkit=/safari|chrome/i.test(navigator.userAgent),s=function(){function s(s,n){this.options=t.extend(!0,{},this.Defaults,n),this.$element=t(s).addClass("rd-input-label"),this.$target=t("#"+this.$element.attr("for")),this.$win=t(i),this.$doc=t(e),this.initialize()}return s.prototype.Defaults={callbacks:null},s.prototype.initialize=function(){return this.$target.on("input",t.proxy(this.change,this)).on("focus",t.proxy(this.focus,this)).on("blur",t.proxy(this.blur,this)).on("hover",t.proxy(this.hover,this)).parents("form").on("reset",t.proxy(this.reset,this)),this.change(),this.hover(),this},s.prototype.hover=function(){return isWebkit&&(this.$target.is(":-webkit-autofill")?this.$element.addClass("auto-fill"):this.$element.removeClass("auto-fill")),this},s.prototype.change=function(){return isWebkit&&(this.$target.is(":-webkit-autofill")?this.$element.addClass("auto-fill"):this.$element.removeClass("auto-fill")),""!==this.$target.val()?(this.$element.hasClass("focus")||this.focus(),this.$element.addClass("not-empty")):this.$element.removeClass("not-empty"),this},s.prototype.focus=function(){return this.$element.addClass("focus"),this},s.prototype.reset=function(){return setTimeout(t.proxy(this.blur,this)),this},s.prototype.blur=function(t){return""===this.$target.val()&&this.$element.removeClass("focus").removeClass("not-empty"),this},s}(),t.fn.extend({RDInputLabel:function(e){return this.each(function(){var i;return i=t(this),i.data("RDInputLabel")?void 0:i.data("RDInputLabel",new s(this,e))})}}),i.RDInputLabel=s}(window.jQuery,document,window),"undefined"!=typeof module&&null!==module?module.exports=window.RDInputLabel:"function"==typeof define&&define.amd&&define(["jquery"],function(){"use strict";return window.RDInputLabel})}).call(this);
|
||||
|
||||
|
||||
/**
|
||||
* @module Owl carousel
|
||||
* @version 2.3.0 (beta)
|
||||
* @author Bartosz Wojciechowski
|
||||
* @license MIT
|
||||
*/
|
||||
!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,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",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;d>c;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.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settinLine truncated
|
||||
},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("busy")||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('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},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:['<span aria-label="prev">‹</span>','<span aria-label="next">›</span>'],navSpeed:!1,navElement:'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("<div>").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(Line truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Isotope PACKAGED
|
||||
* @license GPLv3
|
||||
* @see http://isotope.metafizzy.co
|
||||
* @version 2.2.2
|
||||
*/
|
||||
!function(t){function e(){}function i(t){function i(e){e.prototype.option||(e.prototype.option=function(e){t.isPlainObject(e)&&(this.options=t.extend(!0,this.options,e))})}function n(e,i){t.fn[e]=function(n){if("string"==typeof n){for(var s=o.call(arguments,1),a=0,u=this.length;u>a;a++){var p=this[a],h=t.data(p,e);if(h)if(t.isFunction(h[n])&&"_"!==n.charAt(0)){var f=h[n].apply(h,s);if(void 0!==f)return f}else r("no such method '"+n+"' for "+e+" instance");else r("cannot call methods on "+e+" prior to initialization; attempted to call '"+n+"'")}return this}return this.each(function(){var o=t.data(this,e);o?(o.option(n),o._init()):(o=new i(this,n),t.data(this,e,o))})}}if(t){var r="undefined"==typeof console?e:function(t){console.error(t)};return t.bridget=function(t,e){i(e),n(t,e)},t.bridget}}var o=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],i):i("object"==typeof exports?require("jquery"):t.jQuery)}(window),function(t){function e(e){var i=t.event;return i.target=i.target||i.srcElement||e,i}var i=document.documentElement,o=function(){};i.addEventListener?o=function(t,e,i){t.addEventListener(e,i,!1)}:i.attachEvent&&(o=function(t,i,o){t[i+o]=o.handleEvent?function(){var i=e(t);o.handleEvent.call(o,i)}:function(){var i=e(t);o.call(t,i)},t.attachEvent("on"+i,t[i+o])});var n=function(){};i.removeEventListener?n=function(t,e,i){t.removeEventListener(e,i,!1)}:i.detachEvent&&(n=function(t,e,i){t.detachEvent("on"+e,t[e+i]);try{delete t[e+i]}catch(o){t[e+i]=void 0}});var r={bind:o,unbind:n};"function"==typeof define&&define.amd?define("eventie/eventie",r):"object"==typeof exports?module.exports=r:t.eventie=r}(window),function(){"use strict";function t(){}function e(t,e){for(var i=t.length;i--;)if(t[i].listener===e)return i;return-1}function i(t){return function(){return this[t].apply(this,arguments)}}var o=t.prototype,n=this,r=n.EventEmitter;o.getListeners=function(t){var e,i,o=this._getEvents();if(t instanceof RegExp){e={};for(i in o)o.hasOwnProperty(i)&&t.test(i)&&(e[i]=o[i])}else e=o[t]||(o[t]=[]);return e},o.flattenListeners=function(t){var e,i=[];for(e=0;e<t.length;e+=1)i.push(t[e].listener);return i},o.getListenersAsObject=function(t){var e,i=this.getListeners(t);return i instanceof Array&&(e={},e[t]=i),e||i},o.addListener=function(t,i){var o,n=this.getListenersAsObject(t),r="object"==typeof i;for(o in n)n.hasOwnProperty(o)&&-1===e(n[o],i)&&n[o].push(r?i:{listener:i,once:!1});return this},o.on=i("addListener"),o.addOnceListener=function(t,e){return this.addListener(t,{listener:e,once:!0})},o.once=i("addOnceListener"),o.defineEvent=function(t){return this.getListeners(t),this},o.defineEvents=function(t){for(var e=0;e<t.length;e+=1)this.defineEvent(t[e]);return this},o.removeListener=function(t,i){var o,n,r=this.getListenersAsObject(t);for(n in r)r.hasOwnProperty(n)&&-1!==(o=e(r[n],i))&&r[n].splice(o,1);return this},o.off=i("removeListener"),o.addListeners=function(t,e){return this.manipulateListeners(!1,t,e)},o.removeListeners=function(t,e){return this.manipulateListeners(!0,t,e)},o.manipulateListeners=function(t,e,i){var o,n,r=t?this.removeListener:this.addListener,s=t?this.removeListeners:this.addListeners;if("object"!=typeof e||e instanceof RegExp)for(o=i.length;o--;)r.call(this,e,i[o]);else for(o in e)e.hasOwnProperty(o)&&(n=e[o])&&("function"==typeof n?r.call(this,o,n):s.call(this,o,n));return this},o.removeEvent=function(t){var e,i=typeof t,o=this._getEvents();if("string"===i)delete o[t];else if(t instanceof RegExp)for(e in o)o.hasOwnProperty(e)&&t.test(e)&&delete o[e];else delete this._events;return this},o.removeAllListeners=i("removeEvent"),o.emitEvent=function(t,e){var i,o,n,r=this.getListenersAsObject(t);for(n in r)if(r.hasOwnProperty(n))for(o=r[n].length;o--;)!0===(i=r[n][o]).once&&this.removeListener(t,i.listener),i.listener.apply(this,e||[])===this._getOnceReturnValue()&&this.removeListener(t,i.listener);return this},o.trigger=i("emitEvent"),o.emit=function(t){var e=Array.prototype.slice.call(arguments,1);return this.emitEvent(t,e)},o.setOnceReturnValue=function(t){return this._onceReturnValue=t,this},o._getOnceReturnValue=function(){return!this.hasOwnProperty("_onceReturnValue")||this._onceReturnValue},o._getEvents=function(){return this._events||(this._events={})},t.noConflict=function(){return n.EventEmitter=r,t},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.EventEmitter=t}.call(this),function(t){function e(t){if(t){if("string"==typeof o[t])return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e,n=0,r=i.length;r>n;n++)if(e=i[n]+t,"string"==typeof o[e])return e}}var i="Webkit Moz ms Ms O".split(" "),o=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return e}):"object"==typeof exports?module.exports=e:t.getStyleProperty=e}(window),function(t,eLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module RD Navbar
|
||||
* @author Evgeniy Gusarov
|
||||
* @see https://ua.linkedin.com/pub/evgeniy-gusarov/8a/a40/54a
|
||||
* @version 2.2.5
|
||||
*/
|
||||
(function(){var t;t="ontouchstart"in window,function(e,n,o){var a;a=function(){function a(t,a){this.options=e.extend(!0,{},this.Defaults,a),this.$element=e(t),this.$clone=null,this.$win=e(o),this.$doc=e(n),this.currentLayout=this.options.layout,this.loaded=!1,this.focusOnHover=this.options.focusOnHover,this.focusTimer=!1,this.cloneTimer=!1,this.isStuck=!1,this.initialize()}return a.prototype.Defaults={layout:"rd-navbar-static",deviceLayout:"rd-navbar-fixed",focusOnHover:!0,focusOnHoverTimeout:800,linkedElements:["html"],domAppend:!0,stickUp:!0,stickUpClone:!0,stickUpOffset:"100%",anchorNav:!0,anchorNavSpeed:400,anchorNavOffset:0,anchorNavEasing:"swing",autoHeight:!0,responsive:{0:{layout:"rd-navbar-fixed",deviceLayout:"rd-navbar-fixed",focusOnHover:!1,stickUp:!1},992:{layout:"rd-navbar-static",deviceLayout:"rd-navbar-static",focusOnHover:!0,stickUp:!0}},callbacks:{onToggleSwitch:!1,onToggleClose:!1,onDomAppend:!1,onDropdownOver:!1,onDropdownOut:!1,onDropdownToggle:!1,onDropdownClose:!1,onStuck:!1,onUnstuck:!1,onAnchorChange:!1}},a.prototype.initialize=function(){var e;return(e=this).$element.addClass("rd-navbar").addClass(e.options.layout),t&&e.$element.addClass("rd-navbar--is-touch"),e.options.domAppend&&e.createNav(e),e.options.stickUpClone&&e.createClone(e),e.$element.addClass("rd-navbar-original"),e.addAdditionalClassToToggles(e,".rd-navbar-original","toggle-original","toggle-original-elements"),e.applyHandlers(e),e.offset=e.$element.offset().top,e.height=e.$element.outerHeight(),e.loaded=!0,e},a.prototype.resize=function(n,o){var a,s;return s=t?n.getOption("deviceLayout"):n.getOption("layout"),a=n.$element.add(n.$clone),s===n.currentLayout&&n.loaded||(n.switchClass(a,n.currentLayout,s),null!=n.options.linkedElements&&e.grep(n.options.linkedElements,function(t,e){return n.switchClass(t,n.currentLayout+"-linked",s+"-linked")}),n.currentLayout=s),n.focusOnHover=n.getOption("focusOnHover"),n},a.prototype.stickUp=function(t,n){var o,a,s,r,i;return a=t.getOption("stickUp"),(e("html").hasClass("ios")||t.$element.hasClass("rd-navbar-fixed"))&&(a=!1),o=t.$doc.scrollTop(),r=null!=t.$clone?t.$clone:t.$element,s=t.getOption("stickUpOffset"),i="string"==typeof s?s.indexOf("%")>0?parseFloat(s)*t.height/100:parseFloat(s):s,a?(o>=i&&!t.isStuck||o<i&&t.isStuck)&&(t.$element.add(t.$clone).find("[data-rd-navbar-toggle]").each(function(){e.proxy(t.closeToggle,this)(t,!1)}).end().find(".rd-navbar-submenu").removeClass("opened").removeClass("focus"),o>=i&&!t.isStuck&&!t.$element.hasClass("rd-navbar-fixed")?(t.options.callbacks.onStuck&&t.options.callbacks.onStuck.call(t),setTimeout(function(){"resize"===n.type?t.switchClass(r,"","rd-navbar--is-stuck"):r.addClass("rd-navbar--is-stuck"),t.isStuck=!0},navigator.platform.match(/(Mac)/i)?10:0)):("resize"===n.type?t.switchClass(r,"rd-navbar--is-stuck",""):r.removeClass("rd-navbar--is-stuck").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",e.proxy(t.resizeWrap,t,n)),t.isStuck=!1,t.options.callbacks.onUnstuck&&t.options.callbacks.onUnstuck.call(t))):(t.$element.find(".rd-navbar-submenu").removeClass("opened").removeClass("focus"),t.isStuck&&(t.switchClass(r,"rd-navbar--is-stuck",""),t.isStuck=!1,t.resizeWrap(n))),t},a.prototype.resizeWrap=function(t){var e,n;if(null==(n=this).$clone&&!n.isStuck)return e=n.$element.parent(),n.getOption("autoHeight")?(n.height=n.$element.outerHeight(),"resize"===t.type?(e.addClass("rd-navbar--no-transition").css("height",n.height),e[0].offsetHeight,e.removeClass("rd-navbar--no-transition")):e.css("height",n.height)):void e.css("height","auto")},a.prototype.createNav=function(t){return t.$element.find(".rd-navbar-dropdown, .rd-navbar-megamenu").each(function(){var t;return t=e(this),this.getBoundingClientRect(),t.hasClass("rd-navbar-megamenu")?t.parent().addClass("rd-navbar--has-megamenu"):t.parent().addClass("rd-navbar--has-dropdown")}).parents("li").addClass("rd-navbar-submenu"),e('<span class="rd-navbar-submenu-toggle"></span>').insertAfter(t.$element.find(".rd-navbar-nav li.rd-navbar-submenu > a")),t.options.callbacks.onDomAppend&&t.options.callbacks.onDomAppend.call(this),t},a.prototype.createClone=function(t){return t.$clone=t.$element.clone().insertAfter(t.$element).addClass("rd-navbar--is-clone"),t.addAdditionalClassToToggles(t,".rd-navbar--is-clone","toggle-cloned","toggle-cloned-elements"),t},a.prototype.closeToggle=function(t,n){var o,a,s,r,i,l,c;return a=e(n.target),i=!1,l=this.getAttribute("data-rd-navbar-toggle"),t.options.stickUpClone&&t.isStuck?(r=".toggle-cloned",s=".toggle-cloned-elements",c=!a.hasClass("toggle-cloned")):(r=".toggle-original",s=".toggle-original-elements",c=!a.hasClass("toggle-original")),n.target!==this&&!a.parents(r+"[data-rd-navbar-toggle]").length&&!a.parents(s).length&&l&&c&&((o=t.$element.find(l).add(e(this))).each(function(){if(!i)return i=!0===(n.target===this||e.contains(this,n.target))}),i||(o.add(this).removeClass("active"),t.options.callbacks.onToggleClose&&t.options.callbacks.onToLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module UIToTop
|
||||
* @author Matt Varone
|
||||
* @see http://www.mattvarone.com/web-design/uitotop-jquery-plugin/
|
||||
* @license MIT
|
||||
*/
|
||||
!function(o){o.fn.UItoTop=function(n){var e={text:"",min:500,scrollSpeed:800,containerID:"ui-to-top",containerClass:"ui-to-top fa fa-angle-up",easingType:"easeIn"},t=o.extend(e,n),i="#"+t.containerID;o("body").append('<a href="#" id="'+t.containerID+'" class="'+t.containerClass+'" >'+t.text+"</a>"),o(i).click(function(){return o("html, body").stop().animate({scrollTop:0},t.scrollSpeed,t.easingType),!1}),o(window).scroll(function(){var n=o(window).scrollTop();"undefined"==typeof document.body.style.maxHeight&&o(i).css({position:"absolute",top:o(window).scrollTop()+o(window).height()-50}),n>t.min?o(i).stop(!0,!0).addClass("active"):o(i).removeClass("active")})}}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module RD Google Map
|
||||
* @author Evgeniy Gusarov
|
||||
* @see https://ua.linkedin.com/pub/evgeniy-gusarov/8a/a40/54a
|
||||
* @version 0.1.6
|
||||
*/
|
||||
!function(a){var t={cntClass:"map",mapClass:"map_model",locationsClass:"map_locations",marker:{basic:"images/gmap_marker.png",active:"images/gmap_marker_active.png"},styles:[],onInit:!1},o={map:{x:-73.9924068,y:40.646197,zoom:14},locations:[]},e=function(t,o){var e=t.parent().find("."+o.locationsClass).find("li"),n=[];return 0<e.length&&e.each(function(t){var e=a(this);e.data("x")&&e.data("y")&&(n[t]={x:e.data("x"),y:e.data("y"),basic:e.data("basic")?e.data("basic"):o.marker.basic,active:e.data("active")?e.data("active"):o.marker.active},a.trim(e.html())?n[t].content='<div class="iw-content">'+e.html()+"</div>":n[t].content=!1)}),n};a.fn.googleMap=function(n){n=a.extend(!0,{},t,n),a(this).each(function(){var t=a(this),s=a.extend(!0,{},o,{map:{x:t.data("x"),y:t.data("y"),zoom:t.data("zoom")},marker:{basic:t.data("marker"),active:t.data("marker-active")},locations:e(t,n)}),i=new google.maps.Map(this,{center:new google.maps.LatLng(parseFloat(s.map.y),parseFloat(s.map.x)),styles:n.styles,zoom:s.map.zoom,scrollwheel:!1});n.onInit&&n.onInit.call(this,i);var c,l=new google.maps.InfoWindow,r=[];for(c in s.locations)r[c]=new google.maps.Marker({position:new google.maps.LatLng(parseFloat(s.locations[c].y),parseFloat(s.locations[c].x)),map:i,icon:s.locations[c].basic,index:c}),s.locations[c].content&&(google.maps.event.addListener(r[c],"click",function(){for(var t in r)r[t].setIcon(s.locations[t].basic);l.setContent(s.locations[this.index].content),l.open(i,this),a(".gm-style-iw").parent().parent().addClass("gm-wrapper"),this.setIcon(s.locations[this.index].active)}),google.maps.event.addListener(l,"closeclick",function(){for(var a in r)r[a].setIcon(s.locations[a].basic)}));google.maps.event.addDomListener(window,"resize",function(){i.setCenter(new google.maps.LatLng(parseFloat(s.map.y),parseFloat(s.map.x)))})})}}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module Materianize Parallax
|
||||
* @see http://materializecss.com/parallax-demo.html
|
||||
* @licesne MIT
|
||||
*/
|
||||
!function(i){i.fn.parallax=function(){var a=i(window).width();return this.each(function(t){function n(t){var n;n=a<601?r.height()>0?r.height():r.children("img").height():r.height()>0?r.height():500;var e=r.children("img").first(),l=e.height()-n,o=r.offset().top+n,h=r.offset().top,d=i(window).scrollTop(),s=window.innerHeight,c=(d+s-h)/(n+s),g=Math.round(l*c);t&&e.css("display","block"),o>d&&h<d+s&&e.css("transform","translate3D(-50%,"+g+"px, 0)")}var r=i(this).prepend('<div class="material-parallax parallax"><img src="images/_blank.png" alt=""></div>').find(".material-parallax");r.children("img").first().attr("src",r.parents("[data-parallax-img]").data("parallax-img")),r.children("img").one("load",function(){n(!0)}).each(function(){this.complete&&i(this).trigger("load")}),i(window).scroll(function(){a=i(window).width(),n(!1)}),i(window).resize(function(){a=i(window).width(),n(!1)})})}}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module Swiper
|
||||
* @description Most modern mobile touch slider and framework with hardware accelerated transitions
|
||||
* @author Vladimir Kharlampidi
|
||||
* @see http://www.idangero.us/swiper/
|
||||
* @licesne MIT
|
||||
* @version 4.1.0
|
||||
*/
|
||||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Swiper=t()}(this,function(){"use strict";var e=function(e){for(var t=0;t<e.length;t+=1)this[t]=e[t];return this.length=e.length,this};function t(t,i){var s=[],a=0;if(t&&!i&&t instanceof e)return t;if(t)if("string"==typeof t){var r,n,o=t.trim();if(o.indexOf("<")>=0&&o.indexOf(">")>=0){var l="div";for(0===o.indexOf("<li")&&(l="ul"),0===o.indexOf("<tr")&&(l="tbody"),0!==o.indexOf("<td")&&0!==o.indexOf("<th")||(l="tr"),0===o.indexOf("<tbody")&&(l="table"),0===o.indexOf("<option")&&(l="select"),(n=document.createElement(l)).innerHTML=o,a=0;a<n.childNodes.length;a+=1)s.push(n.childNodes[a])}else for(r=i||"#"!==t[0]||t.match(/[ .<>:~]/)?(i||document).querySelectorAll(t.trim()):[document.getElementById(t.trim().split("#")[1])],a=0;a<r.length;a+=1)r[a]&&s.push(r[a])}else if(t.nodeType||t===window||t===document)s.push(t);else if(t.length>0&&t[0].nodeType)for(a=0;a<t.length;a+=1)s.push(t[a]);return new e(s)}function i(e){for(var t=[],i=0;i<e.length;i+=1)-1===t.indexOf(e[i])&&t.push(e[i]);return t}t.fn=e.prototype,t.Class=e,t.Dom7=e;"resize scroll".split(" ");var s={addClass:function(e){if(void 0===e)return this;for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.add(t[i]);return this},removeClass:function(e){for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.remove(t[i]);return this},hasClass:function(e){return!!this[0]&&this[0].classList.contains(e)},toggleClass:function(e){for(var t=e.split(" "),i=0;i<t.length;i+=1)for(var s=0;s<this.length;s+=1)void 0!==this[s].classList&&this[s].classList.toggle(t[i]);return this},attr:function(e,t){var i=arguments;if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var s=0;s<this.length;s+=1)if(2===i.length)this[s].setAttribute(e,t);else for(var a in e)this[s][a]=e[a],this[s].setAttribute(a,e[a]);return this},removeAttr:function(e){for(var t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},data:function(e,t){var i;if(void 0!==t){for(var s=0;s<this.length;s+=1)(i=this[s]).dom7ElementDataStorage||(i.dom7ElementDataStorage={}),i.dom7ElementDataStorage[e]=t;return this}if(i=this[0]){if(i.dom7ElementDataStorage&&e in i.dom7ElementDataStorage)return i.dom7ElementDataStorage[e];var a=i.getAttribute("data-"+e);return a||void 0}},transform:function(e){for(var t=0;t<this.length;t+=1){var i=this[t].style;i.webkitTransform=e,i.transform=e}return this},transition:function(e){"string"!=typeof e&&(e+="ms");for(var t=0;t<this.length;t+=1){var i=this[t].style;i.webkitTransitionDuration=e,i.transitionDuration=e}return this},on:function(){for(var e=[],i=arguments.length;i--;)e[i]=arguments[i];var s,a=e[0],r=e[1],n=e[2],o=e[3];function l(e){var i=e.target;if(i){var s=e.target.dom7EventData||[];if(s.unshift(e),t(i).is(r))n.apply(i,s);else for(var a=t(i).parents(),o=0;o<a.length;o+=1)t(a[o]).is(r)&&n.apply(a[o],s)}}function d(e){var t=e&&e.target?e.target.dom7EventData||[]:[];t.unshift(e),n.apply(this,t)}"function"==typeof e[1]&&(a=(s=e)[0],n=s[1],o=s[2],r=void 0),o||(o=!1);for(var h,p=a.split(" "),c=0;c<this.length;c+=1){var u=this[c];if(r)for(h=0;h<p.length;h+=1)u.dom7LiveListeners||(u.dom7LiveListeners=[]),u.dom7LiveListeners.push({type:a,listener:n,proxyListener:l}),u.addEventListener(p[h],l,o);else for(h=0;h<p.length;h+=1)u.dom7Listeners||(u.dom7Listeners=[]),u.dom7Listeners.push({type:a,listener:n,proxyListener:d}),u.addEventListener(p[h],d,o)}return this},off:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var i,s=e[0],a=e[1],r=e[2],n=e[3];"function"==typeof e[1]&&(s=(i=e)[0],r=i[1],n=i[2],a=void 0),n||(n=!1);for(var o=s.split(" "),l=0;l<o.length;l+=1)for(var d=0;d<this.length;d+=1){var h=this[d];if(a){if(h.dom7LiveListeners)for(var p=0;p<h.dom7LiveListeners.length;p+=1)r?h.dom7LiveListeners[p].listener===r&&h.removeEventListener(o[l],h.dom7LiveListeners[p].proxyListener,n):h.dom7LiveListeners[p].type===o[l]&&h.removeEventListener(o[l],h.dom7LiveListeners[p].proxyListener,n)}else if(h.dom7Listeners)for(var c=0;c<h.dom7Listeners.length;c+=1)r?h.dom7Listeners[c].listener===r&&h.removeEventListener(o[l],h.dom7Listeners[c].proxyListener,n):h.dom7Listeners[c].type===o[l]&&h.removeEventListener(o[l],h.dom7Listeners[c].proxyListener,n)}return this},trigger:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var i=e[0].split(" "),s=e[1],a=0;a<i.length;a+=1)for(var r=0;r<this.length;r+=1){var n=void 0;try{n=new window.CustomEvent(i[a],{detail:s,bubbles:!0,cancelable:!0})}catch(e){(n=document.createEvent("Event")).initEvent(i[a],!0,!0),n.detail=s}this[r].dom7EventData=e.filter(function(e,t){return t>0}),this[r].dispatchEvent(n),this[r].dom7EventData=[],delete this[r].dom7EventData}return this},transitionEnd:function(e){var t,i=["webkitTransitionELine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery Count To
|
||||
* @author Matt Huggins
|
||||
* @see https://github.com/mhuggins/jquery-countTo
|
||||
* @license MIT
|
||||
*/
|
||||
!function(t){function e(t,e){return t.toFixed(e.decimals)}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,this.dataOptions(),i),this.init()};o.DEFAULTS={from:0,to:0,speed:1e3,refreshInterval:100,decimals:0,formatter:e,onUpdate:null,onComplete:null},o.prototype.init=function(){this.value=this.options.from,this.loops=Math.ceil(this.options.speed/this.options.refreshInterval),this.loopCount=0,this.increment=(this.options.to-this.options.from)/this.loops},o.prototype.dataOptions=function(){var t={from:this.$element.data("from"),to:this.$element.data("to"),speed:this.$element.data("speed"),refreshInterval:this.$element.data("refresh-interval"),decimals:this.$element.data("decimals")},e=Object.keys(t);for(var o in e){var i=e[o];"undefined"==typeof t[i]&&delete t[i]}return t},o.prototype.update=function(){this.value+=this.increment,this.loopCount++,this.render(),"function"==typeof this.options.onUpdate&&this.options.onUpdate.call(this.$element,this.value),this.loopCount>=this.loops&&(clearInterval(this.interval),this.value=this.options.to,"function"==typeof this.options.onComplete&&this.options.onComplete.call(this.$element,this.value))},o.prototype.render=function(){var t=this.options.formatter.call(this.$element,this.value,this.options);this.$element.text(t)},o.prototype.restart=function(){this.stop(),this.init(),this.start()},o.prototype.start=function(){this.stop(),this.render(),this.interval=setInterval(this.update.bind(this),this.options.refreshInterval)},o.prototype.stop=function(){this.interval&&clearInterval(this.interval)},o.prototype.toggle=function(){this.interval?this.stop():this.start()},t.fn.countTo=function(e){return this.each(function(){var i=t(this),n=i.data("countTo"),s=!n||"object"==typeof e,r="object"==typeof e?e:{},a="string"==typeof e?e:"start";s&&(n&&n.stop(),i.data("countTo",n=new o(this,r))),n[a].call(n)})}}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module TimeCircles
|
||||
* @author Wim Barelds
|
||||
* @see http://www.wimbarelds.nl/
|
||||
* @license MIT
|
||||
* @version 1.5.3
|
||||
*/
|
||||
(function(f){function A(a){a=a.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,d,e){return b+b+d+d+e+e});return(a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a))?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null}function B(){var a=document.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))}function n(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function z(a,c,b,d,e){for(var h={},l={},f={},g={},m={},k={},r=null,q=0;q<d.length;q++){var p= d[q],r=null===r?b/t[p]:t[r]/t[p],u=a/t[p],v=c/t[p];e&&(u=0<u?Math.floor(u):Math.ceil(u),v=0<v?Math.floor(v):Math.ceil(v));"Days"!==p&&(u%=r,v%=r);h[p]=u;f[p]=Math.abs(u);l[p]=v;k[p]=Math.abs(v);g[p]=Math.abs(u)/r;m[p]=Math.abs(v)/r;r=p}return{raw_time:h,raw_old_time:l,time:f,old_time:k,pct:g,old_pct:m}}function C(a){for(var c=["webkit","moz"],b=0;b<c.length&&!a.requestAnimationFrame;++b)a.requestAnimationFrame=a[c[b]+"RequestAnimationFrame"],a.cancelAnimationFrame=a[c[b]+"CancelAnimationFrame"];a.requestAnimationFrame&& a.cancelAnimationFrame||(a.requestAnimationFrame=function(c,b,h){"undefined"===typeof h&&(h={data:{last_frame:0}});var l=(new Date).getTime(),f=Math.max(0,16-(l-h.data.last_frame));b=a.setTimeout(function(){c(l+f)},f);h.data.last_frame=l+f;return b},a.cancelAnimationFrame=function(a){clearTimeout(a)})}var m=window;Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,c=!{toString:null}.propertyIsEnumerable("toString"),b="toString toLocaleString valueOf hasOwnProperty isPrototypeOf propertyIsEnumerable constructor".split(" "), d = b.length;return function(e){if("object"!==typeof e&&("function"!==typeof e||null===e))throw new TypeError("Object.keys called on non-object");var h=[],l;for(l in e)a.call(e,l)&&h.push(l);if(c)for(l=0;l<d;l++)a.call(e,b[l])&&h.push(b[l]);return h}}());var x=!1,y=["Days","Hours","Minutes","Seconds"],D={Seconds:"Minutes",Minutes:"Hours",Hours:"Days",Days:"Years"},t={Seconds:1,Minutes:60,Hours:3600,Days:86400,Months:2678400,Years:31536E3};Array.prototype.indexOf||(Array.prototype.indexOf=function(a, c) { var b = this.length >>> 0, d = Number(c) || 0, d = 0 > d ? Math.ceil(d) : Math.floor(d); for (0 > d && (d += b); d < b; d++)if (d in this && this[d] === a)return d; return -1 }); var w = {}, g = function (a, c) { this.element = a; this.container; this.listeners = null; this.data = { paused: !1, last_frame: 0, animation_frame: null, interval_fallback: null, timer: !1, total_duration: null, prev_time: null, drawn_units: [], text_elements: {Days: null, Hours: null, Minutes: null, Seconds: null}, attributes: {canvas: null, context: null, item_size: null, line_width: null, radius: null, outer_radius:null}, state:{fading:{Days:!1,Hours:!1,Minutes:!1,Seconds:!1}}};this.config=null;this.setOptions(c);this.initialize()};g.prototype.clearListeners=function(){this.listeners={all:[],visible:[]}};g.prototype.addTime=function(a){if(this.data.attributes.ref_date instanceof Date){var c=this.data.attributes.ref_date;c.setSeconds(c.getSeconds()+a)}else isNaN(this.data.attributes.ref_date)||(this.data.attributes.ref_date+=1E3*a)};g.prototype.initialize=function(a){this.data.drawn_units=[];for(var c=0;c<Object.keys(this.config.time).length;c++){var b= Object.keys(this.config.time)[c];this.config.time[b].show&&this.data.drawn_units.push(b)}f(this.element).children("div.time_circles").remove();"undefined"===typeof a&&(a=!0);(a||null===this.listeners)&&this.clearListeners();this.container=f("<div>");this.container.addClass("time_circles");this.container.appendTo(this.element);c=this.element.offsetHeight;a=this.element.offsetWidth;0===c&&(c=f(this.element).height());0===a&&(a=f(this.element).width());0===c&&0<a?c=a/this.data.drawn_units.length:0=== a&&0<c&&(a=c*this.data.drawn_units.length);b=document.createElement("canvas");b.width=a;b.height=c;this.data.attributes.canvas=f(b);this.data.attributes.canvas.appendTo(this.container);var d=B();d||"undefined"===typeof G_vmlCanvasManager||(G_vmlCanvasManager.initElement(b),d=x=!0);d&&(this.data.attributes.context=b.getContext("2d"));this.data.attributes.item_size=Math.min(a/this.data.drawn_units.length,c);this.data.attributes.line_width=this.data.attributes.item_size*this.config.fg_width;this.data.attributes.radius= (.8*this.data.attributes.item_size-this.data.attributes.line_width)/2;this.data.attributes.outer_radius=this.data.attributes.radius+.5*Math.max(this.data.attributes.line_width,this.data.attributes.line_width*this.config.bg_width);var c=0,e;for(e in this.data.text_elements)this.config.time[e].show&&(a=f("<div>"),a.addClass("textDiv_"+e),a.css("top",Math.round(.35*this.data.attributes.item_size)),a.css("left",Math.round(c++*this.data.attributes.item_size)),a.css("width",this.data.attributes.item_size), a.appendTo(this.container),b=f("<h4>"),b.text(this.config.time[e].text),b.css("font-size",Math.round(this.config.text_size*this.data.attributes.item_size)),b.css("line-height",Math.round(this.config.text_size*this.dLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Lightgallery
|
||||
* @author Sachin N
|
||||
* @see http://sachinchoolur.github.io/lightGallery/
|
||||
* @license GPLv3
|
||||
* @version 1.6.2 - 2017-10-03
|
||||
*/
|
||||
!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";function b(b,d){if(this.el=b,this.$el=a(b),this.s=a.extend({},c,d),this.s.dynamic&&"undefined"!==this.s.dynamicEl&&this.s.dynamicEl.constructor===Array&&!this.s.dynamicEl.length)throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.modules={},this.lGalleryOn=!1,this.lgBusy=!1,this.hideBartimeout=!1,this.isTouch="ontouchstart"in document.documentElement,this.s.slideEndAnimatoin&&(this.s.hideControlOnEnd=!1),this.s.dynamic?this.$items=this.s.dynamicEl:"this"===this.s.selector?this.$items=this.$el:""!==this.s.selector?this.s.selectWithin?this.$items=a(this.s.selectWithin).find(this.s.selector):this.$items=this.$el.find(a(this.s.selector)):this.$items=this.$el.children(),this.$slide="",this.$outer="",this.init(),this}var c={mode:"lg-slide",cssEasing:"ease",easing:"linear",speed:600,height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:150,hideBarsDelay:6e3,useLeft:!1,closable:!0,loop:!0,escKey:!0,keyPress:!0,controls:!0,slideEndAnimatoin:!0,hideControlOnEnd:!1,mousewheel:!0,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:1,showAfterLoad:!0,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:!1,iframeMaxWidth:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],galleryId:1};b.prototype.init=function(){var b=this;b.s.preload>b.$items.length&&(b.s.preload=b.$items.length);var c=window.location.hash;c.indexOf("lg="+this.s.galleryId)>0&&(b.index=parseInt(c.split("&slide=")[1],10),a("body").addClass("lg-from-hash"),a("body").hasClass("lg-on")||(setTimeout(function(){b.build(b.index)}),a("body").addClass("lg-on"))),b.s.dynamic?(b.$el.trigger("onBeforeOpen.lg"),b.index=b.s.index||0,a("body").hasClass("lg-on")||setTimeout(function(){b.build(b.index),a("body").addClass("lg-on")})):b.$items.on("click.lgcustom",function(c){try{c.preventDefault(),c.preventDefault()}catch(a){c.returnValue=!1}b.$el.trigger("onBeforeOpen.lg"),b.index=b.s.index||b.$items.index(this),a("body").hasClass("lg-on")||(b.build(b.index),a("body").addClass("lg-on"))})},b.prototype.build=function(b){var c=this;c.structure(),a.each(a.fn.lightGallery.modules,function(b){c.modules[b]=new a.fn.lightGallery.modules[b](c.el)}),c.slide(b,!1,!1,!1),c.s.keyPress&&c.keyPress(),c.$items.length>1?(c.arrow(),setTimeout(function(){c.enableDrag(),c.enableSwipe()},50),c.s.mousewheel&&c.mousewheel()):c.$slide.on("click.lg",function(){c.$el.trigger("onSlideClick.lg")}),c.counter(),c.closeGallery(),c.$el.trigger("onAfterOpen.lg"),c.$outer.on("mousemove.lg click.lg touchstart.lg",function(){c.$outer.removeClass("lg-hide-items"),clearTimeout(c.hideBartimeout),c.hideBartimeout=setTimeout(function(){c.$outer.addClass("lg-hide-items")},c.s.hideBarsDelay)}),c.$outer.trigger("mousemove.lg")},b.prototype.structure=function(){var b,c="",d="",e=0,f="",g=this;for(a("body").append('<div class="lg-backdrop"></div>'),a(".lg-backdrop").css("transition-duration",this.s.backdropDuration+"ms"),e=0;e<this.$items.length;e++)c+='<div class="lg-item"></div>';if(this.s.controls&&this.$items.length>1&&(d='<div class="lg-actions"><button class="lg-prev lg-icon">'+this.s.prevHtml+'</button><button class="lg-next lg-icon">'+this.s.nextHtml+"</button></div>"),".lg-sub-html"===this.s.appendSubHtmlTo&&(f='<div class="lg-sub-html"></div>'),b='<div class="lg-outer '+this.s.addClass+" "+this.s.startClass+'"><div class="lg" style="width:'+this.s.width+"; height:"+this.s.height+'"><div class="lg-inner">'+c+'</div><div class="lg-toolbar lg-group"><span class="lg-close lg-icon"></span></div>'+d+f+"</div></div>",a("body").append(b),this.$outer=a(".lg-outer"),this.$slide=this.$outer.find(".lg-item"),this.s.useLeft?(this.$outer.addClass("lg-use-left"),this.s.mode="lg-slide"):this.$outer.addClass("lg-use-css3"),g.setTop(),a(window).on("resize.lg orientationchange.lg",function(){setTimeout(function(){g.setTop()},100)}),this.$slide.eq(this.index).addClass("lg-current"),this.doCss()?this.$outer.addClass("lg-css3"):(this.$outer.addClass("lg-css"),this.s.speed=0),this.$outer.addClass(this.s.mode),this.s.enableDrag&&this.$items.length>1&&this.$outer.addClass("lg-grab"),this.s.showAfterLoad&&this.$outer.addClass("lg-show-after-load"),this.doCss()){var h=this.$outer.find(".lg-inner");h.css("transition-timing-function",this.s.cssEasing),h.css("transition-duration",this.s.speed+"ms")}setTimeout(function(){a(".lg-backdrop").addClass("in")}),setTimeout(function(){g.$outer.addClass("lg-visible")},this.s.backdropDuration),this.s.download&&this.$outer.find(".lg-toolbar").append('<a id="lg-download" target="_blank" download class="lg-download lg-icon"></a>'),this.prevScrollTop=a(window).scrollTop()},b.prototype.setTop=function(){Line truncated
|
||||
this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},a.fn.lightGallery.modules.Thumbnail=c}()}),function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(){"use strict";var b={videoMaxWidth:"855px",youtubePlayerParams:!1,vimeoPlayerParams:!1,dailymotionPlayerParams:!1,vkPlayerParams:!1,videojs:!1,videojsOptions:{}},c=function(c){return this.core=a(c).data("lightGallery"),this.$el=a(c),this.core.s=a.extend({},b,this.core.s),this.videoLoaded=!1,this.init(),this};c.prototype.init=function(){var b=this;b.core.$el.on("hasVideo.lg.tm",function(a,c,d,e){if(b.core.$slide.eq(c).find(".lg-video").append(b.loadVideo(d,"lg-object",!0,c,e)),e)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(c).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){b.videoLoaded||this.play()})}catch(a){console.error("Make sure you have included videojs")}else b.videoLoaded||b.core.$slide.eq(c).find(".lg-html5").get(0).play()}),b.core.$el.on("onAferAppendSlide.lg.tm",function(a,c){var d=b.core.$slide.eq(c).find(".lg-video-cont");d.hasClass("lg-has-iframe")||(d.css("max-width",b.core.s.videoMaxWidth),b.videoLoaded=!0)});var c=function(a){if(a.find(".lg-object").hasClass("lg-has-poster")&&a.find(".lg-object").is(":visible"))if(a.hasClass("lg-has-video")){var c=a.find(".lg-youtube").get(0),d=a.find(".lg-vimeo").get(0),e=a.find(".lg-dailymotion").get(0),f=a.find(".lg-html5").get(0);if(c)c.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*");else if(d)try{$f(d).api("play")}catch(a){console.error("Make sure you have included froogaloop2 js")}else if(e)e.contentWindow.postMessage("play","*");else if(f)if(b.core.s.videojs)try{videojs(f).play()}catch(a){console.error("Make sure you have included videojs")}else f.play();a.addClass("lg-video-playing")}else{a.addClass("lg-video-playing lg-has-video");var g,h,i=function(c,d){if(a.find(".lg-video").append(b.loadVideo(c,"",!1,b.core.index,d)),d)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(b.core.index).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){this.play()})}catch(a){console.error("Make sure you have included videojs")}else b.core.$slide.eq(b.core.index).find(".lg-html5").get(0).play()};b.core.s.dynamic?(g=b.core.s.dynamicEl[b.core.index].src,h=b.core.s.dynamicEl[b.core.index].html,i(g,h)):(g=b.core.$items.eq(b.core.index).attr("href")||b.core.$items.eq(b.core.index).attr("data-src"),h=b.core.$items.eq(b.core.index).attr("data-html"),i(g,h));var j=a.find(".lg-object");a.find(".lg-video").append(j),a.find(".lg-video-object").hasClass("lg-html5")||(a.removeClass("lg-complete"),a.find(".lg-video-object").on("load.lg error.lg",function(){a.addClass("lg-complete")}))}};b.core.doCss()&&b.core.$items.length>1&&(b.core.s.enableSwipe||b.core.s.enableDrag)?b.core.$el.on("onSlideClick.lg.tm",function(){var a=b.core.$slide.eq(b.core.index);c(a)}):b.core.$slide.on("click.lg",function(){c(a(this))}),b.core.$el.on("onBeforeSlide.lg.tm",function(c,d,e){var f=b.core.$slide.eq(d),g=f.find(".lg-youtube").get(0),h=f.find(".lg-vimeo").get(0),i=f.find(".lg-dailymotion").get(0),j=f.find(".lg-vk").get(0),k=f.find(".lg-html5").get(0);if(g)g.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*");else if(h)try{$f(h).api("pause")}catch(a){console.error("Make sure you have included froogaloop2 js")}else if(i)i.contentWindow.postMessage("pause","*");else if(k)if(b.core.s.videojs)try{videojs(k).pause()}catch(a){console.error("Make sure you have included videojs")}else k.pause();j&&a(j).attr("src",a(j).attr("src").replace("&autoplay","&noplay"));var l;l=b.core.s.dynamic?b.core.s.dynamicEl[e].src:b.core.$items.eq(e).attr("href")||b.core.$items.eq(e).attr("data-src");var m=b.core.isVideo(l,e)||{};(m.youtube||m.vimeo||m.dailymotion||m.vk)&&b.core.$outer.addClass("lg-hide-download")}),b.core.$el.on("onAfterSlide.lg.tm",function(a,c){b.core.$slide.eq(c).removeClass("lg-video-playing")})},c.prototype.loadVideo=function(b,c,d,e,f){var g="",h=1,i="",j=this.core.isVideo(b,e)||{};if(d&&(h=this.videoLoaded?0:1),j.youtube)i="?wmode=opaque&autoplay="+h+"&enablejsapi=1",this.core.s.youtubePlayerParams&&(i=i+"&"+a.param(this.core.s.youtubePlayerParams)),g='<iframe class="lg-video-object lg-youtube '+c+'" width="560" height="315" src="//www.youtube.com/embed/'+j.youtube[1]+i+'" frameborder="0" allowfullscreen></iframe>';else if(j.vimeo)i="?autoplay="+h+"&api=1",this.core.s.vimeoPlayerParams&&(i=i+"&"+a.param(this.core.s.vimeoPlayerParams)),g='<iframe class="lg-video-object lg-vimeo '+c+'" width="560" height="315" src="//player.vimeo.com/video/'+j.vimeo[1]+i+'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';else if(j.dailymotion)i="?wmode=opaque&autoplay="+h+"&api=postMessage",this.core.s.dailymotionPlayerParams&&(i=i+"&"+a.param(this.core.s.dailymotionPlayerParams)),g='<ifraLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module WOW
|
||||
* @author Matthieu Aussaguel
|
||||
* @license MIT
|
||||
* @version 1.1.3
|
||||
*/
|
||||
(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a,b){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),null!=a.scrollContainer&&(this.config.scrollContainer=document.querySelector(a.scrollContainer)),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(b){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyleLine truncated
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @module jQuery page transition
|
||||
* @author Roman Kravchuk (JeremyLuis)
|
||||
* @license MIT
|
||||
* @version 1.1.3
|
||||
* @description Smooth transition between pages
|
||||
*/
|
||||
function pageTransition(t){t=t||{},t.target=t.target||null,t.delay=t.delay||500,t.duration=t.duration||1e3,t.classIn=t.classIn||null,t.classOut=t.classOut||null,t.classActive=t.classActive||null,t.onReady=t.onReady||null,t.onTransitionStart=t.onTransitionStart||null,t.onTransitionEnd=t.onTransitionEnd||null,t.conditions=t.conditions||function(t,n){return!/(\#|callto:|tel:|mailto:|:\/\/)/.test(n)},t.target&&(setTimeout(function(){t.onReady&&t.onReady(t),t.classIn&&t.target.classList.add(t.classIn),t.classActive&&t.target.classList.add(t.classActive),t.duration&&(t.target.style.animationDuration=t.duration+"ms"),t.target.addEventListener("animationstart",function(){setTimeout(function(){t.classIn&&t.target.classList.remove(t.classIn),t.onTransitionEnd&&t.onTransitionEnd(t)},t.duration)})},t.delay),$("a").click(function(n){var a=n.currentTarget.getAttribute("href");if(t.conditions(n,a)){var s=this.href;n.preventDefault(),t.onTransitionStart&&t.onTransitionStart(t),t.classIn&&t.target.classList.remove(t.classIn),t.classOut&&t.target.classList.add(t.classOut),setTimeout(function(){window.location=s,/firefox/i.test(navigator.userAgent)&&setTimeout(function(){t.onReady&&t.onReady(t),t.classOut&&t.target.classList.remove(t.classOut)},1e3),/safari/i.test(navigator.userAgent)&&!/chrome/i.test(navigator.userAgent)&&(t.onReady&&t.onReady(t),t.classOut&&t.target.classList.remove(t.classOut))},t.duration)}}))}
|
||||
|
||||
|
||||
/**
|
||||
* @module Slick
|
||||
* @author Ken Wheeler
|
||||
* @see http://kenwheeler.github.io/slick
|
||||
* @version 1.6.0
|
||||
*/
|
||||
!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a('<button type="button" data-role="none" role="button" tabindex="0" />').text(c+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},e.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},a.extend(e,e.initials),e.activeBreakpoint=null,e.animType=null,e.animProp=null,e.breakpoints=[],e.breakpointSettings=[],e.cssTransitions=!1,e.focussed=!1,e.interrupted=!1,e.hidden="hidden",e.paused=!0,e.positionProp=null,e.respondTo=null,e.rowCount=1,e.shouldClick=!0,e.$slider=a(c),e.$slidesCache=null,e.transformType=null,e.transitionType=null,e.visibilityChange="visibilitychange",e.windowWidth=0,e.windowTimer=null,f=a(c).data("slick")||{},e.options=a.extend({},e.defaults,d,f),e.currentSlide=e.options.initialSlide,e.originalSettings=e.options,"undefined"!=typeof document.mozHidden?(e.hidden="mozHidden",e.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(e.hidden="webkitHidden",e.visibilityChange="webkitvisibilitychange"),e.autoPlay=a.proxy(e.autoPlay,e),e.autoPlayClear=a.proxy(e.autoPlayClear,e),e.autoPlayIterator=a.proxy(e.autoPlayIterator,e),e.changeSlide=a.proxy(e.changeSlide,e),e.clickHandler=a.proxy(e.clickHandler,e),e.selectHandler=a.proxy(e.selectHandler,e),e.setPosition=a.proxy(e.setPosition,e),e.swipeHandler=a.proxy(e.swipeHandler,e),e.dragHandler=a.proxy(e.dragHandler,e),e.keyHandler=a.proxy(e.keyHandler,e),e.instanceUid=b++,e.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,e.registerBreakpoints(),e.init(!0)}var b=0;return c}(),b.prototype.activateADA=function(){var a=this;a.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},b.prototype.addSlide=b.prototype.slickAdd=function(b,c,d){var e=this;if("boolean"==typeof c)d=c,c=null;else if(0>c||c>=e.slideCount)return!1;e.unload(),"number"==typeof c?0===c&&0===e.$slides.length?a(b).appendTo(e.$slideTrack):d?a(b).insertBefore(e.$slides.eq(c)):a(b).insertAfter(e.$slides.eq(c)):d===!0?a(b).prependTo(e.$slideTrack):a(b).appendTo(e.$slideTrack),e.$slides=e.$slideTrack.children(this.options.slide),e.$slideTrack.children(this.options.slide).detach(),e.$slideTrack.append(e.$slides),e.$slides.each(function(b,c){a(c).attr("data-slick-index",b)}),e.$slidesCache=e.$slides,e.reinit()},b.prototype.animateHeight=function(){var a=this;if(1===a.options.slidesToShow&&a.options.adaptiveHeight===!0&&a.options.vertical===!1){var b=a.$slides.eq(a.currentSlide).outerHeight(!0);a.$list.animate({height:b},a.options.speed)}},b.prototype.animateSlide=function(b,c){var d={},e=this;e.animateHeight(),e.options.rtl===!0&&e.options.vertical===!1&&(b=-b),e.transformsEnabled===!1?e.options.vertical===!1?e.$slideTrack.animate({left:b},e.options.speed,e.options.easing,c):e.$slideTrack.animate({top:b},e.options.speed,e.options.easing,c):e.cssTransitions===!1?(e.options.rtl===!0&&(e.currentLeft=-e.currentLeft),a({animStart:e.currentLeft}).animate({animStart:b},{duration:e.options.speed,easing:e.options.easing,step:function(a){a=Math.ceil(a),e.options.vertical===!1?(d[e.animType]="translate("+a+"px, 0px)",e.$slideTrack.css(d)):(d[e.animType]="translate(0px,"+a+"px)",e.$slideTrack.css(d))},complete:function(){c&&c.call()}})):(e.applyTransition(),b=Math.ceil(b),e.options.vertical===!1?d[e.animType]="translate3d("+b+"px, 0px, 0px)":d[e.animType]="translate3d(0px,"+b+"px, 0px)",e.$slideTrack.css(d),c&&setTimeout(function(){e.disableTransition(),c.call()},e.options.speed))},b.prototype.getNavTarget=function(){var b=this,c=b.options.asNavFor;return c&&null!==c&&(Line truncated
|
||||
d.slice(e-c+1,e+c+2).addClass("slick-active").attr("aria-hidden","false")),0===a?d.eq(d.length-1-b.options.slidesToShow).addClass("slick-center"):a===b.slideCount-1&&d.eq(b.options.slidesToShow).addClass("slick-center")),b.$slides.eq(a).addClass("slick-center")):a>=0&&a<=b.slideCount-b.options.slidesToShow?b.$slides.slice(a,a+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):d.length<=b.options.slidesToShow?d.addClass("slick-active").attr("aria-hidden","false"):(f=b.slideCount%b.options.slidesToShow,e=b.options.infinite===!0?b.options.slidesToShow+a:a,b.options.slidesToShow==b.options.slidesToScroll&&b.slideCount-a<b.options.slidesToShow?d.slice(e-(b.options.slidesToShow-f),e+f).addClass("slick-active").attr("aria-hidden","false"):d.slice(e,e+b.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===b.options.lazyLoad&&b.lazyLoad()},b.prototype.setupInfinite=function(){var c,d,e,b=this;if(b.options.fade===!0&&(b.options.centerMode=!1),b.options.infinite===!0&&b.options.fade===!1&&(d=null,b.slideCount>b.options.slidesToShow)){for(e=b.options.centerMode===!0?b.options.slidesToShow+1:b.options.slidesToShow,c=b.slideCount;c>b.slideCount-e;c-=1)d=c-1,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d-b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");for(c=0;e>c;c+=1)d=c,a(b.$slides[d]).clone(!0).attr("id","").attr("data-slick-index",d+b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");b.$slideTrack.find(".slick-cloned").find("[id]").each(function(){a(this).attr("id","")})}},b.prototype.interrupt=function(a){var b=this;a||b.autoPlay(),b.interrupted=a},b.prototype.selectHandler=function(b){var c=this,d=a(b.target).is(".slick-slide")?a(b.target):a(b.target).parents(".slick-slide"),e=parseInt(d.attr("data-slick-index"));return e||(e=0),c.slideCount<=c.options.slidesToShow?(c.setSlideClasses(e),void c.asNavFor(e)):void c.slideHandler(e)},b.prototype.slideHandler=function(a,b,c){var d,e,f,g,j,h=null,i=this;return b=b||!1,i.animating===!0&&i.options.waitForAnimate===!0||i.options.fade===!0&&i.currentSlide===a||i.slideCount<=i.options.slidesToShow?void 0:(b===!1&&i.asNavFor(a),d=a,h=i.getLeft(d),g=i.getLeft(i.currentSlide),i.currentLeft=null===i.swipeLeft?g:i.swipeLeft,i.options.infinite===!1&&i.options.centerMode===!1&&(0>a||a>i.getDotCount()*i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):i.options.infinite===!1&&i.options.centerMode===!0&&(0>a||a>i.slideCount-i.options.slidesToScroll)?void(i.options.fade===!1&&(d=i.currentSlide,c!==!0?i.animateSlide(g,function(){i.postSlide(d)}):i.postSlide(d))):(i.options.autoplay&&clearInterval(i.autoPlayTimer),e=0>d?i.slideCount%i.options.slidesToScroll!==0?i.slideCount-i.slideCount%i.options.slidesToScroll:i.slideCount+d:d>=i.slideCount?i.slideCount%i.options.slidesToScroll!==0?0:d-i.slideCount:d,i.animating=!0,i.$slider.trigger("beforeChange",[i,i.currentSlide,e]),f=i.currentSlide,i.currentSlide=e,i.setSlideClasses(i.currentSlide),i.options.asNavFor&&(j=i.getNavTarget(),j=j.slick("getSlick"),j.slideCount<=j.options.slidesToShow&&j.setSlideClasses(i.currentSlide)),i.updateDots(),i.updateArrows(),i.options.fade===!0?(c!==!0?(i.fadeSlideOut(f),i.fadeSlide(e,function(){i.postSlide(e)})):i.postSlide(e),void i.animateHeight()):void(c!==!0?i.animateSlide(h,function(){i.postSlide(e)}):i.postSlide(e))))},b.prototype.startLoad=function(){var a=this;a.options.arrows===!0&&a.slideCount>a.options.slidesToShow&&(a.$prevArrow.hide(),a.$nextArrow.hide()),a.options.dots===!0&&a.slideCount>a.options.slidesToShow&&a.$dots.hide(),a.$slider.addClass("slick-loading")},b.prototype.swipeDirection=function(){var a,b,c,d,e=this;return a=e.touchObject.startX-e.touchObject.curX,b=e.touchObject.startY-e.touchObject.curY,c=Math.atan2(b,a),d=Math.round(180*c/Math.PI),0>d&&(d=360-Math.abs(d)),45>=d&&d>=0?e.options.rtl===!1?"left":"right":360>=d&&d>=315?e.options.rtl===!1?"left":"right":d>=135&&225>=d?e.options.rtl===!1?"right":"left":e.options.verticalSwiping===!0?d>=35&&135>=d?"down":"up":"vertical"},b.prototype.swipeEnd=function(a){var c,d,b=this;if(b.dragging=!1,b.interrupted=!1,b.shouldClick=b.touchObject.swipeLength>10?!1:!0,void 0===b.touchObject.curX)return!1;if(b.touchObject.edgeHit===!0&&b.$slider.trigger("edge",[b,b.swipeDirection()]),b.touchObject.swipeLength>=b.touchObject.minSwipe){switch(d=b.swipeDirection()){case"left":case"down":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide+b.getSlideCount()):b.currentSlide+b.getSlideCount(),b.currentDirection=0;break;case"right":case"up":c=b.options.swipeToSlide?b.checkNavigable(b.currentSlide-b.getSlideCount()):b.currentSlide-b.getSlideCount(),b.currentDirection=1}"vertical"!=d&&(b.slideHandler(c),b.touchObject={},b.$slider.trigger("swipe",[b,d]))}else b.touchObject.startX!==b.touchObject.curX&&(b.slideHandler(b.currentSlide),b.touchObject={})},b.prototype.Line truncated
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* c3
|
||||
* @see https://github.com/masayuki0812/c3
|
||||
* @license MIT
|
||||
*/
|
||||
!function(t){"use strict";function e(t){this.owner=t}function i(t){var e=this.internal=new n(this);e.loadConfig(t),e.beforeInit(t),e.init(),e.afterInit(t),function t(e,i,n){Object.keys(e).forEach(function(a){i[a]=e[a].bind(n),Object.keys(e[a]).length>0&&t(e[a],i[a],n)})}(s,this,this)}function n(e){var i=this;i.d3=t.d3?t.d3:"undefined"!=typeof require?require("d3"):void 0,i.api=e,i.config=i.getDefaultConfig(),i.data={},i.cache={},i.axes={}}function a(t){e.call(this,t)}function r(t,e){function i(t,e){t.attr("transform",function(t){return"translate("+Math.ceil(e(t)+S)+", 0)"})}function n(t,e){t.attr("transform",function(t){return"translate(0,"+Math.ceil(e(t))+")"})}function a(t){var e=t[0],i=t[t.length-1];return i>e?[e,i]:[i,e]}function r(t){var e,i,n=[];if(t.ticks)return t.ticks.apply(t,g);for(i=t.domain(),e=Math.ceil(i[0]);e<i[1];e++)n.push(e);return n.length>0&&n[0]>0&&n.unshift(n[0]-(n[1]-n[0])),n}function s(){var t,i=_.copy();return e.isCategory&&(t=_.domain(),i.domain([t[0],t[1]-1])),i}function o(t){var e=h?h(t):t;return void 0!==e?e:""}function c(t){if(T)return T;var e={h:11.5,w:5.5};return t.select("text").text(o).each(function(t){var i=this.getBoundingClientRect(),n=o(t),a=i.height,r=n?i.width/n.length:void 0;a&&r&&(e.h=a,e.w=r)}).text(""),T=e,e}function l(i){return e.withoutTransition?i:t.transition(i)}function u(h){h.each(function(){function h(t,i){function n(t,e){r=void 0;for(var o=1;o<e.length;o++)if(" "===e.charAt(o)&&(r=o),a=e.substr(0,o+1),(s=z.w*a.length)>i)return n(t.concat(e.substr(0,r||o)),e.slice(r?r+1:o));return t.concat(e)}var a,r,s,c=o(t),l=[];return"[object Array]"===Object.prototype.toString.call(c)?c:((!i||0>=i)&&(i=Y?95:e.isCategory?Math.ceil(C(L[1])-C(L[0]))-12:110),n(l,c+""))}function g(t,e){var i=z.h;return 0===e&&(i="left"===f||"right"===f?-((B[t.index]-1)*(z.h/2)-3):".71em"),i}var v,b,A,T=u.g=t.select(this),P=this.__chart__||_,C=this.__chart__=s(),L=m||r(C),w=T.selectAll(".tick").data(L,C),V=w.enter().insert("g",".domain").attr("class","tick").style("opacity",1e-6),G=w.exit().remove(),E=l(w).style("opacity",1),I=_.rangeExtent?_.rangeExtent():a(_.range()),O=T.selectAll(".domain").data([0]),R=(O.enter().append("path").attr("class","domain"),l(O));V.append("line"),V.append("text");var D=V.select("line"),F=E.select("line"),X=V.select("text"),k=E.select("text");e.isCategory?(S=Math.ceil((C(1)-C(0))/2),b=p?0:S,A=p?S:0):S=b=0;var M,H,z=c(T.select(".tick")),B=[],N=Math.max(x,0)+y,Y="left"===f||"right"===f;(H=(M=w.select("text")).selectAll("tspan").data(function(t,i){var n=e.tickMultiline?h(t,e.tickWidth):[].concat(o(t));return B[i]=n.length,n.map(function(t){return{index:i,splitted:t}})})).enter().append("tspan"),H.exit().remove(),H.text(function(t){return t.splitted});var j=e.tickTextRotate;switch(f){case"bottom":v=i,D.attr("y2",x),X.attr("y",N),F.attr("x1",b).attr("x2",b).attr("y2",function(t){var e=_(t)+(p?0:S);return I[0]<e&&e<I[1]?x:0}),k.attr("x",0).attr("y",function(t){return t?11.5-t/15*2.5*(t>0?1:-1):N}(j)).style("text-anchor",function(t){return t?t>0?"start":"end":"middle"}(j)).attr("transform",function(t){return t?"rotate("+t+")":""}(j)),H.attr("x",0).attr("dy",g).attr("dx",function(t){return t?8*Math.sin(Math.PI*(t/180)):0}(j)),R.attr("d","M"+I[0]+","+d+"V0H"+I[1]+"V"+d);break;case"top":v=i,D.attr("y2",-x),X.attr("y",-N),F.attr("x2",0).attr("y2",-x),k.attr("x",0).attr("y",-N),M.style("text-anchor","middle"),H.attr("x",0).attr("dy","0em"),R.attr("d","M"+I[0]+","+-d+"V0H"+I[1]+"V"+-d);break;case"left":v=n,D.attr("x2",-x),X.attr("x",-N),F.attr("x2",-x).attr("y1",A).attr("y2",A),k.attr("x",-N).attr("y",S),M.style("text-anchor","end"),H.attr("x",-N).attr("dy",g),R.attr("d","M"+-d+","+I[0]+"H0V"+I[1]+"H"+-d);break;case"right":v=n,D.attr("x2",x),X.attr("x",N),F.attr("x2",x).attr("y2",0),k.attr("x",N).attr("y",0),M.style("text-anchor","start"),H.attr("x",N).attr("dy",g),R.attr("d","M"+d+","+I[0]+"H0V"+I[1]+"H"+d)}if(C.rangeBand){var U=C,W=U.rangeBand()/2;P=C=function(t){return U(t)+W}}else P.rangeBand?P=C:G.call(v,C);V.call(v,P),E.call(v,C)})}var d,h,g,p,_=t.scale.linear(),f="bottom",x=6,y=3,m=null,S=0,v=!0;return e=e||{},d=e.withOuterTick?6:0,u.scale=function(t){return arguments.length?(_=t,u):_},u.orient=function(t){return arguments.length?(f=t in{top:1,right:1,bottom:1,left:1}?t+"":"bottom",u):f},u.tickFormat=function(t){return arguments.length?(h=t,u):h},u.tickCentered=function(t){return arguments.length?(p=t,u):p},u.tickOffset=function(){return S},u.tickInterval=function(){var t,i;return e.isCategory?t=2*S:(i=u.g.select("path.domain").node().getTotalLength()-2*d,t=i/u.g.selectAll("line").size()),t===1/0?0:t},u.ticks=function(){return arguments.length?(g=arguments,u):g},u.tickCulling=function(t){return arguments.length?(v=t,u):v},u.tickValues=function(t){if("function"==typeof t)m=function(){return t(_.domain())};else{if(!arguments.length)return m;m=t}return u},u}var s,o,c={version:"0.4.11"};c.generate=function(t){return new i(t)},c.chart={fn:i.prototype,internal:{fn:n.prototypLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* d3
|
||||
* @see https://github.com/masayuki0812/d3
|
||||
* @license MIT
|
||||
*/
|
||||
!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===Qu||n[0]===no?no+n:n}function s(n){return(n+="")[0]===no?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=to.length;r>e;++e){var i=to[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++i<u;)(t=r[i].on)&&t.apply(this,arguments);return n}var e=[],r=new c;return t.on=function(t,i){var u,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,u=e.indexOf(o)).concat(e.slice(u+1)),r.remove(t)),i&&e.push(r.set(t,{on:i})),n)},t}function S(){Iu.event.preventDefault()}function k(){for(var n,t=Iu.event;n=t.sourceEvent;)t=n;return t}function N(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(i){try{var u=i.sourceEvent=Iu.event;i.target=n,Iu.event=i,t[i.type].apply(e,r)}finally{Iu.event=u}}},t}function E(n){return ro(n,ao),n}function A(n){return"function"==typeof n?n:function(){return io(n,this)}}function C(n){return"function"==typeof n?n:function(){return uo(n,this)}}function z(n,t){return n=Iu.ns.qualify(n),null==t?n.local?function(){this.removeAttributeNS(n.space,n.local)}:function(){this.removeAttribute(n)}:"function"==typeof t?n.local?function(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}:function(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}:n.local?function(){this.setAttributeNS(n.space,n.local,t)}:function(){this.setAttribute(n,t)}}function L(n){return n.trim().replace(/\s+/g," ")}function q(n){return new RegExp("(?:^|\\s+)"+Iu.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){var e=(n=T(n).map(D)).length;return"function"==typeof t?function(){for(var r=-1,i=t.apply(this,arguments);++r<e;)n[r](this,i)}:function(){for(var r=-1;++r<e;)n[r](this,t)}}function D(n){var t=q(n);return function(e,r){if(i=e.classList)return r?i.add(n):i.remove(n);var i=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(i)||e.setAttribute("class",L(i+" "+n))):e.setAttribute("class",L(i.replace(t," ")))}}function P(n,t,e){return null==t?function(){this.style.removeProperty(n)}:"function"==typeof t?function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}:function(){this.style.setProperty(n,t,e)}}function U(n,t){return null==t?function(){delete this[n]}:"function"==typeof t?function(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}:function(){this[n]=t}}function j(n){return"function"==typeof n?n:(n=Iu.ns.qualify(n)).local?function(){return this.ownerDocument.createElementNS(n.space,n.local)}:function(){var t=this.ownerDocument,e=this.namespaceURI;return e===lo&&t.documentElement.namespaceURI===lo?t.createElement(n):t.createElementNS(e,n)}}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return oo(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ro(n,fo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t<l;);return o}}function X(n,t,e){function r(){var t=this[i];t&&(this.removeEventListener(n,t,t.$),delete this[i])}var i="__on"+n,u=n.indexOf("."),o=$;u>0&&(n=n.slice(0,u));var a=so.get(n);return a&&(n=a,o=B),u?t?function(){var u=o(t,Zu(arguments));r.call(this),this.addEventListener(n,this[i]=u,u.$=e),u._=t}:r:t?b:function(){var t,e=new RegExp("^__on([^.]+)"+Iu.requotLine truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module Custom Waypoints
|
||||
* @author Evgeniy Gusarov
|
||||
* @see https://ua.linkedin.com/pub/evgeniy-gusarov/8a/a40/54a
|
||||
* @license MIT
|
||||
*/
|
||||
!function(t){var o=t("[data-waypoint-to]");o.length&&t(document).ready(function(){o.each(function(){var o=t(this);o.on("click",function(n){n.preventDefault(),t("body, html").stop().animate({scrollTop:t(o.attr("data-waypoint-to")).offset().top},800)})})})}(jQuery);
|
||||
|
||||
|
||||
/**
|
||||
* @module Select2
|
||||
* @see https://github.com/select2/select2/blob/master/
|
||||
* @license MIT
|
||||
* @version 4.0.5
|
||||
*/
|
||||
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};return d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1))Line truncated
|
||||
|
||||
|
||||
/**
|
||||
* @module jquery.hoverdir.js
|
||||
* @license MIT
|
||||
* @link http://www.codrops.com
|
||||
* @version 1.1.0
|
||||
*/
|
||||
!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){"use strict";function e(e,i){this.$el=t(e),this.options=t.extend(!0,{},this.defaults,i),this.isVisible=!1,this.$hoverElem=this.$el.find(this.options.hoverElem),this.transitionProp="all "+this.options.speed+"ms "+this.options.easing,this.support=this._supportsTransitions(),this._loadEvents()}e.prototype={defaults:{speed:300,easing:"ease",hoverDelay:0,inverse:!1,hoverElem:"div"},constructor:e,_supportsTransitions:function(){if("undefined"!=typeof Modernizr)return Modernizr.csstransitions;var t=(document.body||document.documentElement).style,e="transition";if("string"==typeof t[e])return!0;var i=["Moz","webkit","Webkit","Khtml","O","ms"];e=e.charAt(0).toUpperCase()+e.substr(1);for(var s=0;s<i.length;s++)if("string"==typeof t[i[s]+e])return!0;return!1},_loadEvents:function(){this.$el.on("mouseenter.hoverdir mouseleave.hoverdir",t.proxy(function(t){this.direction=this._getDir({x:t.pageX,y:t.pageY}),"mouseenter"===t.type?this._showHover():this._hideHover()},this))},_showHover:function(){var e=this._getStyle(this.direction);this.support&&this.$hoverElem.css("transition",""),this.$hoverElem.hide().css(e.from),clearTimeout(this.tmhover),this.tmhover=setTimeout(t.proxy(function(){this.$hoverElem.show(0,t.proxy(function(){this.support&&this.$hoverElem.css("transition",this.transitionProp),this._applyAnimation(e.to)},this))},this),this.options.hoverDelay),this.isVisible=!0},_hideHover:function(){var t=this._getStyle(this.direction);this.support&&this.$hoverElem.css("transition",this.transitionProp),clearTimeout(this.tmhover),this._applyAnimation(t.from),this.isVisible=!1},_getDir:function(t){var e=this.$el.width(),i=this.$el.height(),s=(t.x-this.$el.offset().left-e/2)*(e>i?i/e:1),o=(t.y-this.$el.offset().top-i/2)*(i>e?e/i:1);return Math.round((Math.atan2(o,s)*(180/Math.PI)+180)/90+3)%4},_getStyle:function(t){var e,i,s={transform:"translate(0, -100%)"},o={transform:"translate(0, 100%)"},r={transform:"translate(-100%, 0)"},n={transform:"translate(100%, 0)"},h={transform:"translateY(0)"},a={transform:"translateX(0)"};switch(t){case 0:case"top":e=this.options.inverse?o:s,i=h;break;case 1:case"right":e=this.options.inverse?r:n,i=a;break;case 2:case"bottom":e=this.options.inverse?s:o,i=h;break;case 3:case"left":e=this.options.inverse?n:r,i=a}return{from:e,to:i}},_applyAnimation:function(e){t.fn.applyStyle=this.support?t.fn.css:t.fn.animate,this.$hoverElem.stop().applyStyle(e,t.extend(!0,[],{duration:this.options.speed}))},show:function(t){this.$el.off("mouseenter.hoverdir mouseleave.hoverdir"),this.isVisible||(this.direction=t||"top",this._showHover())},hide:function(t){this.rebuild(),this.isVisible&&(this.direction=t||"bottom",this._hideHover())},setOptions:function(e){this.options=t.extend(!0,{},this.defaults,this.options,e)},destroy:function(){this.$el.off("mouseenter.hoverdir mouseleave.hoverdir"),this.$el.data("hoverdir",null)},rebuild:function(t){"object"==typeof t&&this.setOptions(t),this._loadEvents()}},t.fn.hoverdir=function(i,s){return this.each(function(){var o=t(this).data("hoverdir"),r="object"==typeof i&&i;o||(o=new e(this,r),t(this).data("hoverdir",o)),"string"==typeof i&&(o[i](s),"destroy"===i&&t(this).data("hoverdir",!1))})},t.fn.hoverdir.Constructor=e});
|
||||
|
||||
|
||||
/**
|
||||
* @module Vide
|
||||
* @license MIT
|
||||
* @link http://vodkabears.github.io/vide/
|
||||
* @version 0.5.1
|
||||
*/
|
||||
!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):b("object"==typeof exports?require("jquery"):a.jQuery)}(this,function(a){"use strict";function b(a){var b,c,d,e,f,g,h,i={};for(f=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,",").split(","),h=0,g=f.length;h<g&&(c=f[h],c.search(/^(http|https|ftp):\/\//)===-1&&c.search(":")!==-1);h++)b=c.indexOf(":"),d=c.substring(0,b),e=c.substring(b+1),e||(e=void 0),"string"==typeof e&&(e="true"===e||"false"!==e&&e),"string"==typeof e&&(e=isNaN(e)?e:+e),i[d]=e;return null==d&&null==e?a:i}function c(a){a=""+a;var b,c,d,e=a.split(/\s+/),f="50%",g="50%";for(d=0,b=e.length;d<b;d++)c=e[d],"left"===c?f="0%":"right"===c?f="100%":"top"===c?g="0%":"bottom"===c?g="100%":"center"===c?0===d?f="50%":g="50%":0===d?f=c:g=c;return{x:f,y:g}}function d(b,c){var d=function(){c(this.src)};a('<img src="'+b+'.gif">').on("load",d),a('<img src="'+b+'.jpg">').on("load",d),a('<img src="'+b+'.jpeg">').on("load",d),a('<img src="'+b+'.png">').on("load",d)}function e(c,d,e){if(this.$element=a(c),"string"==typeof d&&(d=b(d)),e?"string"==typeof e&&(e=b(e)):e={},"string"==typeof d)d=d.replace(/\.\w*$/,"");else if("object"==typeof d)for(var f in d)d.hasOwnProperty(f)&&(d[f]=d[f].replace(/\.\w*$/,""));this.settings=a.extend({},g,e),this.path=d;try{this.init()}catch(i){if(i.message!==h)throw i}}var f="vide",g={volume:1,playbackRate:1,muted:!0,loop:!0,autoplay:!0,position:"50% 50%",posterType:"detect",resizing:!0,bgColor:"transparent",className:""},h="Not implemented";e.prototype.init=function(){var b,e,f=this,g=f.path,i=g,j="",k=f.$element,l=f.settings,m=c(l.position),n=l.posterType;e=f.$wrapper=a("<div>").addClass(l.className).css({position:"absolute","z-index":-1,top:0,left:0,bottom:0,right:0,overflow:"hidden","-webkit-background-size":"cover","-moz-background-size":"cover","-o-background-size":"cover","background-size":"cover","background-color":l.bgColor,"background-repeat":"no-repeat","background-position":m.x+" "+m.y}),"object"==typeof g&&(g.poster?i=g.poster:g.mp4?i=g.mp4:g.webm?i=g.webm:g.ogv&&(i=g.ogv)),"detect"===n?d(i,function(a){e.css("background-image","url("+a+")")}):"none"!==n&&e.css("background-image","url("+i+"."+n+")"),"static"===k.css("position")&&k.css("position","relative"),k.prepend(e),"object"==typeof g?(g.mp4&&(j+='<source src="'+g.mp4+'.mp4" type="video/mp4">'),g.webm&&(j+='<source src="'+g.webm+'.webm" type="video/webm">'),g.ogv&&(j+='<source src="'+g.ogv+'.ogv" type="video/ogg">'),b=f.$video=a("<video>"+j+"</video>")):b=f.$video=a('<video><source src="'+g+'.mp4" type="video/mp4"><source src="'+g+'.webm" type="video/webm"><source src="'+g+'.ogv" type="video/ogg"></video>');try{b.prop({autoplay:l.autoplay,loop:l.loop,volume:l.volume,muted:l.muted,defaultMuted:l.muted,playbackRate:l.playbackRate,defaultPlaybackRate:l.playbackRate})}catch(o){throw new Error(h)}b.css({margin:"auto",position:"absolute","z-index":-1,top:m.y,left:m.x,"-webkit-transform":"translate(-"+m.x+", -"+m.y+")","-ms-transform":"translate(-"+m.x+", -"+m.y+")","-moz-transform":"translate(-"+m.x+", -"+m.y+")",transform:"translate(-"+m.x+", -"+m.y+")",visibility:"hidden",opacity:0}).one("canplaythrough.vide",function(){f.resize()}).one("playing.vide",function(){b.css({visibility:"visible",opacity:1}),e.css("background-image","none")}),k.on("resize.vide",function(){l.resizing&&f.resize()}),e.append(b)},e.prototype.getVideoObject=function(){return this.$video[0]},e.prototype.resize=function(){if(this.$video){var a=this.$wrapper,b=this.$video,c=b[0],d=c.videoHeight,e=c.videoWidth,f=a.height(),g=a.width();g/e>f/d?b.css({width:g+2,height:"auto"}):b.css({width:"auto",height:f+2})}},e.prototype.destroy=function(){delete a[f].lookup[this.index],this.$video&&this.$video.off(f),this.$element.off(f).removeData(f),this.$wrapper.remove()},a[f]={lookup:[]},a.fn[f]=function(b,c){var d;return this.each(function(){d=a.data(this,f),d&&d.destroy(),d=new e(this,b,c),d.index=a[f].lookup.push(d)-1,a.data(this,f,d)}),this},a(document).ready(function(){var b=a(window);b.on("resize.vide",function(){for(var b,c=a[f].lookup.length,d=0;d<c;d++)b=a[f].lookup[d],b&&b.settings.resizing&&b.resize()}),b.on("unload.vide",function(){return!1}),a(document).find("[data-vide-bg]").each(function(b,c){var d=a(c),e=d.data("vide-options"),g=d.data("vide-bg");d[f](g,e)})})});
|
||||
|
||||
|
||||
/**
|
||||
* @module SmoothScroll.js
|
||||
*/
|
||||
!function(){function e(){z.keyboardSupport&&f("keydown",r)}function t(){if(!Y&&document.body){Y=!0;var t=document.body,o=document.documentElement,n=window.innerHeight,r=t.scrollHeight;if(A=document.compatMode.indexOf("CSS")>=0?o:t,D=t,e(),top!=self)L=!0;else if(r>n&&(t.offsetHeight<=n||o.offsetHeight<=n)){var a=document.createElement("div");a.style.cssText="position:absolute; z-index:-10000; top:0; left:0; right:0; height:"+A.scrollHeight+"px",document.body.appendChild(a);var i;M=function(){i||(i=setTimeout(function(){C||(a.style.height="0",a.style.height=A.scrollHeight+"px",i=null)},500))},setTimeout(M,10),f("resize",M);var l={attributes:!0,childList:!0,characterData:!1};if((k=new _(M)).observe(t,l),A.offsetHeight<=n){var c=document.createElement("div");c.style.clear="both",t.appendChild(c)}}z.fixedBackground||C||(t.style.backgroundAttachment="scroll",o.style.backgroundAttachment="scroll")}}function o(e,t,o){if(h(t,o),1!=z.accelerationMax){var n=Date.now()-P;if(n<z.accelerationDelta){var r=(1+50/n)/2;r>1&&(r=Math.min(r,z.accelerationMax),t*=r,o*=r)}P=Date.now()}if(K.push({x:t,y:o,lastX:t<0?.99:-.99,lastY:o<0?.99:-.99,start:Date.now()}),!q){var a=e===document.body,i=function(n){for(var r=Date.now(),l=0,c=0,u=0;u<K.length;u++){var d=K[u],s=r-d.start,f=s>=z.animationTime,m=f?1:s/z.animationTime;z.pulseAlgorithm&&(m=S(m));var w=d.x*m-d.lastX>>0,h=d.y*m-d.lastY>>0;l+=w,c+=h,d.lastX+=w,d.lastY+=h,f&&(K.splice(u,1),u--)}a?window.scrollBy(l,c):(l&&(e.scrollLeft+=l),c&&(e.scrollTop+=c)),t||o||(K=[]),K.length?I(i,e,1e3/z.frameRate+1):q=!1};I(i,e,0),q=!0}}function n(e){Y||t();var n=e.target,r=c(n);if(!r||e.defaultPrevented||e.ctrlKey)return!0;if(w(D,"embed")||w(n,"embed")&&/\.pdf/i.test(n.src)||w(D,"object"))return!0;var a=-e.wheelDeltaX||e.deltaX||0,l=-e.wheelDeltaY||e.deltaY||0;if(N&&(e.wheelDeltaX&&v(e.wheelDeltaX,120)&&(a=e.wheelDeltaX/Math.abs(e.wheelDeltaX)*-120),e.wheelDeltaY&&v(e.wheelDeltaY,120)&&(l=e.wheelDeltaY/Math.abs(e.wheelDeltaY)*-120)),a||l||(l=-e.wheelDelta||0),1===e.deltaMode&&(a*=40,l*=40),!z.touchpadSupport&&p(l))return!0;Math.abs(a)>1.2&&(a*=z.stepSize/120),Math.abs(l)>1.2&&(l*=z.stepSize/120),o(r,a,l),e.preventDefault(),i()}function r(e){var t=e.target,n=e.ctrlKey||e.altKey||e.metaKey||e.shiftKey&&e.keyCode!==O.spacebar;t.blur(),t.focus(),document.body.contains(D)||(D=document.activeElement);var r=/^(button|submit|radio|checkbox|file|color|image)$/i;if(/^(textarea|select|embed|object)$/i.test(t.nodeName)||w(t,"input")&&!r.test(t.type)||w(D,"video")||g(e)||t.isContentEditable||e.defaultPrevented||n)return!0;var a=0,l=0,u=c(D),d=u.clientHeight;switch(u==document.body&&(d=window.innerHeight),e.keyCode){case O.up:l=-z.arrowScroll;break;case O.down:l=z.arrowScroll;break;case O.spacebar:l=-(e.shiftKey?1:-1)*d*.9;break;case O.pageup:l=.9*-d;break;case O.pagedown:l=.9*d;break;case O.home:l=-u.scrollTop;break;case O.end:var s=u.scrollHeight-u.scrollTop-d;l=s>0?s+10:0;break;case O.left:a=-z.arrowScroll;break;case O.right:a=z.arrowScroll;break;default:return!0}o(u,a,l),e.preventDefault(),i()}function a(e){D=e.target}function i(){clearTimeout(T),T=setInterval(function(){j={}},1e3)}function l(e,t){for(var o=e.length;o--;)j[R(e[o])]=t;return t}function c(e){var t=[],o=document.body,n=A.scrollHeight;do{var r=j[R(e)];if(r)return l(t,r);if(t.push(e),n===e.scrollHeight){var a=d(A)&&d(o)||s(A);if(L&&u(A)||!L&&a)return l(t,V())}else if(u(e)&&s(e))return l(t,e)}while(e=e.parentElement)}function u(e){return e.clientHeight+10<e.scrollHeight}function d(e){return"hidden"!==getComputedStyle(e,"").getPropertyValue("overflow-y")}function s(e){var t=getComputedStyle(e,"").getPropertyValue("overflow-y");return"scroll"===t||"auto"===t}function f(e,t){window.addEventListener(e,t,!1)}function m(e,t){window.removeEventListener(e,t,!1)}function w(e,t){return(e.nodeName||"").toLowerCase()===t.toLowerCase()}function h(e,t){e=e>0?1:-1,t=t>0?1:-1,X.x===e&&X.y===t||(X.x=e,X.y=t,K=[],P=0)}function p(e){if(e)return B.length||(B=[e,e,e]),e=Math.abs(e),B.push(e),B.shift(),clearTimeout(E),E=setTimeout(function(){window.localStorage&&(localStorage.SS_deltaBuffer=B.join(","))},1e3),!b(120)&&!b(100)}function v(e,t){return Math.floor(e/t)==e/t}function b(e){return v(B[0],e)&&v(B[1],e)&&v(B[2],e)}function g(e){var t=e.target,o=!1;if(-1!=document.URL.indexOf("www.youtube.com/watch"))do{if(o=t.classList&&t.classList.contains("html5-video-controls"))break}while(t=t.parentNode);return o}function y(e){var t,o;return e*=z.pulseScale,e<1?t=e-(1-Math.exp(-e)):(e-=1,t=(o=Math.exp(-1))+(1-Math.exp(-e))*(1-o)),t*z.pulseNormalize}function S(e){return e>=1?1:e<=0?0:(1==z.pulseNormalize&&(z.pulseNormalize/=y(1)),y(e))}function x(e){for(var t in e)H.hasOwnProperty(t)&&(z[t]=e[t])}var D,k,M,T,E,H={frameRate:150,animationTime:400,stepSize:100,pulseAlgorithm:!0,pulseScale:4,pulseNormalize:1,accelerationDelta:20,accelerationMax:3,keyboardSupport:!0,arrowScroll:50,touchpadSupport:!1,fixedBackground:!0,excluded:""},z=H,C=!1,L=!1,X={x:0,y:0},Y=!1,A=document.documeLine truncated
|
||||
|
||||
/**
|
||||
* @module RD Range
|
||||
* @author Roman Kholiavko
|
||||
* @see http://cms.devoffice.com/coding-demo/marathoner/rd-range/documentation
|
||||
* @version 1.0
|
||||
*/
|
||||
(function(){!function(t,e,n){var o,i;return i="ontouchstart"in n,o=function(){function o(n,o){this.$element=t(n),this.options=t.extend(!0,{},this.Defaults,o),this.setClientOptions(this),this.createDOM(this),this.$pointer=t(n).find(".rd-range__pointer-1"),this.options.tooltip&&(this.$pointerTooltip=this.$pointer.find(".rd-range__pointer-tooltip"),this.$element.addClass("hasTooltip")),this.$line=t(n).find(".rd-range__line"),null!=t(n).attr("data-input")?this.$input=t(t(n).attr("data-input")):this.$input=t(this.Defaults.inputClassName),this.range&&(this.$pointer2=t(n).find(".rd-range__pointer-2"),null!=t(n).attr("data-input-2")?this.$input2=t(t(n).attr("data-input-2")):this.$input2=t(this.Defaults.inputClassName2),this.options.tooltip&&(this.$pointerTooltip2=this.$pointer2.find(".rd-range__pointer-tooltip"))),this.$doc=t(e),this.isMove=!1,this.initialization()}return o.prototype.Defaults={min:0,start:0,max:100,start2:0,step:1,minDiff:0,inputClassName:".rd-range-input-value",inputClassName2:".rd-range-input-value-2",tooltip:!1,callbacks:{onInit:!1,onChange:!1,onInputChange:!1,onMoveStart:!1,onMoveEnd:!1}},o.prototype.initialization=function(){var t;return t=this,t.setRange(t),t.applyHandlers(t),t.options.callbacks.onInit&&t.options.callbacks.onInit.call(this,t),t},o.prototype.createDOM=function(t){var e;e='<div class="rd-range__pointer rd-range__pointer-1">',t.options.tooltip&&(e+='<div class="rd-range__pointer-tooltip"></div>'),e+="</div>",t.range&&(e+='<div class="rd-range__pointer rd-range__pointer-2">',t.options.tooltip&&(e+='<div class="rd-range__pointer-tooltip"></div>'),e+="</div>"),t.$element.wrapInner('<div class="rd-range__wrap">'+e+'<div class="rd-range__line"></div> </div>')},o.prototype.setClientOptions=function(t){var e;e={min:t.$element.attr("data-min"),max:t.$element.attr("data-max"),step:t.$element.attr("data-step"),start:t.$element.data("start"),minDiff:t.$element.attr("data-min-diff"),precision:t.$element.attr("data-precision"),tooltip:t.$element.attr("data-tooltip")},t.options.start=[],(null!=e.start&&e.start.length>1||null!=t.options.start&&t.options.start.length>1)&&(t.range=!0),null!=e.min&&(t.options.min=Number(e.min)),null!=e.max&&(t.options.max=Number(e.max)),null!=e.start?t.options.start=e.start:t.options.start.push(t.options.min),t.currentValue=t.options.start[0],null!=e.step&&(t.options.step=Number(e.step)),null!=e.tooltip&&(t.options.tooltip=e.tooltip),null!=e.precision?t.options.precision=t.getNumDigitsAfterDecimalPlace(Number(e.precision)):t.options.precision=t.getNumDigitsAfterDecimalPlace(t.options.step),t.range&&(t.currentValue2=t.options.start[1],null!=e.minDiff?t.options.minDiff=Number(e.minDiff):null!=t.options.minDiff&&(t.options.minDiff=t.options.step))},o.prototype.setRange=function(t){return t.diff=t.options.max-t.options.min,t.delta=100*t.options.step/t.diff,t.currentPercentage=t.getPercentageByValue(t,t.currentValue),t.updatePointer1(t,t.currentPercentage,t.currentValue),t.range?(t.currentPercentage2=t.getPercentageByValue(t,t.currentValue2),t.updatePointer2(t,t.currentPercentage2,t.currentValue2)):void 0},o.prototype.applyHandlers=function(e){return e.$pointer.on(i?"touchstart":"mousedown",function(n){var o,r,a,u;if(!e.isMove)return e.isMove=!0,o=t(this),o.addClass("active"),a="touchmove"===n.type?n.originalEvent.targetTouches[0].pageX:n.pageX,r=e.getCoords(e.$element),u=e.getPercentage(e,a,r.left),e.options.callbacks.onMoveStart&&e.options.callbacks.onMoveStart.call(this,e),e.$doc.on(i?"touchmove":"mousemove",function(t){var n;return a="touchmove"===t.type?t.originalEvent.targetTouches[0].pageX:t.pageX,n=e.getPercentage(e,a,r.left),n!==u?(u=n,e.currentValue=e.getCurrentValue(e,u),e.range&&e.currentValue>=e.currentValue2-e.options.minDiff&&(n=e.checkPointer1Bounds(e)),e.updatePointer1(e,n,e.currentValue)):void 0}).on(i?"touchend":"mouseup",function(t){return setTimeout(function(){return e.isMove=!1},100),o.removeClass("active"),e.options.callbacks.onMoveEnd&&e.options.callbacks.onMoveEnd.call(this,e),i?e.$doc.off("touchmove"):e.$doc.off("mousemove"),e.$doc.off(t.type)}),!1}),"hidden"!==e.$input.attr("type")&&"readonly"!==e.$input.attr("readOnly")&&e.$input.on("keypress",function(t){return e.isAllowTyped(t.which)}).on("change",function(n){var o;return o=Math.abs(Number(t(this).val())),e.range&&(o>=e.currentValue2||o>e.currentValue2-e.options.minDiff)&&(e.checkPointer1Bounds(e),o=e.currentValue),o<e.options.min&&(o=e.options.min),e.currentValue=o,e.setRange(e),e.options.callbacks.onInputChange?e.options.callbacks.onInputChange.call(this,e):void 0}),e.range&&(e.$pointer2.on(i?"touchstart":"mousedown",function(n){var o,r,a,u;if(!e.isMove)return e.isMove=!0,o=t(this),o.addClass("active"),a="touchmove"===n.type?n.originalEvent.targetTouches[0].pageX:n.pageX,r=e.getCoords(e.$element),u=e.getPercentage(e,a,r.left),e.options.callbacks.onMoveStart&&e.options.callbacks.onMoveStart.call(this,e),e.$doc.on(i?"touchmove":"mousemove",function(t){var n;return a="touchmove"===t.type?Line truncated
|
||||
@@ -0,0 +1,161 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
var NOTICE_KEY = 'aiml_analytics_notice';
|
||||
var LEGACY_CONSENT_KEY = 'aiml_analytics_consent';
|
||||
var LEGACY_DISABLED_KEY = 'tianji.disabled';
|
||||
var configEl = document.getElementById('tianji-config');
|
||||
if (!configEl) {
|
||||
return;
|
||||
}
|
||||
|
||||
var trackerUrl = configEl.dataset.trackerUrl;
|
||||
var websiteId = configEl.dataset.websiteId;
|
||||
var userId = configEl.dataset.userId || '';
|
||||
|
||||
function getStorageItem(key) {
|
||||
try {
|
||||
return localStorage.getItem(key);
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function setStorageItem(key, value) {
|
||||
try {
|
||||
localStorage.setItem(key, value);
|
||||
} catch (e) {
|
||||
/* ignore storage errors */
|
||||
}
|
||||
}
|
||||
|
||||
function removeStorageItem(key) {
|
||||
try {
|
||||
localStorage.removeItem(key);
|
||||
} catch (e) {
|
||||
/* ignore storage errors */
|
||||
}
|
||||
}
|
||||
|
||||
function showBanner() {
|
||||
var banner = document.getElementById('cookie-consent-banner');
|
||||
if (banner) {
|
||||
banner.removeAttribute('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
function hideBanner() {
|
||||
var banner = document.getElementById('cookie-consent-banner');
|
||||
if (banner) {
|
||||
banner.setAttribute('hidden', '');
|
||||
}
|
||||
}
|
||||
|
||||
function trackEvent(name, data) {
|
||||
if (window.tianji && typeof window.tianji.track === 'function') {
|
||||
window.tianji.track(name, data || {});
|
||||
}
|
||||
}
|
||||
|
||||
function identifyUser() {
|
||||
if (!userId || !window.tianji || typeof window.tianji.identify !== 'function') {
|
||||
return;
|
||||
}
|
||||
window.tianji.identify({ userId: userId });
|
||||
}
|
||||
|
||||
function loadTracker() {
|
||||
if (document.querySelector('script[data-tianji-loaded="true"]')) {
|
||||
identifyUser();
|
||||
return;
|
||||
}
|
||||
|
||||
var script = document.createElement('script');
|
||||
script.async = true;
|
||||
script.defer = true;
|
||||
script.src = trackerUrl;
|
||||
script.setAttribute('data-website-id', websiteId);
|
||||
script.setAttribute('data-do-not-track', 'true');
|
||||
script.setAttribute('data-tianji-loaded', 'true');
|
||||
|
||||
script.onload = function () {
|
||||
identifyUser();
|
||||
document.dispatchEvent(new CustomEvent('tianji:ready'));
|
||||
};
|
||||
|
||||
document.head.appendChild(script);
|
||||
}
|
||||
|
||||
function migrateLegacyConsent() {
|
||||
var legacyConsent = getStorageItem(LEGACY_CONSENT_KEY);
|
||||
var legacyDisabled = getStorageItem(LEGACY_DISABLED_KEY);
|
||||
|
||||
if (legacyConsent === 'accepted') {
|
||||
setStorageItem(NOTICE_KEY, 'acknowledged');
|
||||
removeStorageItem(LEGACY_CONSENT_KEY);
|
||||
removeStorageItem(LEGACY_DISABLED_KEY);
|
||||
return 'migrated_acknowledged';
|
||||
}
|
||||
|
||||
if (legacyConsent === 'declined' || legacyDisabled === '1') {
|
||||
removeStorageItem(LEGACY_CONSENT_KEY);
|
||||
removeStorageItem(LEGACY_DISABLED_KEY);
|
||||
return 'migrated_declined';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function acknowledgeNotice() {
|
||||
setStorageItem(NOTICE_KEY, 'acknowledged');
|
||||
hideBanner();
|
||||
window.aimlTrackWhenReady('notice_acknowledged');
|
||||
}
|
||||
|
||||
function bindBannerControls() {
|
||||
var acknowledgeBtn = document.getElementById('cookie-consent-acknowledge');
|
||||
var manageLinks = document.querySelectorAll('[data-open-cookie-preferences]');
|
||||
|
||||
if (acknowledgeBtn) {
|
||||
acknowledgeBtn.addEventListener('click', acknowledgeNotice);
|
||||
}
|
||||
manageLinks.forEach(function (link) {
|
||||
link.addEventListener('click', function (event) {
|
||||
event.preventDefault();
|
||||
showBanner();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
window.aimlTrack = function (name, data) {
|
||||
trackEvent(name, data);
|
||||
};
|
||||
|
||||
window.aimlTrackWhenReady = function (name, data) {
|
||||
if (window.tianji && typeof window.tianji.track === 'function') {
|
||||
trackEvent(name, data);
|
||||
return;
|
||||
}
|
||||
document.addEventListener('tianji:ready', function handler() {
|
||||
document.removeEventListener('tianji:ready', handler);
|
||||
trackEvent(name, data);
|
||||
});
|
||||
};
|
||||
|
||||
function initNotice() {
|
||||
bindBannerControls();
|
||||
loadTracker();
|
||||
|
||||
var migration = migrateLegacyConsent();
|
||||
var notice = getStorageItem(NOTICE_KEY);
|
||||
|
||||
if (notice === 'acknowledged' || migration === 'migrated_acknowledged') {
|
||||
hideBanner();
|
||||
return;
|
||||
}
|
||||
|
||||
showBanner();
|
||||
}
|
||||
|
||||
initNotice();
|
||||
})();
|
||||
@@ -0,0 +1,193 @@
|
||||
{% load static %}
|
||||
<!DOCTYPE html>
|
||||
<html class="wide wow-animation" lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% block title %}{{ SITE_NAME }}{% endblock %}</title>
|
||||
<meta name="description" content="{% block meta_description %}{{ SITE_NAME }} — {{ SITE_TAGLINE }}. {{ CONTACT_SERVICE_AREA }}.{% endblock %}">
|
||||
<meta name="robots" content="{% block meta_robots %}index, follow{% endblock %}">
|
||||
<link rel="canonical" href="{% block canonical_url %}{{ PUBLIC_SITE_URL }}{{ request.path }}{% endblock %}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:site_name" content="{{ SITE_NAME }}">
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta property="og:title" content="{% block og_title %}{{ SITE_NAME }}{% endblock %}">
|
||||
<meta property="og:description" content="{% block og_description %}{{ SITE_NAME }} — {{ SITE_TAGLINE }}. {{ CONTACT_SERVICE_AREA }}.{% endblock %}">
|
||||
<meta property="og:url" content="{% block og_url %}{{ PUBLIC_SITE_URL }}{{ request.path }}{% endblock %}">
|
||||
{% block og_image %}
|
||||
<meta property="og:image" content="{{ PUBLIC_SITE_URL }}{% static 'images/slider-minimal-slide-1-1920x968.jpg' %}">
|
||||
<meta property="og:image:alt" content="{{ SITE_NAME }}">
|
||||
{% endblock %}
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="{% block twitter_title %}{{ SITE_NAME }}{% endblock %}">
|
||||
<meta name="twitter:description" content="{% block twitter_description %}{{ SITE_NAME }} — {{ SITE_TAGLINE }}. {{ CONTACT_SERVICE_AREA }}.{% endblock %}">
|
||||
<link rel="icon" href="{% static 'brand/favicon-32.png' %}" type="image/png">
|
||||
<link rel="apple-touch-icon" href="{% static 'brand/apple-touch-icon.png' %}">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Work+Sans:300,400,500,700,800%7CPoppins:300,400,700">
|
||||
<link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/fonts.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'css/style.css' %}" id="main-styles-link">
|
||||
<link rel="stylesheet" href="{% static 'css/theme-overrides.css' %}">
|
||||
{% block structured_data %}{% endblock %}
|
||||
{% block extra_head %}{% endblock %}
|
||||
</head>
|
||||
<body class="{% block body_class %}{% endblock %}">
|
||||
{% if tianji_enabled %}
|
||||
<div id="tianji-config"
|
||||
data-tracker-url="{{ tianji_tracker_url }}"
|
||||
data-website-id="{{ tianji_website_id }}"
|
||||
data-page-name="{{ page_name }}"
|
||||
{% if user.is_authenticated %}data-user-id="{{ user.pk }}"{% endif %}
|
||||
hidden></div>
|
||||
{% endif %}
|
||||
{% block body %}
|
||||
<div class="page">
|
||||
{% block header %}
|
||||
<header class="section page-header">
|
||||
<div class="rd-navbar-wrap">
|
||||
<nav class="rd-navbar rd-navbar-corporate" data-layout="rd-navbar-fixed" data-sm-layout="rd-navbar-fixed" data-md-layout="rd-navbar-fixed" data-md-device-layout="rd-navbar-fixed" data-lg-layout="rd-navbar-static" data-lg-device-layout="rd-navbar-static" data-lg-stick-up="true" data-lg-stick-up-offset="118px" data-xl-layout="rd-navbar-static" data-xl-device-layout="rd-navbar-static" data-xl-stick-up="true" data-xl-stick-up-offset="118px" data-xxl-layout="rd-navbar-static" data-xxl-device-layout="rd-navbar-static" data-xxl-stick-up-offset="118px" data-xxl-stick-up="true">
|
||||
<div class="rd-navbar-aside-outer">
|
||||
<div class="rd-navbar-aside">
|
||||
<div class="rd-navbar-panel">
|
||||
<button class="rd-navbar-toggle" data-rd-navbar-toggle="#rd-navbar-nav-wrap-1"><span></span></button>
|
||||
<a class="rd-navbar-brand" href="{% url 'public:home' %}" data-tianji-event="nav_home">
|
||||
<img src="{% static 'brand/logo.png' %}" alt="{{ SITE_NAME }}" width="151" height="44"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="rd-navbar-collapse">
|
||||
<button class="rd-navbar-collapse-toggle rd-navbar-fixed-element-1" data-rd-navbar-toggle="#rd-navbar-collapse-content-1"><span></span></button>
|
||||
<div class="rd-navbar-collapse-content" id="rd-navbar-collapse-content-1">
|
||||
{% if CONTACT_PHONE %}
|
||||
<article class="unit align-items-center">
|
||||
<div class="unit-left"><span class="icon icon-md icon-modern mdi mdi-phone"></span></div>
|
||||
<div class="unit-body"><a class="link-default" href="tel:{{ CONTACT_PHONE_TEL }}">{{ CONTACT_PHONE }}</a></div>
|
||||
</article>
|
||||
{% endif %}
|
||||
<article class="unit align-items-center">
|
||||
<div class="unit-left"><span class="icon icon-md icon-modern mdi mdi-map-marker"></span></div>
|
||||
<div class="unit-body"><span class="link-default">{% if CONTACT_ADDRESS %}{{ CONTACT_ADDRESS }}{% else %}{{ CONTACT_SERVICE_AREA }}{% endif %}</span></div>
|
||||
</article>
|
||||
<a class="button button-gray-bordered button-winona" href="{% url 'public:contact' %}" data-tianji-event="nav_get_in_touch">Get in touch</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rd-navbar-main-outer">
|
||||
<div class="rd-navbar-main">
|
||||
<div class="rd-navbar-nav-wrap" id="rd-navbar-nav-wrap-1">
|
||||
<ul class="rd-navbar-nav">
|
||||
<li class="rd-nav-item {% if page_name == 'home' %}active{% endif %}">
|
||||
<a class="rd-nav-link" href="{% url 'public:home' %}" data-tianji-event="nav_home">Home</a>
|
||||
</li>
|
||||
<li class="rd-nav-item {% if page_name == 'about' %}active{% endif %}">
|
||||
<a class="rd-nav-link" href="{% url 'public:about' %}" data-tianji-event="nav_about">About</a>
|
||||
</li>
|
||||
<li class="rd-nav-item {% if page_name == 'contact' %}active{% endif %}">
|
||||
<a class="rd-nav-link" href="{% url 'public:contact' %}" data-tianji-event="nav_contact">Contact</a>
|
||||
</li>
|
||||
{% for item in public_nav_extra %}
|
||||
<li class="rd-nav-item {% if page_name == item.section %}active{% endif %}">
|
||||
<a class="rd-nav-link" href="{% url item.url_name %}">{{ item.label }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
{% endblock %}
|
||||
|
||||
{% if messages %}
|
||||
<ul class="flash">
|
||||
{% for message in messages %}
|
||||
<li class="{{ message.tags }}">{{ message }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
{% block footer %}
|
||||
<footer class="section footer-advanced bg-gray-700">
|
||||
<div class="footer-advanced-main">
|
||||
<div class="container">
|
||||
<div class="row row-50">
|
||||
<div class="col-lg-6">
|
||||
<div class="footer-brand-row">
|
||||
<img src="{% static 'brand/logo.png' %}" alt="{{ SITE_NAME }}">
|
||||
<div>
|
||||
<h5 class="font-weight-bold text-uppercase text-white" style="margin:0">{{ SITE_NAME }}</h5>
|
||||
<span style="color:#7dd3da;font-size:12px">{{ SITE_TAGLINE }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<p class="footer-advanced-text">Replace this footer blurb with the client’s positioning.{% if CONTACT_ADDRESS %} {{ CONTACT_ADDRESS }}.{% endif %}</p>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<h5 class="font-weight-bold text-uppercase text-white">Navigate</h5>
|
||||
<ul class="list-marked list-marked-sm">
|
||||
<li><a href="{% url 'public:home' %}">Home</a></li>
|
||||
<li><a href="{% url 'public:about' %}">About</a></li>
|
||||
<li><a href="{% url 'public:contact' %}">Contact</a></li>
|
||||
<li><a href="{% url 'public:terms' %}">Terms of Service</a></li>
|
||||
{% for item in public_nav_extra %}
|
||||
<li><a href="{% url item.url_name %}">{{ item.label }}</a></li>
|
||||
{% endfor %}
|
||||
{% if user.is_authenticated %}
|
||||
<li><a href="{% url 'dashboard:home' %}">Client portal</a></li>
|
||||
{% else %}
|
||||
<li><a href="{% url 'accounts:login' %}">Client portal</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
<p style="margin-top:16px">
|
||||
<a class="footer-link-btn" href="{% url 'public:terms' %}" data-tianji-event="footer_cookie_preferences">Cookie Preferences</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-advanced-aside">
|
||||
<div class="container">
|
||||
<div class="footer-advanced-layout">
|
||||
<a class="brand" href="{% url 'public:home' %}">
|
||||
<img src="{% static 'brand/logo.png' %}" alt="{{ SITE_NAME }}" width="151" height="44"/>
|
||||
</a>
|
||||
<div class="footer-aside-copy">
|
||||
<p class="rights">
|
||||
<span>© </span><span>{% now "Y" %} </span><span>{{ SITE_NAME }}</span><span>. </span>
|
||||
</p>
|
||||
<p class="footer-made-by">
|
||||
Made by <a href="{{ CREDIT_URL }}" target="_blank" rel="noopener noreferrer">{{ CREDIT_NAME }}</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% if tianji_enabled %}
|
||||
<div id="cookie-consent-banner" class="cookie-consent-banner" hidden role="dialog" aria-modal="true"
|
||||
aria-labelledby="cookie-consent-title" aria-describedby="cookie-consent-description">
|
||||
<div class="cookie-consent-content">
|
||||
<h2 id="cookie-consent-title" class="visually-hidden">Analytics notice</h2>
|
||||
<p class="cookie-consent-text" id="cookie-consent-description">
|
||||
<span class="cookie-consent-text-full">We use analytics to understand how visitors use our site. This helps us improve performance and content. We never sell or share your personal data with third parties for marketing. <a class="cookie-consent-link" href="{% url 'public:terms' %}">Terms of Service</a></span>
|
||||
<span class="cookie-consent-text-short">We use analytics on this site. <a class="cookie-consent-link" href="{% url 'public:terms' %}">Terms</a></span>
|
||||
</p>
|
||||
<div class="cookie-consent-actions">
|
||||
<button type="button" id="cookie-consent-acknowledge" class="button button-primary button-winona">Acknowledge</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="{% static 'js/tianji-consent.js' %}"></script>
|
||||
{% endif %}
|
||||
{% block tracking_events %}{% endblock %}
|
||||
<script src="{% static 'js/core.min.js' %}"></script>
|
||||
<script src="{% static 'js/script.js' %}"></script>
|
||||
{% block extra_js %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||