added more preview pages and more templates
@@ -0,0 +1,257 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>About | T.R.B. Painting</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Learn about T.R.B. Painting — interior painting, exterior painting, and power washing. Call (630) 606-6776.">
|
||||
|
||||
<meta name="format-detection" content="telephone=no"/>
|
||||
<link rel="icon" href="images/favicon.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" href="css/grid.css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
|
||||
<script src="js/jquery.js"></script>
|
||||
<script src="js/jquery-migrate-1.2.1.js"></script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<html class="lt-ie9">
|
||||
<div style=' clear: both; text-align:center; position: relative;'>
|
||||
<a href="http://windows.microsoft.com/en-US/internet-explorer/..">
|
||||
<img src="images/ie8-panel/warning_bar_0000_us.jpg" border="0" height="42" width="820"
|
||||
alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today."/>
|
||||
</a>
|
||||
</div>
|
||||
<script src="js/html5shiv.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src='js/device.min.js'></script>
|
||||
<style>
|
||||
.preview-concept-banner{position:fixed;top:0;left:0;right:0;z-index:99999;background:#1a2332;color:#fff;font:600 13px/1.4 system-ui,sans-serif;padding:8px 16px;text-align:center}
|
||||
.preview-concept-banner span{opacity:.85;font-weight:400}
|
||||
.preview-concept-banner a{color:#fff;text-decoration:underline}
|
||||
body{padding-top:36px}
|
||||
.aiml-site-credit{text-align:center;padding:12px 16px 24px;font:14px/1.4 system-ui,sans-serif;color:#555}
|
||||
.aiml-site-credit a{color:#1a2332;text-decoration:underline}
|
||||
footer .aiml-site-credit{color:rgba(255,255,255,.85)}
|
||||
footer .aiml-site-credit a{color:#fff}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="preview-concept-banner">UX Concept Preview — T.R.B. Painting <span>· Concept site — not live</span> · <a href="ux-gallery.html">Feature gallery</a> · <a href="pricing.html">Pricing</a></div>
|
||||
|
||||
<div class="page">
|
||||
<!--========================================================
|
||||
HEADER
|
||||
=========================================================-->
|
||||
<header class="bg2">
|
||||
<div id="stuck_container" class="stuck_container">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<p class="brand_name">
|
||||
<a href="index.html">T.R.B. Painting</a>
|
||||
</p>
|
||||
</div>
|
||||
<nav class="nav" aria-label="Primary">
|
||||
<ul class="sf-menu" data-type="navbar">
|
||||
<li>
|
||||
<a href="index.html">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="services.html">Services</a>
|
||||
<ul>
|
||||
<li><a href="services.html#interior">Interior painting</a></li>
|
||||
<li><a href="services.html#exterior">Exterior painting</a></li>
|
||||
<li><a href="services.html#power-washing">Power washing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="about.html">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="gallery.html">Gallery</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="contact.html">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<!--========================================================
|
||||
CONTENT
|
||||
=========================================================-->
|
||||
<main>
|
||||
<section class="well4">
|
||||
<div class="container">
|
||||
<h3>About T.R.B. Painting</h3>
|
||||
<div class="row">
|
||||
<div class="preffix_1 grid_10">
|
||||
<p>T.R.B. Painting is a local painting contractor focused on three core services: interior painting, exterior painting, and power washing. We believe great results start with honest estimates, careful prep, and finishes that hold up. Call <a href="tel:+16306066776">(630) 606-6776</a> to discuss your project.</p>
|
||||
<a class="btn" href="contact.html">Contact T.R.B.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="bg3 well5">
|
||||
<div class="container">
|
||||
<h3>What we stand for</h3>
|
||||
<ul class="row index-list">
|
||||
<li class="grid_4 wow fadeInLeft">
|
||||
<h5>Clear communication</h5>
|
||||
<p class="text1">Updates you can count on<br> from estimate to finish</p>
|
||||
<a class="btn2" href="services.html">View services</a>
|
||||
</li>
|
||||
<li class="grid_4 wow fadeInLeft" data-wow-delay="0.2s">
|
||||
<h5>Quality prep</h5>
|
||||
<p class="text1">Surfaces cleaned and ready<br> so paint lasts longer</p>
|
||||
<a class="btn2" href="services.html">View services</a>
|
||||
</li>
|
||||
<li class="grid_4 wow fadeInLeft" data-wow-delay="0.4s">
|
||||
<h5>Clean jobsite</h5>
|
||||
<p class="text1">Protective coverings and<br> tidy wrap-up every time</p>
|
||||
<a class="btn2" href="services.html">View services</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<section class="well4">
|
||||
<div class="container">
|
||||
<h3>Projects we take on</h3>
|
||||
<div class="row wow fadeInUp">
|
||||
<div class="grid_6">
|
||||
<div class="box2">
|
||||
<div class="box2_aside">
|
||||
<img class="circle" src="images/page-4_img01.jpg" alt="Interior painting sample" loading="lazy" decoding="async">
|
||||
</div>
|
||||
<div class="box2_cnt__no-flow">
|
||||
<h4>Interior painting</h4>
|
||||
<p>Single rooms or whole-home interiors — walls, ceilings, trim, and doors finished with clean lines.</p>
|
||||
<h5><a href="contact.html">Request an estimate</a></h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_6">
|
||||
<div class="box2">
|
||||
<div class="box2_aside">
|
||||
<img class="circle" src="images/page-4_img02.jpg" alt="Exterior painting sample" loading="lazy" decoding="async">
|
||||
</div>
|
||||
<div class="box2_cnt__no-flow">
|
||||
<h4>Exterior painting</h4>
|
||||
<p>Siding, trim, and outdoor surfaces coated for protection and curb appeal.</p>
|
||||
<h5><a href="contact.html">Request an estimate</a></h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt1 wow fadeInUp">
|
||||
<div class="grid_6">
|
||||
<div class="box2">
|
||||
<div class="box2_aside">
|
||||
<img class="circle" src="images/page-4_img03.jpg" alt="Power washing sample" loading="lazy" decoding="async">
|
||||
</div>
|
||||
<div class="box2_cnt__no-flow">
|
||||
<h4>Power washing</h4>
|
||||
<p>Wash homes and hard surfaces to restore appearance and prepare for paint.</p>
|
||||
<h5><a href="contact.html">Request an estimate</a></h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_6">
|
||||
<div class="box2">
|
||||
<div class="box2_aside">
|
||||
<img class="circle" src="images/page-4_img04.jpg" alt="Job walkthrough with homeowner" loading="lazy" decoding="async">
|
||||
</div>
|
||||
<div class="box2_cnt__no-flow">
|
||||
<h4>Estimate & walkthrough</h4>
|
||||
<p>We walk the job with you, answer questions, and price the work before we start.</p>
|
||||
<h5><a href="contact.html">Request an estimate</a></h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="parallax parallax_2" data-url="images/parallax05.jpg">
|
||||
<div class="container">
|
||||
<h3>Fair, transparent pricing</h3>
|
||||
<div class="row">
|
||||
<div class="preffix_1 grid_10">
|
||||
<p>Every home is different — square footage, surface condition, and color choices all affect the quote. We explain the scope clearly so you know what you are paying for.</p>
|
||||
<ul class="marked-list1">
|
||||
<li>Written estimates before work begins</li>
|
||||
<li>No surprise charges for standard prep</li>
|
||||
<li>Call (630) 606-6776 for a free quote</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="well3">
|
||||
<div class="container">
|
||||
<h3>Get started</h3>
|
||||
<div class="row">
|
||||
<div class="preffix_1 grid_10">
|
||||
<p>Ready for interior painting, exterior painting, or power washing? Call <a href="tel:+16306066776">(630) 606-6776</a> or send a message on our <a href="contact.html">contact page</a>.</p>
|
||||
<p><a class="btn" href="contact.html">Contact T.R.B. Painting</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!--========================================================
|
||||
FOOTER
|
||||
=========================================================-->
|
||||
<footer class="parallax" data-url="images/parallax02.jpg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-map-marker" aria-hidden="true"></span>
|
||||
<p>Service area TBD<br><span style="opacity:.85">Confirm coverage with T.R.B. Painting</span></p>
|
||||
</address>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"></span>
|
||||
<p>Email TBD</p>
|
||||
</address>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-mobile" aria-hidden="true"></span>
|
||||
<p><a href="tel:+16306066776">(630) 606-6776</a></p>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
<p class="copy">
|
||||
T.R.B. Painting © <span id="copyright-year"></span>
|
||||
<span>All Rights Reserved</span>
|
||||
|
|
||||
<a href="privacy.html">Privacy Policy</a>
|
||||
</p>
|
||||
<p class="aiml-site-credit">Made by <a href="https://aimloperations.com" rel="noopener noreferrer" target="_blank">AI ML Operations, LLC</a></p>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script src="js/script.js"></script>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
function labelToggle() {
|
||||
var t = document.querySelector('.rd-mobilepanel_toggle');
|
||||
if (t && !t.getAttribute('aria-label')) t.setAttribute('aria-label', 'Open menu');
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
labelToggle();
|
||||
setTimeout(labelToggle, 500);
|
||||
setTimeout(labelToggle, 1500);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,467 @@
|
||||
/* Shared UX gallery + pricing hub (platform proposals) */
|
||||
:root {
|
||||
--ink: #12141a;
|
||||
--muted: #5c6570;
|
||||
--surface: #f3f5f7;
|
||||
--card: #fff;
|
||||
--border: #d9dee5;
|
||||
--accent: #1a4f6e;
|
||||
--accent-2: #c45c26;
|
||||
--ok: #1a7f4b;
|
||||
--warn: #b45309;
|
||||
--banner: #111827;
|
||||
--radius: 4px;
|
||||
--font: "Segoe UI", system-ui, sans-serif;
|
||||
--display: Georgia, "Times New Roman", serif;
|
||||
}
|
||||
|
||||
* { box-sizing: border-box; }
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: var(--font);
|
||||
color: var(--ink);
|
||||
background: var(--surface);
|
||||
line-height: 1.5;
|
||||
}
|
||||
a { color: var(--accent); }
|
||||
.proposal-banner {
|
||||
background: var(--banner);
|
||||
color: #e5e7eb;
|
||||
font-size: 13px;
|
||||
padding: 8px 16px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 12px;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
.proposal-banner a { color: #93c5fd; text-decoration: none; }
|
||||
.proposal-banner a:hover { text-decoration: underline; }
|
||||
.proposal-banner .tag {
|
||||
display: inline-block;
|
||||
background: var(--accent);
|
||||
color: #fff;
|
||||
padding: 2px 8px;
|
||||
border-radius: 2px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
font-weight: 600;
|
||||
}
|
||||
.hub-hero {
|
||||
background: linear-gradient(135deg, #0b1f33 0%, #1a4f6e 55%, #2a6f8f 100%);
|
||||
color: #fff;
|
||||
padding: 56px 24px 48px;
|
||||
}
|
||||
.hub-hero.paint {
|
||||
background: linear-gradient(135deg, #1a2332 0%, #3d4a5c 50%, #c4a574 120%);
|
||||
}
|
||||
.hub-hero h1 {
|
||||
font-family: var(--display);
|
||||
font-weight: 700;
|
||||
letter-spacing: -0.02em;
|
||||
margin: 0 0 12px;
|
||||
font-size: clamp(1.6rem, 3vw, 2.2rem);
|
||||
}
|
||||
.hub-hero p { max-width: 560px; margin: 0; opacity: 0.92; }
|
||||
.hub-section {
|
||||
max-width: 1100px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 24px 8px;
|
||||
}
|
||||
.hub-section h2 {
|
||||
font-family: var(--display);
|
||||
font-size: 1.25rem;
|
||||
margin: 0 0 6px;
|
||||
}
|
||||
.hub-section .sec-lead {
|
||||
margin: 0 0 16px;
|
||||
color: var(--muted);
|
||||
font-size: 14px;
|
||||
}
|
||||
.hub-grid {
|
||||
max-width: 1100px;
|
||||
margin: 0 auto 40px;
|
||||
padding: 0 24px;
|
||||
display: grid;
|
||||
gap: 16px;
|
||||
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
||||
}
|
||||
.hub-card {
|
||||
background: var(--card);
|
||||
border: 1px solid var(--border);
|
||||
padding: 20px;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
transition: border-color 0.15s, transform 0.15s;
|
||||
display: block;
|
||||
}
|
||||
.hub-card:hover {
|
||||
border-color: var(--accent);
|
||||
transform: translateY(-2px);
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
.hub-card.planned {
|
||||
opacity: 0.85;
|
||||
border-style: dashed;
|
||||
}
|
||||
.hub-card .eyebrow {
|
||||
font-size: 11px;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.08em;
|
||||
color: var(--accent);
|
||||
font-weight: 600;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.hub-card.paint .eyebrow { color: var(--accent-2); }
|
||||
.hub-card h3 {
|
||||
margin: 0 0 8px;
|
||||
font-size: 18px;
|
||||
font-family: var(--display);
|
||||
}
|
||||
.hub-card p { margin: 0; font-size: 14px; color: var(--muted); }
|
||||
.hub-card .status {
|
||||
display: inline-block;
|
||||
margin-top: 10px;
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.04em;
|
||||
color: var(--ok);
|
||||
}
|
||||
.hub-card.planned .status { color: var(--warn); }
|
||||
|
||||
/* Pricing */
|
||||
.pricing-layout {
|
||||
max-width: 960px;
|
||||
margin: 0 auto;
|
||||
padding: 32px 24px 64px;
|
||||
display: grid;
|
||||
gap: 24px;
|
||||
grid-template-columns: 1fr minmax(240px, 300px);
|
||||
align-items: start;
|
||||
}
|
||||
@media (max-width: 800px) {
|
||||
.pricing-layout { grid-template-columns: 1fr; }
|
||||
}
|
||||
.price-panel, .price-summary {
|
||||
background: var(--card);
|
||||
border: 1px solid var(--border);
|
||||
padding: 20px;
|
||||
}
|
||||
.price-panel h2, .price-summary h2 {
|
||||
font-family: var(--display);
|
||||
font-size: 1.15rem;
|
||||
margin: 0 0 16px;
|
||||
}
|
||||
.feat-row {
|
||||
display: grid;
|
||||
grid-template-columns: auto 1fr auto auto;
|
||||
gap: 12px;
|
||||
align-items: start;
|
||||
padding: 14px 0;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
.feat-row:last-child { border-bottom: none; }
|
||||
.feat-row.locked { background: #f8fafc; margin: 0 -12px; padding-left: 12px; padding-right: 12px; }
|
||||
.feat-row label { font-weight: 600; cursor: pointer; }
|
||||
.feat-row .desc { font-size: 13px; color: var(--muted); font-weight: 400; margin-top: 2px; }
|
||||
.feat-row .amt { font-size: 13px; text-align: right; white-space: nowrap; color: var(--muted); }
|
||||
.feat-row .amt strong { display: block; color: var(--ink); font-size: 14px; }
|
||||
.feat-row input:disabled + .feat-text label { cursor: default; }
|
||||
.dep-note { font-size: 12px; color: var(--warn); margin-top: 4px; }
|
||||
.price-summary { position: sticky; top: 56px; }
|
||||
.price-summary .line {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
padding: 8px 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
.price-summary .total {
|
||||
border-top: 2px solid var(--ink);
|
||||
margin-top: 12px;
|
||||
padding-top: 14px;
|
||||
font-size: 18px;
|
||||
font-weight: 700;
|
||||
font-family: var(--display);
|
||||
}
|
||||
.price-summary .disclaimer {
|
||||
margin-top: 16px;
|
||||
font-size: 12px;
|
||||
color: var(--muted);
|
||||
}
|
||||
.stub-page {
|
||||
min-height: calc(100vh - 40px);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 40px 24px;
|
||||
}
|
||||
.stub-card {
|
||||
background: var(--card);
|
||||
border: 1px solid var(--border);
|
||||
max-width: 480px;
|
||||
padding: 32px;
|
||||
text-align: center;
|
||||
}
|
||||
.stub-card h1 { font-family: var(--display); font-size: 1.5rem; margin: 0 0 8px; }
|
||||
.stub-card p { color: var(--muted); margin: 0 0 20px; }
|
||||
.stub-card a.btn {
|
||||
display: inline-block;
|
||||
background: var(--accent);
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
padding: 10px 18px;
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* —— Portal shell —— */
|
||||
body.portal { margin: 0; background: var(--surface); font-family: var(--font); color: var(--ink); }
|
||||
.portal-shell { display: flex; min-height: calc(100vh - 36px); }
|
||||
.portal-sidebar {
|
||||
width: 220px; flex-shrink: 0; background: #0b1f33; color: #cbd5e1;
|
||||
display: flex; flex-direction: column;
|
||||
}
|
||||
.portal-brand {
|
||||
padding: 16px 18px; border-bottom: 1px solid rgba(255,255,255,.08);
|
||||
font-family: var(--display); font-weight: 700; color: #fff; font-size: 14px;
|
||||
text-decoration: none; display: block;
|
||||
}
|
||||
.portal-brand span { display: block; color: #7dd3da; font-size: 11px; font-weight: 600; letter-spacing: .04em; margin-top: 2px; font-family: var(--font); }
|
||||
.portal-nav { padding: 12px 0; flex: 1; overflow-y: auto; }
|
||||
.portal-nav .nav-section {
|
||||
font-size: 10px; text-transform: uppercase; letter-spacing: .1em; color: #64748b;
|
||||
padding: 14px 18px 6px;
|
||||
}
|
||||
.portal-nav a {
|
||||
display: block; padding: 9px 18px; color: #94a3b8; text-decoration: none; font-size: 13px;
|
||||
border-left: 3px solid transparent;
|
||||
}
|
||||
.portal-nav a:hover { color: #fff; background: rgba(255,255,255,.04); }
|
||||
.portal-nav a.active { color: #fff; background: rgba(26,79,110,.35); border-left-color: #7dd3da; }
|
||||
.portal-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
|
||||
.portal-topbar {
|
||||
background: #fff; border-bottom: 1px solid var(--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: var(--display); font-weight: 600; }
|
||||
.portal-user { font-size: 13px; color: var(--muted); }
|
||||
.portal-user strong { color: var(--ink); }
|
||||
.portal-user a { color: var(--accent); }
|
||||
.portal-content { padding: 24px; flex: 1; }
|
||||
.proposal-note {
|
||||
border-left: 3px solid var(--accent); background: #e8f0f5; padding: 12px 16px;
|
||||
margin: 0 0 20px; font-size: 14px; color: #0d3a45;
|
||||
}
|
||||
.stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; margin-bottom: 24px; }
|
||||
.stat-card { background: #fff; border: 1px solid var(--border); padding: 18px; }
|
||||
.stat-card .label { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
|
||||
.stat-card .value { font-size: 28px; font-weight: 700; font-family: var(--display); margin-top: 4px; }
|
||||
.stat-card .delta { font-size: 12px; margin-top: 4px; color: var(--ok); }
|
||||
.panel { background: #fff; border: 1px solid var(--border); margin-bottom: 20px; }
|
||||
.panel-h {
|
||||
padding: 14px 18px; border-bottom: 1px solid var(--border);
|
||||
display: flex; align-items: center; justify-content: space-between; gap: 12px;
|
||||
}
|
||||
.panel-h h2 { margin: 0; font-size: 15px; font-family: var(--display); font-weight: 600; }
|
||||
.panel-b { padding: 18px; }
|
||||
.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: #7dd3da; background: transparent; }
|
||||
.split { grid-template-columns: 1fr; }
|
||||
}
|
||||
.btn {
|
||||
display: inline-block; padding: 9px 18px; font-size: 13px; font-weight: 600;
|
||||
border: none; cursor: pointer; text-decoration: none; font-family: var(--font);
|
||||
}
|
||||
.btn-primary { background: var(--accent); color: #fff; }
|
||||
.btn-primary:hover { background: #143d56; color: #fff; text-decoration: none; }
|
||||
.btn-ghost { background: transparent; border: 1px solid var(--border); color: var(--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: .06em;
|
||||
color: var(--muted); padding: 10px 12px; border-bottom: 1px solid var(--border); font-weight: 600;
|
||||
}
|
||||
.table td { padding: 12px; border-bottom: 1px solid var(--border); vertical-align: middle; }
|
||||
.table tr:hover td { background: #f8fafc; }
|
||||
.table a { color: var(--accent); 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: .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-paid { background: #d1fae5; color: #065f46; }
|
||||
.badge-open { background: #fef3c7; color: #92400e; }
|
||||
.badge-draft { background: #f3f4f6; color: #4b5563; }
|
||||
.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(--border); font: inherit; background: #fff; box-sizing: border-box;
|
||||
}
|
||||
.field textarea { min-height: 100px; resize: vertical; }
|
||||
.field .hint { font-size: 12px; color: var(--muted); margin-top: 4px; }
|
||||
.login-wrap {
|
||||
min-height: calc(100vh - 36px); display: flex; align-items: center; justify-content: center;
|
||||
background: linear-gradient(160deg, #0b1f33, #1a4f6e 60%, #e8f0f5 60%); padding: 24px;
|
||||
}
|
||||
.login-card { background: #fff; width: 100%; max-width: 400px; padding: 36px 32px; border: 1px solid var(--border); }
|
||||
.login-card h1 { font-family: var(--display); font-size: 22px; margin: 0 0 6px; }
|
||||
.login-card .sub { color: var(--muted); font-size: 14px; margin: 0 0 24px; }
|
||||
.chart-ph {
|
||||
height: 220px; background: linear-gradient(180deg, #e8f0f5 0%, #fff 100%);
|
||||
border: 1px dashed #a8d8dc; display: flex; align-items: flex-end; gap: 8px; padding: 24px 16px 16px;
|
||||
}
|
||||
.chart-ph .bar { flex: 1; background: var(--accent); opacity: .75; border-radius: 2px 2px 0 0; min-height: 20px; }
|
||||
.channel-tabs { display: flex; border-bottom: 1px solid var(--border); margin-bottom: 18px; }
|
||||
.channel-tabs a {
|
||||
padding: 10px 16px; font-size: 13px; font-weight: 600; color: var(--muted);
|
||||
text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px;
|
||||
}
|
||||
.channel-tabs a.active { color: var(--accent); border-bottom-color: var(--accent); }
|
||||
.connect-grid { display: grid; gap: 12px; }
|
||||
.connect-card {
|
||||
display: flex; gap: 14px; align-items: flex-start; text-align: left;
|
||||
padding: 14px; border: 1px solid var(--border); background: #fff; width: 100%;
|
||||
cursor: pointer; font: inherit; color: inherit;
|
||||
}
|
||||
.connect-card:hover { border-color: var(--accent); }
|
||||
.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; }
|
||||
.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;
|
||||
}
|
||||
.soc-header { display: flex; align-items: center; gap: 10px; padding: 12px 14px; }
|
||||
.soc-avatar {
|
||||
width: 40px; height: 40px; background: var(--accent); color: #fff; display: flex;
|
||||
align-items: center; justify-content: center; font-weight: 700; font-size: 13px; flex-shrink: 0; border-radius: 50%;
|
||||
}
|
||||
.soc-name { font-weight: 700; font-size: 13px; }
|
||||
.soc-meta { font-size: 11px; color: #6b7280; }
|
||||
.soc-caption { padding: 0 14px 12px; white-space: pre-wrap; line-height: 1.4; font-size: 13px; }
|
||||
.soc-image { height: 200px; background: linear-gradient(135deg, #e5e7eb, #cbd5e1); }
|
||||
.soc-actions { padding: 10px 14px; border-top: 1px solid #e5e7eb; font-size: 12px; color: #4b5563; font-weight: 600; }
|
||||
.ai-chat { display: flex; flex-direction: column; height: min(640px, 75vh); background: #fff; border: 1px solid var(--border); }
|
||||
.ai-chat-h { padding: 12px 14px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
|
||||
.ai-chat-h h2 { margin: 0; font-size: 15px; font-family: var(--display); }
|
||||
.ai-pill { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: #e8f0f5; color: var(--accent); padding: 3px 8px; }
|
||||
.ai-messages { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 12px; background: linear-gradient(180deg, #f8fafc, #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(--border); background: #fff; }
|
||||
.ai-msg.user .bubble { background: var(--accent); color: #fff; border-color: var(--accent); }
|
||||
.ai-msg .who { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: 4px; }
|
||||
.ai-draft { margin-top: 8px; padding: 10px; background: #f8fafc; border: 1px dashed #a8d8dc; white-space: pre-wrap; font-size: 12px; }
|
||||
.ai-chat-input { border-top: 1px solid var(--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(--border); padding: 8px 10px; font: inherit; font-size: 13px; }
|
||||
.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,.25); color: #fff;
|
||||
}
|
||||
.postcard-media { position: absolute; inset: 0; background: linear-gradient(135deg, #1a4f6e, #0b1f33 60%, #c45c26); }
|
||||
.postcard-copy { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 2; }
|
||||
.postcard-headline { font-family: var(--display); font-weight: 700; font-size: 26px; border-left: 4px solid #7dd3da; padding-left: 10px; line-height: 1.1; }
|
||||
.postcard-sub { margin-top: 8px; font-size: 14px; opacity: .95; }
|
||||
.size-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
|
||||
.size-option {
|
||||
border: 1px solid var(--border); background: #fff; padding: 10px 12px; text-align: left;
|
||||
cursor: pointer; font: inherit; color: inherit;
|
||||
}
|
||||
.size-option.active { border-color: var(--accent); background: #e8f0f5; box-shadow: inset 3px 0 0 var(--accent); }
|
||||
.designer-layout { display: grid; grid-template-columns: minmax(240px, 320px) 1fr; gap: 20px; align-items: start; }
|
||||
@media (max-width: 960px) { .designer-layout { grid-template-columns: 1fr; } }
|
||||
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; font-size: 12px; }
|
||||
.calendar-grid .dow { text-align: center; color: var(--muted); font-weight: 600; padding: 6px; }
|
||||
.calendar-grid .day {
|
||||
aspect-ratio: 1; border: 1px solid var(--border); background: #fff; padding: 6px; position: relative;
|
||||
}
|
||||
.calendar-grid .day.has-post { background: #e8f0f5; }
|
||||
.calendar-grid .day .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); margin-top: 4px; }
|
||||
.steps { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
|
||||
.step {
|
||||
display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted);
|
||||
padding: 8px 12px; background: #fff; border: 1px solid var(--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(--accent); color: var(--ink); }
|
||||
.step.active span { background: var(--accent); color: #fff; }
|
||||
.dropzone { border: 2px dashed var(--border); padding: 32px; text-align: center; background: #f8fafc; }
|
||||
.public-simple { max-width: 720px; margin: 40px auto; padding: 0 24px 64px; }
|
||||
.public-simple .card { background: #fff; border: 1px solid var(--border); padding: 32px; }
|
||||
.public-nav {
|
||||
background: #fff; border-bottom: 1px solid var(--border);
|
||||
padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
|
||||
}
|
||||
.public-nav .brand { font-family: var(--display); font-weight: 700; color: var(--ink); text-decoration: none; font-size: 18px; }
|
||||
.public-nav .links a { margin-left: 16px; font-size: 14px; color: var(--muted); text-decoration: none; }
|
||||
.public-nav .links a:hover { color: var(--accent); }
|
||||
.blog-list { display: grid; gap: 16px; }
|
||||
.blog-item { background: #fff; border: 1px solid var(--border); padding: 20px; text-decoration: none; color: inherit; display: block; }
|
||||
.blog-item:hover { border-color: var(--accent); color: inherit; text-decoration: none; }
|
||||
.blog-item h3 { margin: 0 0 6px; font-family: var(--display); }
|
||||
.blog-item .meta { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
|
||||
.blog-item p { margin: 0; font-size: 14px; color: var(--muted); }
|
||||
.pay-box { max-width: 480px; margin: 48px auto; background: #fff; border: 1px solid var(--border); padding: 32px; }
|
||||
.pay-box h1 { font-family: var(--display); margin: 0 0 8px; }
|
||||
.pay-amount { font-size: 36px; font-weight: 700; font-family: var(--display); margin: 16px 0; }
|
||||
.error-hero { text-align: center; padding: 80px 24px; }
|
||||
.error-hero h1 { font-family: var(--display); font-size: 4rem; margin: 0; color: var(--accent); }
|
||||
.muted { color: var(--muted); font-size: 12px; }
|
||||
.theme-paint {
|
||||
--accent: #c45c26;
|
||||
--accent-2: #1a2332;
|
||||
}
|
||||
.theme-paint .portal-sidebar { background: #1a2332; }
|
||||
.theme-paint .portal-nav a.active { background: rgba(196,92,38,.25); border-left-color: #c45c26; }
|
||||
.theme-paint .login-wrap { background: linear-gradient(160deg, #1a2332, #3d4a5c 60%, #f3efe8 60%); }
|
||||
.theme-paint .proposal-note { border-left-color: #c45c26; background: #faf6f1; color: #5c3d2e; }
|
||||
.theme-paint .btn-primary { background: #c45c26; }
|
||||
.theme-paint .btn-primary:hover { background: #a34a1e; }
|
||||
.theme-paint .portal-nav a.active { border-left-color: #e8b88a; }
|
||||
|
||||
/* Vendor credit */
|
||||
.aiml-site-credit {
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: var(--muted);
|
||||
padding: 16px 24px 28px;
|
||||
}
|
||||
.aiml-site-credit a {
|
||||
color: var(--accent);
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
}
|
||||
.aiml-site-credit a:hover { text-decoration: underline; }
|
||||
body.portal .aiml-site-credit {
|
||||
border-top: 1px solid var(--border);
|
||||
background: #fff;
|
||||
margin-top: auto;
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Contact | T.R.B. Painting — (630) 606-6776</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Contact T.R.B. Painting for interior, exterior, or power washing estimates. Call (630) 606-6776.">
|
||||
|
||||
<meta name="format-detection" content="telephone=no"/>
|
||||
<link rel="icon" href="images/favicon.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" href="css/grid.css">
|
||||
<link rel="stylesheet" href="css/google-map.css">
|
||||
<link rel="stylesheet" href="css/contact-form.css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
|
||||
<script src="js/jquery.js"></script>
|
||||
<script src="js/jquery-migrate-1.2.1.js"></script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<html class="lt-ie9">
|
||||
<div style=' clear: both; text-align:center; position: relative;'>
|
||||
<a href="http://windows.microsoft.com/en-US/internet-explorer/..">
|
||||
<img src="images/ie8-panel/warning_bar_0000_us.jpg" border="0" height="42" width="820"
|
||||
alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today."/>
|
||||
</a>
|
||||
</div>
|
||||
<script src="js/html5shiv.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src='js/device.min.js'></script>
|
||||
<style>
|
||||
.preview-concept-banner{position:fixed;top:0;left:0;right:0;z-index:99999;background:#1a2332;color:#fff;font:600 13px/1.4 system-ui,sans-serif;padding:8px 16px;text-align:center}
|
||||
.preview-concept-banner span{opacity:.85;font-weight:400}
|
||||
.preview-concept-banner a{color:#fff;text-decoration:underline}
|
||||
body{padding-top:36px}
|
||||
.aiml-site-credit{text-align:center;padding:12px 16px 24px;font:14px/1.4 system-ui,sans-serif;color:#555}
|
||||
.aiml-site-credit a{color:#1a2332;text-decoration:underline}
|
||||
footer .aiml-site-credit{color:rgba(255,255,255,.85)}
|
||||
footer .aiml-site-credit a{color:#fff}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="preview-concept-banner">UX Concept Preview — T.R.B. Painting <span>· Concept site — not live</span> · <a href="ux-gallery.html">Feature gallery</a> · <a href="pricing.html">Pricing</a></div>
|
||||
|
||||
<div class="page">
|
||||
<!--========================================================
|
||||
HEADER
|
||||
=========================================================-->
|
||||
<header class="bg2">
|
||||
<div id="stuck_container" class="stuck_container">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<p class="brand_name">
|
||||
<a href="index.html">T.R.B. Painting</a>
|
||||
</p>
|
||||
</div>
|
||||
<nav class="nav" aria-label="Primary">
|
||||
<ul class="sf-menu" data-type="navbar">
|
||||
<li>
|
||||
<a href="index.html">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="services.html">Services</a>
|
||||
<ul>
|
||||
<li><a href="services.html#interior">Interior painting</a></li>
|
||||
<li><a href="services.html#exterior">Exterior painting</a></li>
|
||||
<li><a href="services.html#power-washing">Power washing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="about.html">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="gallery.html">Gallery</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="contact.html">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<!--========================================================
|
||||
CONTENT
|
||||
=========================================================-->
|
||||
<main>
|
||||
<section class="well4">
|
||||
<div class="container">
|
||||
<h3>Contact T.R.B. Painting</h3>
|
||||
<p class="mt1" style="margin-bottom:1.5rem">Call <a href="tel:+16306066776">(630) 606-6776</a> or send a message below. Tell us whether you need interior painting, exterior painting, or power washing.</p>
|
||||
<form id="contact-form" class='contact-form'>
|
||||
<div class="contact-form-loader"></div>
|
||||
<fieldset>
|
||||
<label class="name">
|
||||
<input type="text" name="name" placeholder="Your Name" aria-label="Your name" value=""
|
||||
data-constraints="@Required @JustLetters"/>
|
||||
|
||||
<span class="empty-message">*This field is required.</span>
|
||||
<span class="error-message">*This is not a valid name.</span>
|
||||
</label>
|
||||
<div class="input-wrap">
|
||||
<label class="email">
|
||||
<input type="text" name="email" placeholder="Your Email" aria-label="Your email" value=""
|
||||
data-constraints="@Required @Email"/>
|
||||
|
||||
<span class="empty-message">*This field is required.</span>
|
||||
<span class="error-message">*This is not a valid email.</span>
|
||||
</label>
|
||||
<label class="phone">
|
||||
<input type="text" name="phone" placeholder="Your Phone Number" aria-label="Your phone number" value=""
|
||||
data-constraints="@JustNumbers"/>
|
||||
|
||||
<span class="empty-message">*This field is required.</span>
|
||||
<span class="error-message">*This is not a valid phone.</span>
|
||||
</label>
|
||||
</div>
|
||||
<label class="message">
|
||||
<textarea name="message" placeholder="Your Message" aria-label="Your message"
|
||||
data-constraints='@Required @Length(min=20,max=999999)'></textarea>
|
||||
|
||||
<span class="empty-message">*This field is required.</span>
|
||||
<span class="error-message">*The message is too short.</span>
|
||||
</label>
|
||||
<a class="btn" href="#" data-type="submit">Send message</a>
|
||||
</fieldset>
|
||||
<div class="modal fade response-message">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"
|
||||
aria-hidden="true">
|
||||
×
|
||||
</button>
|
||||
<h4 class="modal-title">Modal title</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
You message has been sent! We will be in touch soon.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
<section class="well4">
|
||||
<div class="container">
|
||||
<h3>Service area</h3>
|
||||
<p>Service coverage is confirmed when you call. Phone: <a href="tel:+16306066776">(630) 606-6776</a>. Email address TBD.</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!--========================================================
|
||||
FOOTER
|
||||
=========================================================-->
|
||||
<footer class="parallax" data-url="images/parallax02.jpg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-map-marker" aria-hidden="true"></span>
|
||||
<p>Service area TBD<br><span style="opacity:.85">Confirm coverage with T.R.B. Painting</span></p>
|
||||
</address>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"></span>
|
||||
<p>Email TBD</p>
|
||||
</address>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-mobile" aria-hidden="true"></span>
|
||||
<p><a href="tel:+16306066776">(630) 606-6776</a></p>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
<p class="copy">
|
||||
T.R.B. Painting © <span id="copyright-year"></span>
|
||||
<span>All Rights Reserved</span>
|
||||
|
|
||||
<a href="privacy.html">Privacy Policy</a>
|
||||
</p>
|
||||
<p class="aiml-site-credit">Made by <a href="https://aimloperations.com" rel="noopener noreferrer" target="_blank">AI ML Operations, LLC</a></p>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script src="js/script.js"></script>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
function labelToggle() {
|
||||
var t = document.querySelector('.rd-mobilepanel_toggle');
|
||||
if (t && !t.getAttribute('aria-label')) t.setAttribute('aria-label', 'Open menu');
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
labelToggle();
|
||||
setTimeout(labelToggle, 500);
|
||||
setTimeout(labelToggle, 1500);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,342 @@
|
||||
/*========================================================
|
||||
Contact Form
|
||||
=========================================================*/
|
||||
/* Contact Form Basic Styles
|
||||
========================================================*/
|
||||
#contact-form {
|
||||
position: relative; }
|
||||
|
||||
#contact-form label {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: block;
|
||||
letter-spacing: normal;
|
||||
margin: 0 0 23px;
|
||||
width: 100%;
|
||||
text-align: left; }
|
||||
|
||||
#contact-form label.message {
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
margin: 40px 0 5px; }
|
||||
|
||||
#contact-form fieldset {
|
||||
border: none; }
|
||||
|
||||
/* Contact Form Placeholder Styles
|
||||
========================================================*/
|
||||
#contact-form ._placeholder {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
font: 400 18px "Quattrocento", serif;
|
||||
line-height: 24px;
|
||||
padding: 10px 17px 10px;
|
||||
color: #343434;
|
||||
width: 100% !important;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
display: block;
|
||||
border-radius: 0;
|
||||
cursor: text; }
|
||||
|
||||
#contact-form ._placeholder.focused {
|
||||
opacity: 0.4; }
|
||||
.lt-ie9 #contact-form ._placeholder.focused {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0.4)";
|
||||
filter: alpha(opacity=40); }
|
||||
|
||||
#contact-form ._placeholder.hidden,
|
||||
#contact-form .file ._placeholder {
|
||||
display: none; }
|
||||
|
||||
/* Contact Form Input
|
||||
========================================================*/
|
||||
#contact-form input[type='text'] {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
font: 400 18px "Quattrocento", serif;
|
||||
line-height: 24px;
|
||||
padding: 10px 17px 10px;
|
||||
color: #343434;
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
border-bottom: 1px solid #a2a2a2;
|
||||
width: 100%;
|
||||
border-radius: 0;
|
||||
outline: none;
|
||||
-webkit-appearance: none;
|
||||
height: 44px;
|
||||
margin: 0; }
|
||||
|
||||
@media (min-width: 980px) {
|
||||
#contact-form .input-wrap:before, #contact-form .input-wrap:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0; }
|
||||
#contact-form .input-wrap:after {
|
||||
clear: both; }
|
||||
#contact-form .input-wrap label {
|
||||
width: 49%;
|
||||
float: left; }
|
||||
#contact-form .input-wrap label + label {
|
||||
margin-left: 2%; } }
|
||||
|
||||
/* Contact Form Buttons
|
||||
========================================================*/
|
||||
#contact-form .btn {
|
||||
padding-left: 55px;
|
||||
padding-right: 55px; }
|
||||
|
||||
/* Contact Form Textarea
|
||||
========================================================*/
|
||||
#contact-form textarea {
|
||||
display: block;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
font: 400 18px "Quattrocento", serif;
|
||||
line-height: 24px;
|
||||
padding: 10px 17px 10px;
|
||||
color: #343434;
|
||||
background-color: #fff;
|
||||
border: none;
|
||||
border-bottom: 1px solid #a2a2a2;
|
||||
width: 100%;
|
||||
border-radius: 0;
|
||||
outline: none;
|
||||
-webkit-appearance: none;
|
||||
border: 1px solid #a2a2a2;
|
||||
resize: none;
|
||||
height: 158px;
|
||||
overflow: auto; }
|
||||
|
||||
/* Contact Form Error messages
|
||||
========================================================*/
|
||||
#contact-form .empty-message,
|
||||
#contact-form .error-message {
|
||||
-moz-transition: 0.3s ease-in height;
|
||||
-o-transition: 0.3s ease-in height;
|
||||
-webkit-transition: 0.3s ease-in height;
|
||||
transition: 0.3s ease-in height;
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 2px;
|
||||
color: red;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
font-size: 11px;
|
||||
z-index: 99; }
|
||||
|
||||
#contact-form .invalid .error-message,
|
||||
#contact-form .empty .empty-message {
|
||||
height: 14px;
|
||||
line-height: 14px; }
|
||||
|
||||
/* Contact Form Processing Box
|
||||
========================================================*/
|
||||
#contact-form .contact-form-loader {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
overflow: hidden;
|
||||
background: rgba(247, 247, 247, 0.48) url(data:image/gif;base64,R0lGODlhIAAKAIAAAP///////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCQAAACwAAAAAIAAKAAACD4yPqcvtD6OctNqLs94cFwAh+QQJCQAFACwAAAAAIAAKAILs7uz8+vz09vT08vT8/vz///8AAAAAAAADMVgx3FIwykmhADjjVzsdmjZ4ZASG2FiSJ6quXRu+8IemdXwDdB5dt54PsgA1BoThJAEAIfkECQkACAAsAAAAACAACgCDtLK03Nrc1NLUvL68/Pr81NbUxMLE/P78////AAAAAAAAAAAAAAAAAAAAAAAAAAAABDjwBGMGNeWgzbv/SACM5CiAKGiU5ZC+3MqOLvwOM22/8lzvqhzgB/TgcsQipyA0KD8HAe5o0Tw7EQAh+QQJCQAMACwAAAAAIAAKAIN0dnS8vrysrqyMioy0trSUkpT8+vy0srSMjoy8uryUlpT8/vz///8AAAAAAAAAAAAEPnAFVWpRZLHNu/9MAIzkeIAoqJQlkr5cwZIDDK8zUNupPA4/HS+Fm+2GnyLriOwkaKVT07M4FAbYQeFgmHoiACH5BAkJAAsALAAAAAAgAAoAg7SytNza3Ozu7NTS1Pz6/Ly+vPT29PTy9NTW1Pz+/MTCxP///wAAAAAAAAAAAAAAAARUMAWlClUorUWO/8YmjmIAnOg5LIbgvm5IkkqaFssBw8dM2yjcjucbFYAnnG4o6BU3NaSQ2XxCkQDhcud8HqULatWKwCoWCWq3mBgcvxYNy9P8yJ8RACH5BAkJAAsALAAAAAAgAAoAg7SytNza3Ozu7NTS1Pz6/Ly+vPT29PTy9NTW1Pz+/MTCxP///wAAAAAAAAAAAAAAAARUcJFDq1krBaUKV0iCjSRmCGiKXgHgvu5QzoeqHosCw8Vc1jYUTrdz9XwjYBBXKBqRyaAw5wQcoUobs3pFZm9UZ9d3kuIQVQV0NKlVDiLCoGmNXdYRACH5BAkJAAwALAAAAAAgAAoAg3R2dLy+vKyurIyKjLS2tJSSlPz6/LSytIyOjLy6vJSWlPz+/P///wAAAAAAAAAAAAQ+kMlJ2Qqq6KLIqmBIBUBploeoVsp5ImvMFK45yGtbAzcu0qVBkOcT6Wq9ImtHVFYStlPKSVkcCoPsoHAwxCIAIfkECQkACwAsAAAAACAACgCDtLK03Nrc7O7s1NLU/Pr8vL689Pb09PL01NbU/P78xMLE////AAAAAAAAAAAAAAAABFZwyUlXCkqVrFCSxCGORmUuAaCu6rAYQizHxEkpLFssxzwftgkup9r5fkFJgVjkHWPA5JBofAqiwWnO2DtibUtm1ZpcIJgAhcX6PSUGy/Dm8xJdr4dEBAAh+QQJCQALACwAAAAAIAAKAIO0srTc2tzs7uzU0tT8+vy8vrz09vT08vTU1tT8/vzEwsT///8AAAAAAAAAAAAAAAAEVXDJSSU5OBuZglLFpyBJZRpCqqZbALzwO5jVsa7HosRxQVO2Wyq34718P0lQmCsYj0mlcKh7ApDJ5a1pBUQXWlz1if2hpjmEVfFdXGyZQ4kwcF5liQgAIfkECQkADAAsAAAAACAACgCDdHZ0vL68rK6sjIqMtLa0lJKU/Pr8tLK0jI6MvLq8lJaU/P78////AAAAAAAAAAAABD6QyUmrZSuowosiyyVeAWCe5jGuk4KiBcsW7znIq1sDNy7SpkGQ5xPpar1i5fhKKicJG0rwrCwOhYF2UDgYIgAh+QQJCQAIACwAAAAAIAAKAIO0srTc2tzU0tS8vrz8+vzU1tTEwsT8/vz///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAEOBDJSatFJxgztinHJV4BYJ6mMK6TgaIDy7qvGcvjUNv4SNe3nuVXE150u6BxUtgBDMvKQaBDdg4RACH5BAkJAAUALAAAAAAgAAoAguzu7Pz6/PT29PTy9Pz+/P///wAAAAAAAAMvWLrcrmHIKZ61Auitw/3LwHEDCIqjVpoXmq7s445w3MykLaeb7mS8mg8iAYgkhAQAOw==);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 50% 50%; }
|
||||
.lt-ie9 #contact-form .contact-form-loader {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||
filter: alpha(opacity=0); }
|
||||
|
||||
#contact-form.processing .contact-form-loader {
|
||||
-moz-transition: all 0.3s ease-in;
|
||||
-o-transition: all 0.3s ease-in;
|
||||
-webkit-transition: all 0.3s ease-in;
|
||||
transition: all 0.3s ease-in;
|
||||
opacity: 0.7;
|
||||
z-index: 99; }
|
||||
.lt-ie9 #contact-form.processing .contact-form-loader {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0.7)";
|
||||
filter: alpha(opacity=70); }
|
||||
|
||||
/* Contact Form Modal
|
||||
========================================================*/
|
||||
.modal-open {
|
||||
overflow: hidden; }
|
||||
|
||||
#contact-form .modal {
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
letter-spacing: normal;
|
||||
display: none;
|
||||
overflow: auto;
|
||||
overflow-y: scroll;
|
||||
position: fixed;
|
||||
z-index: 1050;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
outline: 0;
|
||||
font-family: "Quattrocento", serif;
|
||||
font-size: 13px;
|
||||
color: #222; }
|
||||
|
||||
#contact-form .modal h4 {
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
padding: 0;
|
||||
margin: 0; }
|
||||
|
||||
.modal.fade .modal-dialog {
|
||||
-moz-transition: transform 0.3s ease-out;
|
||||
-o-transition: transform 0.3s ease-out;
|
||||
-webkit-transition: transform 0.3s ease-out;
|
||||
transition: transform 0.3s ease-out;
|
||||
-moz-transform: translate(0, -25%);
|
||||
-ms-transform: translate(0, -25%);
|
||||
-o-transform: translate(0, -25%);
|
||||
-webkit-transform: translate(0, -25%);
|
||||
transform: translate(0, -25%); }
|
||||
|
||||
.modal.in .modal-dialog {
|
||||
-moz-transform: translate(0, 0);
|
||||
-ms-transform: translate(0, 0);
|
||||
-o-transform: translate(0, 0);
|
||||
-webkit-transform: translate(0, 0);
|
||||
transform: translate(0, 0); }
|
||||
|
||||
.modal-content {
|
||||
position: relative;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #999999;
|
||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||
border-radius: 6px;
|
||||
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
|
||||
background-clip: padding-box;
|
||||
outline: none; }
|
||||
|
||||
.modal-backdrop {
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
position: fixed;
|
||||
z-index: 1040;
|
||||
background-color: #000000; }
|
||||
|
||||
.modal-backdrop.fade {
|
||||
opacity: 0; }
|
||||
.lt-ie9 .modal-backdrop.fade {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
|
||||
filter: alpha(opacity=0); }
|
||||
|
||||
.modal-backdrop.in {
|
||||
opacity: 0.5; }
|
||||
.lt-ie9 .modal-backdrop.in {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0.5)";
|
||||
filter: alpha(opacity=50); }
|
||||
|
||||
.modal-header {
|
||||
padding: 15px;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
min-height: 16.42857143px; }
|
||||
|
||||
.modal-header .close {
|
||||
margin-top: -2px; }
|
||||
|
||||
.modal-title {
|
||||
margin: 0;
|
||||
line-height: 1.42857143; }
|
||||
|
||||
.modal-body {
|
||||
position: relative;
|
||||
padding: 20px; }
|
||||
|
||||
.modal-dialog {
|
||||
width: 600px;
|
||||
margin: 66px auto 10px; }
|
||||
|
||||
@media only screen and (max-width: 768px) {
|
||||
.modal-dialog {
|
||||
position: relative;
|
||||
width: auto;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px; } }
|
||||
/* Contact Form Close icon
|
||||
========================================================*/
|
||||
.close {
|
||||
float: right;
|
||||
font-size: 21px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
color: #000000;
|
||||
text-shadow: 0 1px 0 #ffffff;
|
||||
opacity: 0.2;
|
||||
filter: alpha(opacity=20); }
|
||||
|
||||
.close:hover,
|
||||
.close:focus {
|
||||
color: #000000;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
opacity: 0.5;
|
||||
filter: alpha(opacity=50); }
|
||||
|
||||
button.close {
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none; }
|
||||
|
||||
/* Contact Form reCaptcha
|
||||
========================================================*/
|
||||
#contact-form label.recaptcha {
|
||||
max-width: 100%;
|
||||
text-align: right; }
|
||||
|
||||
#captchadiv {
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
background: #FFF; }
|
||||
.empty-message + #captchadiv {
|
||||
border: 1px solid #DCDCDC;
|
||||
padding-top: 16px; }
|
||||
|
||||
#recaptcha_table {
|
||||
border: none !important; }
|
||||
#recaptcha_table input[type="text"] {
|
||||
background: #FFF;
|
||||
border: 1px solid #CDCDCD !important;
|
||||
color: #999; }
|
||||
|
||||
@media (max-width: 767px) {
|
||||
#captchadiv {
|
||||
display: block; }
|
||||
|
||||
#recaptcha_table {
|
||||
width: 100%; }
|
||||
#recaptcha_table tr:first-child td + td {
|
||||
padding-right: 14px !important; }
|
||||
#recaptcha_table tr:first-child td + td + td {
|
||||
display: none; }
|
||||
|
||||
#recaptcha_image {
|
||||
width: 358px !important; }
|
||||
|
||||
#recaptcha_response_field {
|
||||
width: 360px !important; } }
|
||||
@media (max-width: 479px) {
|
||||
#recaptcha_image {
|
||||
width: 208px !important; }
|
||||
|
||||
#recaptcha_response_field {
|
||||
width: 210px !important; } }
|
||||
@@ -0,0 +1,135 @@
|
||||
/**
|
||||
* Title: 36 Slim Icons Flaticon Pack
|
||||
* Author: Fermam Aziz
|
||||
* Source: http://www.flaticon.com/packs/36-slim-icons
|
||||
* License: CC BY 3.0 (http://creativecommons.org/licenses/by/3.0/)
|
||||
*/
|
||||
|
||||
@font-face {
|
||||
font-family: "fl-36-slim-icons";
|
||||
src: url("../fonts/36-slim-icons.eot");
|
||||
src: url("../fonts/36-slim-icons.eot#iefix") format("embedded-opentype"),
|
||||
url("../fonts/36-slim-icons.woff") format("woff"),
|
||||
url("../fonts/36-slim-icons.ttf") format("truetype"),
|
||||
url("../fonts/36-slim-icons.svg") format("svg");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.fl-36-slim-icons-ico,
|
||||
[class^="fl-36-slim-icons-"]:before, [class*=" fl-36-slim-icons-"]:before,
|
||||
[class^="fl-36-slim-icons-"]:after, [class*=" fl-36-slim-icons-"]:after {
|
||||
font-family: "fl-36-slim-icons";
|
||||
font-size: inherit;
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.fl-36-slim-icons-bird73:before {
|
||||
content: "\e000";
|
||||
}
|
||||
.fl-36-slim-icons-bookmark38:before {
|
||||
content: "\e001";
|
||||
}
|
||||
.fl-36-slim-icons-calculator63:before {
|
||||
content: "\e002";
|
||||
}
|
||||
.fl-36-slim-icons-calendar148:before {
|
||||
content: "\e003";
|
||||
}
|
||||
.fl-36-slim-icons-circles21:before {
|
||||
content: "\e004";
|
||||
}
|
||||
.fl-36-slim-icons-circular242:before {
|
||||
content: "\e005";
|
||||
}
|
||||
.fl-36-slim-icons-clock91:before {
|
||||
content: "\e006";
|
||||
}
|
||||
.fl-36-slim-icons-cloud288:before {
|
||||
content: "\e007";
|
||||
}
|
||||
.fl-36-slim-icons-cogwheel25:before {
|
||||
content: "\e008";
|
||||
}
|
||||
.fl-36-slim-icons-download155:before {
|
||||
content: "\e009";
|
||||
}
|
||||
.fl-36-slim-icons-email90:before {
|
||||
content: "\e00a";
|
||||
}
|
||||
.fl-36-slim-icons-file77:before {
|
||||
content: "\e00b";
|
||||
}
|
||||
.fl-36-slim-icons-global32:before {
|
||||
content: "\e00c";
|
||||
}
|
||||
.fl-36-slim-icons-happy49:before {
|
||||
content: "\e00d";
|
||||
}
|
||||
.fl-36-slim-icons-house130:before {
|
||||
content: "\e00e";
|
||||
}
|
||||
.fl-36-slim-icons-image77:before {
|
||||
content: "\e00f";
|
||||
}
|
||||
.fl-36-slim-icons-laptop111:before {
|
||||
content: "\e010";
|
||||
}
|
||||
.fl-36-slim-icons-like67:before {
|
||||
content: "\e011";
|
||||
}
|
||||
.fl-36-slim-icons-like68:before {
|
||||
content: "\e012";
|
||||
}
|
||||
.fl-36-slim-icons-monitor79:before {
|
||||
content: "\e013";
|
||||
}
|
||||
.fl-36-slim-icons-musical110:before {
|
||||
content: "\e014";
|
||||
}
|
||||
.fl-36-slim-icons-pencil98:before {
|
||||
content: "\e015";
|
||||
}
|
||||
.fl-36-slim-icons-phone358:before {
|
||||
content: "\e016";
|
||||
}
|
||||
.fl-36-slim-icons-photo193:before {
|
||||
content: "\e017";
|
||||
}
|
||||
.fl-36-slim-icons-placeholder27:before {
|
||||
content: "\e018";
|
||||
}
|
||||
.fl-36-slim-icons-play90:before {
|
||||
content: "\e019";
|
||||
}
|
||||
.fl-36-slim-icons-rss49:before {
|
||||
content: "\e01a";
|
||||
}
|
||||
.fl-36-slim-icons-search89:before {
|
||||
content: "\e01b";
|
||||
}
|
||||
.fl-36-slim-icons-share31:before {
|
||||
content: "\e01c";
|
||||
}
|
||||
.fl-36-slim-icons-shopping223:before {
|
||||
content: "\e01d";
|
||||
}
|
||||
.fl-36-slim-icons-speech105:before {
|
||||
content: "\e01e";
|
||||
}
|
||||
.fl-36-slim-icons-star165:before {
|
||||
content: "\e01f";
|
||||
}
|
||||
.fl-36-slim-icons-tag65:before {
|
||||
content: "\e020";
|
||||
}
|
||||
.fl-36-slim-icons-user152:before {
|
||||
content: "\e021";
|
||||
}
|
||||
.fl-36-slim-icons-video166:before {
|
||||
content: "\e022";
|
||||
}
|
||||
.fl-36-slim-icons-wifi76:before {
|
||||
content: "\e023";
|
||||
}
|
||||
@@ -0,0 +1,687 @@
|
||||
/**
|
||||
* 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 {
|
||||
content: "\e04d";
|
||||
}
|
||||
.fl-bigmug-line-full40:before {
|
||||
content: "\e04e";
|
||||
}
|
||||
.fl-bigmug-line-games32:before {
|
||||
content: "\e04f";
|
||||
}
|
||||
.fl-bigmug-line-gear30:before {
|
||||
content: "\e050";
|
||||
}
|
||||
.fl-bigmug-line-giftbox54:before {
|
||||
content: "\e051";
|
||||
}
|
||||
.fl-bigmug-line-graphical8:before {
|
||||
content: "\e052";
|
||||
}
|
||||
.fl-bigmug-line-headphones32:before {
|
||||
content: "\e053";
|
||||
}
|
||||
.fl-bigmug-line-hot67:before {
|
||||
content: "\e054";
|
||||
}
|
||||
.fl-bigmug-line-images21:before {
|
||||
content: "\e055";
|
||||
}
|
||||
.fl-bigmug-line-ink12:before {
|
||||
content: "\e056";
|
||||
}
|
||||
.fl-bigmug-line-label25:before {
|
||||
content: "\e057";
|
||||
}
|
||||
.fl-bigmug-line-left144:before {
|
||||
content: "\e058";
|
||||
}
|
||||
.fl-bigmug-line-left145:before {
|
||||
content: "\e059";
|
||||
}
|
||||
.fl-bigmug-line-left146:before {
|
||||
content: "\e05a";
|
||||
}
|
||||
.fl-bigmug-line-left148:before {
|
||||
content: "\e05b";
|
||||
}
|
||||
.fl-bigmug-line-left152:before {
|
||||
content: "\e05c";
|
||||
}
|
||||
.fl-bigmug-line-left153:before {
|
||||
content: "\e05d";
|
||||
}
|
||||
.fl-bigmug-line-left158:before {
|
||||
content: "\e05e";
|
||||
}
|
||||
.fl-bigmug-line-left159:before {
|
||||
content: "\e05f";
|
||||
}
|
||||
.fl-bigmug-line-like51:before {
|
||||
content: "\e060";
|
||||
}
|
||||
.fl-bigmug-line-link52:before {
|
||||
content: "\e061";
|
||||
}
|
||||
.fl-bigmug-line-list63:before {
|
||||
content: "\e062";
|
||||
}
|
||||
.fl-bigmug-line-list65:before {
|
||||
content: "\e063";
|
||||
}
|
||||
.fl-bigmug-line-lock64:before {
|
||||
content: "\e064";
|
||||
}
|
||||
.fl-bigmug-line-login12:before {
|
||||
content: "\e065";
|
||||
}
|
||||
.fl-bigmug-line-login9:before {
|
||||
content: "\e066";
|
||||
}
|
||||
.fl-bigmug-line-map87:before {
|
||||
content: "\e067";
|
||||
}
|
||||
.fl-bigmug-line-megaphone11:before {
|
||||
content: "\e068";
|
||||
}
|
||||
.fl-bigmug-line-men25:before {
|
||||
content: "\e069";
|
||||
}
|
||||
.fl-bigmug-line-menu40:before {
|
||||
content: "\e06a";
|
||||
}
|
||||
.fl-bigmug-line-menu41:before {
|
||||
content: "\e06b";
|
||||
}
|
||||
.fl-bigmug-line-microphone76:before {
|
||||
content: "\e06c";
|
||||
}
|
||||
.fl-bigmug-line-microphone77:before {
|
||||
content: "\e06d";
|
||||
}
|
||||
.fl-bigmug-line-minus79:before {
|
||||
content: "\e06e";
|
||||
}
|
||||
.fl-bigmug-line-minus80:before {
|
||||
content: "\e06f";
|
||||
}
|
||||
.fl-bigmug-line-minus83:before {
|
||||
content: "\e070";
|
||||
}
|
||||
.fl-bigmug-line-minus86:before {
|
||||
content: "\e071";
|
||||
}
|
||||
.fl-bigmug-line-monitor74:before {
|
||||
content: "\e072";
|
||||
}
|
||||
.fl-bigmug-line-music218:before {
|
||||
content: "\e073";
|
||||
}
|
||||
.fl-bigmug-line-music219:before {
|
||||
content: "\e074";
|
||||
}
|
||||
.fl-bigmug-line-music221:before {
|
||||
content: "\e075";
|
||||
}
|
||||
.fl-bigmug-line-musical100:before {
|
||||
content: "\e076";
|
||||
}
|
||||
.fl-bigmug-line-musical98:before {
|
||||
content: "\e077";
|
||||
}
|
||||
.fl-bigmug-line-mute34:before {
|
||||
content: "\e078";
|
||||
}
|
||||
.fl-bigmug-line-new83:before {
|
||||
content: "\e079";
|
||||
}
|
||||
.fl-bigmug-line-nine16:before {
|
||||
content: "\e07a";
|
||||
}
|
||||
.fl-bigmug-line-note35:before {
|
||||
content: "\e07b";
|
||||
}
|
||||
.fl-bigmug-line-notebook41:before {
|
||||
content: "\e07c";
|
||||
}
|
||||
.fl-bigmug-line-notification4:before {
|
||||
content: "\e07d";
|
||||
}
|
||||
.fl-bigmug-line-notification5:before {
|
||||
content: "\e07e";
|
||||
}
|
||||
.fl-bigmug-line-opened25:before {
|
||||
content: "\e07f";
|
||||
}
|
||||
.fl-bigmug-line-oval34:before {
|
||||
content: "\e080";
|
||||
}
|
||||
.fl-bigmug-line-paintbrush9:before {
|
||||
content: "\e081";
|
||||
}
|
||||
.fl-bigmug-line-paper122:before {
|
||||
content: "\e082";
|
||||
}
|
||||
.fl-bigmug-line-pause37:before {
|
||||
content: "\e083";
|
||||
}
|
||||
.fl-bigmug-line-pencil85:before {
|
||||
content: "\e084";
|
||||
}
|
||||
.fl-bigmug-line-phone351:before {
|
||||
content: "\e085";
|
||||
}
|
||||
.fl-bigmug-line-photo181:before {
|
||||
content: "\e086";
|
||||
}
|
||||
.fl-bigmug-line-pin42:before {
|
||||
content: "\e087";
|
||||
}
|
||||
.fl-bigmug-line-planetary2:before {
|
||||
content: "\e088";
|
||||
}
|
||||
.fl-bigmug-line-play83:before {
|
||||
content: "\e089";
|
||||
}
|
||||
.fl-bigmug-line-portfolio23:before {
|
||||
content: "\e08a";
|
||||
}
|
||||
.fl-bigmug-line-print34:before {
|
||||
content: "\e08b";
|
||||
}
|
||||
.fl-bigmug-line-radio46:before {
|
||||
content: "\e08c";
|
||||
}
|
||||
.fl-bigmug-line-rain30:before {
|
||||
content: "\e08d";
|
||||
}
|
||||
.fl-bigmug-line-rectangular78:before {
|
||||
content: "\e08e";
|
||||
}
|
||||
.fl-bigmug-line-recycling10:before {
|
||||
content: "\e08f";
|
||||
}
|
||||
.fl-bigmug-line-rewind37:before {
|
||||
content: "\e090";
|
||||
}
|
||||
.fl-bigmug-line-right139:before {
|
||||
content: "\e091";
|
||||
}
|
||||
.fl-bigmug-line-right141:before {
|
||||
content: "\e092";
|
||||
}
|
||||
.fl-bigmug-line-right142:before {
|
||||
content: "\e093";
|
||||
}
|
||||
.fl-bigmug-line-right144:before {
|
||||
content: "\e094";
|
||||
}
|
||||
.fl-bigmug-line-right148:before {
|
||||
content: "\e095";
|
||||
}
|
||||
.fl-bigmug-line-right153:before {
|
||||
content: "\e096";
|
||||
}
|
||||
.fl-bigmug-line-right154:before {
|
||||
content: "\e097";
|
||||
}
|
||||
.fl-bigmug-line-right156:before {
|
||||
content: "\e098";
|
||||
}
|
||||
.fl-bigmug-line-rounded51:before {
|
||||
content: "\e099";
|
||||
}
|
||||
.fl-bigmug-line-sand14:before {
|
||||
content: "\e09a";
|
||||
}
|
||||
.fl-bigmug-line-save15:before {
|
||||
content: "\e09b";
|
||||
}
|
||||
.fl-bigmug-line-search74:before {
|
||||
content: "\e09c";
|
||||
}
|
||||
.fl-bigmug-line-search78:before {
|
||||
content: "\e09d";
|
||||
}
|
||||
.fl-bigmug-line-share27:before {
|
||||
content: "\e09e";
|
||||
}
|
||||
.fl-bigmug-line-shopping198:before {
|
||||
content: "\e09f";
|
||||
}
|
||||
.fl-bigmug-line-shopping199:before {
|
||||
content: "\e0a0";
|
||||
}
|
||||
.fl-bigmug-line-shopping202:before {
|
||||
content: "\e0a1";
|
||||
}
|
||||
.fl-bigmug-line-shopping204:before {
|
||||
content: "\e0a2";
|
||||
}
|
||||
.fl-bigmug-line-shuffle17:before {
|
||||
content: "\e0a3";
|
||||
}
|
||||
.fl-bigmug-line-sort47:before {
|
||||
content: "\e0a4";
|
||||
}
|
||||
.fl-bigmug-line-sort48:before {
|
||||
content: "\e0a5";
|
||||
}
|
||||
.fl-bigmug-line-speaker75:before {
|
||||
content: "\e0a6";
|
||||
}
|
||||
.fl-bigmug-line-speaker80:before {
|
||||
content: "\e0a7";
|
||||
}
|
||||
.fl-bigmug-line-speaker81:before {
|
||||
content: "\e0a8";
|
||||
}
|
||||
.fl-bigmug-line-speaker86:before {
|
||||
content: "\e0a9";
|
||||
}
|
||||
.fl-bigmug-line-speaker87:before {
|
||||
content: "\e0aa";
|
||||
}
|
||||
.fl-bigmug-line-speech96:before {
|
||||
content: "\e0ab";
|
||||
}
|
||||
.fl-bigmug-line-square152:before {
|
||||
content: "\e0ac";
|
||||
}
|
||||
.fl-bigmug-line-square156:before {
|
||||
content: "\e0ad";
|
||||
}
|
||||
.fl-bigmug-line-square160:before {
|
||||
content: "\e0ae";
|
||||
}
|
||||
.fl-bigmug-line-store10:before {
|
||||
content: "\e0af";
|
||||
}
|
||||
.fl-bigmug-line-sun81:before {
|
||||
content: "\e0b0";
|
||||
}
|
||||
.fl-bigmug-line-sunrise3:before {
|
||||
content: "\e0b1";
|
||||
}
|
||||
.fl-bigmug-line-switch23:before {
|
||||
content: "\e0b2";
|
||||
}
|
||||
.fl-bigmug-line-switch24:before {
|
||||
content: "\e0b3";
|
||||
}
|
||||
.fl-bigmug-line-tag47:before {
|
||||
content: "\e0b4";
|
||||
}
|
||||
.fl-bigmug-line-television20:before {
|
||||
content: "\e0b5";
|
||||
}
|
||||
.fl-bigmug-line-text108:before {
|
||||
content: "\e0b6";
|
||||
}
|
||||
.fl-bigmug-line-text109:before {
|
||||
content: "\e0b7";
|
||||
}
|
||||
.fl-bigmug-line-three142:before {
|
||||
content: "\e0b8";
|
||||
}
|
||||
.fl-bigmug-line-timer35:before {
|
||||
content: "\e0b9";
|
||||
}
|
||||
.fl-bigmug-line-tool16:before {
|
||||
content: "\e0ba";
|
||||
}
|
||||
.fl-bigmug-line-triangle33:before {
|
||||
content: "\e0bb";
|
||||
}
|
||||
.fl-bigmug-line-trophy55:before {
|
||||
content: "\e0bc";
|
||||
}
|
||||
.fl-bigmug-line-two311:before {
|
||||
content: "\e0bd";
|
||||
}
|
||||
.fl-bigmug-line-two316:before {
|
||||
content: "\e0be";
|
||||
}
|
||||
.fl-bigmug-line-two317:before {
|
||||
content: "\e0bf";
|
||||
}
|
||||
.fl-bigmug-line-two319:before {
|
||||
content: "\e0c0";
|
||||
}
|
||||
.fl-bigmug-line-two323:before {
|
||||
content: "\e0c1";
|
||||
}
|
||||
.fl-bigmug-line-unlocked27:before {
|
||||
content: "\e0c2";
|
||||
}
|
||||
.fl-bigmug-line-up100:before {
|
||||
content: "\e0c3";
|
||||
}
|
||||
.fl-bigmug-line-up102:before {
|
||||
content: "\e0c4";
|
||||
}
|
||||
.fl-bigmug-line-up103:before {
|
||||
content: "\e0c5";
|
||||
}
|
||||
.fl-bigmug-line-up104:before {
|
||||
content: "\e0c6";
|
||||
}
|
||||
.fl-bigmug-line-up107:before {
|
||||
content: "\e0c7";
|
||||
}
|
||||
.fl-bigmug-line-up111:before {
|
||||
content: "\e0c8";
|
||||
}
|
||||
.fl-bigmug-line-up112:before {
|
||||
content: "\e0c9";
|
||||
}
|
||||
.fl-bigmug-line-up114:before {
|
||||
content: "\e0ca";
|
||||
}
|
||||
.fl-bigmug-line-up98:before {
|
||||
content: "\e0cb";
|
||||
}
|
||||
.fl-bigmug-line-up99:before {
|
||||
content: "\e0cc";
|
||||
}
|
||||
.fl-bigmug-line-upload91:before {
|
||||
content: "\e0cd";
|
||||
}
|
||||
.fl-bigmug-line-upload92:before {
|
||||
content: "\e0ce";
|
||||
}
|
||||
.fl-bigmug-line-upper8:before {
|
||||
content: "\e0cf";
|
||||
}
|
||||
.fl-bigmug-line-user143:before {
|
||||
content: "\e0d0";
|
||||
}
|
||||
.fl-bigmug-line-user144:before {
|
||||
content: "\e0d1";
|
||||
}
|
||||
.fl-bigmug-line-video163:before {
|
||||
content: "\e0d2";
|
||||
}
|
||||
.fl-bigmug-line-wallet26:before {
|
||||
content: "\e0d3";
|
||||
}
|
||||
.fl-bigmug-line-weather21:before {
|
||||
content: "\e0d4";
|
||||
}
|
||||
.fl-bigmug-line-weekly14:before {
|
||||
content: "\e0d5";
|
||||
}
|
||||
.fl-bigmug-line-weekly15:before {
|
||||
content: "\e0d6";
|
||||
}
|
||||
.fl-bigmug-line-wind24:before {
|
||||
content: "\e0d7";
|
||||
}
|
||||
.fl-bigmug-line-window50:before {
|
||||
content: "\e0d8";
|
||||
}
|
||||
.fl-bigmug-line-winds4:before {
|
||||
content: "\e0d9";
|
||||
}
|
||||
.fl-bigmug-line-wrench66:before {
|
||||
content: "\e0da";
|
||||
}
|
||||
.fl-bigmug-line-zoom60:before {
|
||||
content: "\e0db";
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
/*================== GOOGLE MAP ======================*/
|
||||
.map_model {
|
||||
height: 490px; }
|
||||
.map_model img {
|
||||
max-width: none !important; }
|
||||
@media (max-width: 767px) {
|
||||
.map_model {
|
||||
height: 250px; } }
|
||||
@media (max-width: 479px) {
|
||||
.map_model {
|
||||
height: 200px; } }
|
||||
.map_locations {
|
||||
display: none; }
|
||||
@@ -0,0 +1,354 @@
|
||||
/*==========================================================
|
||||
NORMALIZE
|
||||
==========================================================*/
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||
article, aside, canvas, details, embed,
|
||||
figure, figcaption, footer, header, hgroup,
|
||||
menu, nav, output, ruby, section, summary,
|
||||
time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: top; }
|
||||
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block; }
|
||||
|
||||
body {
|
||||
line-height: 1; }
|
||||
|
||||
ol, ul {
|
||||
list-style: none; }
|
||||
|
||||
blockquote, q {
|
||||
quotes: none; }
|
||||
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none; }
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0; }
|
||||
|
||||
button,
|
||||
input[type='button'] {
|
||||
background: none;
|
||||
border: none;
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: none;
|
||||
outline-offset: 0;
|
||||
overflow: visible;
|
||||
cursor: pointer;
|
||||
-webkit-appearance: none; }
|
||||
button::-moz-focus-inner,
|
||||
input[type='button']::-moz-focus-inner {
|
||||
border: none;
|
||||
padding: 0; }
|
||||
|
||||
.container, .container-fluid {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
|
||||
/*=============== Fluid grid ====================*/
|
||||
.container-fluid [class*="grid_"] {
|
||||
float: left;
|
||||
width: 8.33333%;
|
||||
min-height: 1px; }
|
||||
|
||||
.container-fluid .grid_1 {
|
||||
width: 8.33333%; }
|
||||
|
||||
.container-fluid .grid_2 {
|
||||
width: 16.66667%; }
|
||||
|
||||
.container-fluid .grid_3 {
|
||||
width: 25%; }
|
||||
|
||||
.container-fluid .grid_4 {
|
||||
width: 33.33333%; }
|
||||
|
||||
.container-fluid .grid_5 {
|
||||
width: 41.66667%; }
|
||||
|
||||
.container-fluid .grid_6 {
|
||||
width: 50%; }
|
||||
|
||||
.container-fluid .grid_7 {
|
||||
width: 58.33333%; }
|
||||
|
||||
.container-fluid .grid_8 {
|
||||
width: 66.66667%; }
|
||||
|
||||
.container-fluid .grid_9 {
|
||||
width: 75%; }
|
||||
|
||||
.container-fluid .grid_10 {
|
||||
width: 83.33333%; }
|
||||
|
||||
.container-fluid .grid_11 {
|
||||
width: 91.66667%; }
|
||||
|
||||
.container-fluid .grid_12 {
|
||||
width: 100%; }
|
||||
|
||||
.container-fluid .preffix_1 {
|
||||
margin-left: 70px; }
|
||||
|
||||
.container-fluid .preffix_2 {
|
||||
margin-left: 140px; }
|
||||
|
||||
.container-fluid .preffix_3 {
|
||||
margin-left: 210px; }
|
||||
|
||||
.container-fluid .preffix_4 {
|
||||
margin-left: 280px; }
|
||||
|
||||
.container-fluid .preffix_5 {
|
||||
margin-left: 350px; }
|
||||
|
||||
.container-fluid .preffix_6 {
|
||||
margin-left: 420px; }
|
||||
|
||||
.container-fluid .preffix_7 {
|
||||
margin-left: 490px; }
|
||||
|
||||
.container-fluid .preffix_8 {
|
||||
margin-left: 560px; }
|
||||
|
||||
.container-fluid .preffix_9 {
|
||||
margin-left: 630px; }
|
||||
|
||||
.container-fluid .preffix_10 {
|
||||
margin-left: 700px; }
|
||||
|
||||
.container-fluid .preffix_11 {
|
||||
margin-left: 770px; }
|
||||
|
||||
.container-fluid .preffix_12 {
|
||||
margin-left: 840px; }
|
||||
|
||||
.container, .container-fluid {
|
||||
width: 1170px; }
|
||||
|
||||
.container .row {
|
||||
margin-left: -30px; }
|
||||
.container [class*="grid_"] {
|
||||
float: left;
|
||||
min-height: 1px;
|
||||
margin-left: 30px; }
|
||||
.container .grid_1 {
|
||||
width: 70px; }
|
||||
.container .grid_2 {
|
||||
width: 170px; }
|
||||
.container .grid_3 {
|
||||
width: 270px; }
|
||||
.container .grid_4 {
|
||||
width: 370px; }
|
||||
.container .grid_5 {
|
||||
width: 470px; }
|
||||
.container .grid_6 {
|
||||
width: 570px; }
|
||||
.container .grid_7 {
|
||||
width: 670px; }
|
||||
.container .grid_8 {
|
||||
width: 770px; }
|
||||
.container .grid_9 {
|
||||
width: 870px; }
|
||||
.container .grid_10 {
|
||||
width: 970px; }
|
||||
.container .grid_11 {
|
||||
width: 1070px; }
|
||||
.container .grid_12 {
|
||||
width: 1170px; }
|
||||
.container .preffix_1 {
|
||||
margin-left: 130px; }
|
||||
.container .preffix_2 {
|
||||
margin-left: 230px; }
|
||||
.container .preffix_3 {
|
||||
margin-left: 330px; }
|
||||
.container .preffix_4 {
|
||||
margin-left: 430px; }
|
||||
.container .preffix_5 {
|
||||
margin-left: 530px; }
|
||||
.container .preffix_6 {
|
||||
margin-left: 630px; }
|
||||
.container .preffix_7 {
|
||||
margin-left: 730px; }
|
||||
.container .preffix_8 {
|
||||
margin-left: 830px; }
|
||||
.container .preffix_9 {
|
||||
margin-left: 930px; }
|
||||
.container .preffix_10 {
|
||||
margin-left: 1030px; }
|
||||
.container .preffix_11 {
|
||||
margin-left: 1130px; }
|
||||
.container .preffix_12 {
|
||||
margin-left: 1230px; }
|
||||
|
||||
@media (min-width: 980px) and (max-width: 1199px) {
|
||||
.container, .container-fluid {
|
||||
width: 940px; }
|
||||
|
||||
.container .row {
|
||||
margin-left: -20px; }
|
||||
.container [class*="grid_"] {
|
||||
float: left;
|
||||
min-height: 1px;
|
||||
margin-left: 20px; }
|
||||
.container .grid_1 {
|
||||
width: 60px; }
|
||||
.container .grid_2 {
|
||||
width: 140px; }
|
||||
.container .grid_3 {
|
||||
width: 220px; }
|
||||
.container .grid_4 {
|
||||
width: 300px; }
|
||||
.container .grid_5 {
|
||||
width: 380px; }
|
||||
.container .grid_6 {
|
||||
width: 460px; }
|
||||
.container .grid_7 {
|
||||
width: 540px; }
|
||||
.container .grid_8 {
|
||||
width: 620px; }
|
||||
.container .grid_9 {
|
||||
width: 700px; }
|
||||
.container .grid_10 {
|
||||
width: 780px; }
|
||||
.container .grid_11 {
|
||||
width: 860px; }
|
||||
.container .grid_12 {
|
||||
width: 940px; }
|
||||
.container .preffix_1 {
|
||||
margin-left: 100px; }
|
||||
.container .preffix_2 {
|
||||
margin-left: 180px; }
|
||||
.container .preffix_3 {
|
||||
margin-left: 260px; }
|
||||
.container .preffix_4 {
|
||||
margin-left: 340px; }
|
||||
.container .preffix_5 {
|
||||
margin-left: 420px; }
|
||||
.container .preffix_6 {
|
||||
margin-left: 500px; }
|
||||
.container .preffix_7 {
|
||||
margin-left: 580px; }
|
||||
.container .preffix_8 {
|
||||
margin-left: 660px; }
|
||||
.container .preffix_9 {
|
||||
margin-left: 740px; }
|
||||
.container .preffix_10 {
|
||||
margin-left: 820px; }
|
||||
.container .preffix_11 {
|
||||
margin-left: 900px; }
|
||||
.container .preffix_12 {
|
||||
margin-left: 980px; } }
|
||||
@media (min-width: 768px) and (max-width: 979px) {
|
||||
.container, .container-fluid {
|
||||
width: 748px; }
|
||||
|
||||
.container .row {
|
||||
margin-left: -20px; }
|
||||
.container [class*="grid_"] {
|
||||
float: left;
|
||||
min-height: 1px;
|
||||
margin-left: 20px; }
|
||||
.container .grid_1 {
|
||||
width: 44px; }
|
||||
.container .grid_2 {
|
||||
width: 108px; }
|
||||
.container .grid_3 {
|
||||
width: 172px; }
|
||||
.container .grid_4 {
|
||||
width: 236px; }
|
||||
.container .grid_5 {
|
||||
width: 300px; }
|
||||
.container .grid_6 {
|
||||
width: 364px; }
|
||||
.container .grid_7 {
|
||||
width: 428px; }
|
||||
.container .grid_8 {
|
||||
width: 492px; }
|
||||
.container .grid_9 {
|
||||
width: 556px; }
|
||||
.container .grid_10 {
|
||||
width: 620px; }
|
||||
.container .grid_11 {
|
||||
width: 684px; }
|
||||
.container .grid_12 {
|
||||
width: 748px; }
|
||||
.container .preffix_1 {
|
||||
margin-left: 84px; }
|
||||
.container .preffix_2 {
|
||||
margin-left: 148px; }
|
||||
.container .preffix_3 {
|
||||
margin-left: 212px; }
|
||||
.container .preffix_4 {
|
||||
margin-left: 276px; }
|
||||
.container .preffix_5 {
|
||||
margin-left: 340px; }
|
||||
.container .preffix_6 {
|
||||
margin-left: 404px; }
|
||||
.container .preffix_7 {
|
||||
margin-left: 468px; }
|
||||
.container .preffix_8 {
|
||||
margin-left: 532px; }
|
||||
.container .preffix_9 {
|
||||
margin-left: 596px; }
|
||||
.container .preffix_10 {
|
||||
margin-left: 660px; }
|
||||
.container .preffix_11 {
|
||||
margin-left: 724px; }
|
||||
.container .preffix_12 {
|
||||
margin-left: 788px; } }
|
||||
@media (max-width: 767px) {
|
||||
.container, .container-fluid {
|
||||
width: 420px;
|
||||
padding: 0; }
|
||||
|
||||
.container .row {
|
||||
margin-left: 0; }
|
||||
|
||||
.row + .row,
|
||||
[class*="grid_"] + [class*="grid_"] {
|
||||
margin-top: 30px; }
|
||||
|
||||
.container [class*="grid_"], .container-fluid [class*="grid_"] {
|
||||
float: none;
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin-left: 0; } }
|
||||
@media (max-width: 479px) {
|
||||
body {
|
||||
padding: 0; }
|
||||
|
||||
.container, .container-fluid {
|
||||
width: 300px;
|
||||
padding: 0 15px; }
|
||||
|
||||
.row {
|
||||
margin-left: 0; } }
|
||||
.container:before, .container-fluid:before, .row:before, .container:after, .container-fluid:after, .row:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0; }
|
||||
.container:after, .container-fluid:after, .row:after {
|
||||
clear: both; }
|
||||
@@ -0,0 +1,274 @@
|
||||
/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
|
||||
.fancybox-wrap,
|
||||
.fancybox-skin,
|
||||
.fancybox-outer,
|
||||
.fancybox-inner,
|
||||
.fancybox-image,
|
||||
.fancybox-wrap iframe,
|
||||
.fancybox-wrap object,
|
||||
.fancybox-nav,
|
||||
.fancybox-nav span,
|
||||
.fancybox-tmp
|
||||
{
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
outline: none;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.fancybox-wrap {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 8020;
|
||||
}
|
||||
|
||||
.fancybox-skin {
|
||||
position: relative;
|
||||
background: #f9f9f9;
|
||||
color: #444;
|
||||
text-shadow: none;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.fancybox-opened {
|
||||
z-index: 8030;
|
||||
}
|
||||
|
||||
.fancybox-opened .fancybox-skin {
|
||||
-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
||||
-moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.fancybox-outer, .fancybox-inner {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.fancybox-inner {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fancybox-type-iframe .fancybox-inner {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
|
||||
.fancybox-error {
|
||||
color: #444;
|
||||
font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
margin: 0;
|
||||
padding: 15px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fancybox-image, .fancybox-iframe {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.fancybox-image {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
|
||||
background-image: url('../images/fancybox_sprite.png');
|
||||
}
|
||||
|
||||
#fancybox-loading {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-top: -22px;
|
||||
margin-left: -22px;
|
||||
background-position: 0 -108px;
|
||||
opacity: 0.8;
|
||||
cursor: pointer;
|
||||
z-index: 8060;
|
||||
}
|
||||
|
||||
#fancybox-loading div {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
background: url('../images/fancybox_loading.gif') center center no-repeat;
|
||||
}
|
||||
|
||||
.fancybox-close {
|
||||
position: absolute;
|
||||
top: -18px;
|
||||
right: -18px;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
cursor: pointer;
|
||||
z-index: 8040;
|
||||
}
|
||||
|
||||
.fancybox-nav {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 40%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
background: transparent url('../images/blank.gif'); /* helps IE */
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
z-index: 8040;
|
||||
}
|
||||
|
||||
.fancybox-prev {
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.fancybox-next {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.fancybox-nav span {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 36px;
|
||||
height: 34px;
|
||||
margin-top: -18px;
|
||||
cursor: pointer;
|
||||
z-index: 8040;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.fancybox-prev span {
|
||||
left: 10px;
|
||||
background-position: 0 -36px;
|
||||
}
|
||||
|
||||
.fancybox-next span {
|
||||
right: 10px;
|
||||
background-position: 0 -72px;
|
||||
}
|
||||
|
||||
.fancybox-nav:hover span {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.fancybox-tmp {
|
||||
position: absolute;
|
||||
top: -99999px;
|
||||
left: -99999px;
|
||||
visibility: hidden;
|
||||
max-width: 99999px;
|
||||
max-height: 99999px;
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
/* Overlay helper */
|
||||
|
||||
.fancybox-lock {
|
||||
overflow: hidden !important;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.fancybox-lock body {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.fancybox-lock-test {
|
||||
overflow-y: hidden !important;
|
||||
}
|
||||
|
||||
.fancybox-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
display: none;
|
||||
z-index: 8010;
|
||||
background: url('../images/fancybox_overlay.png');
|
||||
}
|
||||
|
||||
.fancybox-overlay-fixed {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.fancybox-lock .fancybox-overlay {
|
||||
overflow: auto;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
/* Title helper */
|
||||
|
||||
.fancybox-title {
|
||||
visibility: hidden;
|
||||
font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
position: relative;
|
||||
text-shadow: none;
|
||||
z-index: 8050;
|
||||
}
|
||||
|
||||
.fancybox-opened .fancybox-title {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.fancybox-title-float-wrap {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 50%;
|
||||
margin-bottom: -35px;
|
||||
z-index: 8050;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fancybox-title-float-wrap .child {
|
||||
display: inline-block;
|
||||
margin-right: -100%;
|
||||
padding: 2px 20px;
|
||||
background: transparent; /* Fallback for web browsers that doesn't support RGBa */
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
-webkit-border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
text-shadow: 0 1px 2px #222;
|
||||
color: #FFF;
|
||||
font-weight: bold;
|
||||
line-height: 24px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.fancybox-title-outside-wrap {
|
||||
position: relative;
|
||||
margin-top: 10px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.fancybox-title-inside-wrap {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.fancybox-title-over-wrap {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
color: #fff;
|
||||
padding: 10px;
|
||||
background: #000;
|
||||
background: rgba(0, 0, 0, .8);
|
||||
}
|
||||
|
||||
/*Retina graphics!*/
|
||||
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
||||
only screen and (min--moz-device-pixel-ratio: 1.5),
|
||||
only screen and (min-device-pixel-ratio: 1.5){
|
||||
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
|
||||
background-image: url('../images/fancybox_sprite@2x.png');
|
||||
background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/
|
||||
}
|
||||
|
||||
#fancybox-loading div {
|
||||
background-image: url('../images/fancybox_loading@2x.gif');
|
||||
background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,974 @@
|
||||
@charset "UTF-8";
|
||||
@import url(animate.css);
|
||||
@import url(//fonts.googleapis.com/css?family=Quattrocento:400,700|Raleway:400,700,800);
|
||||
@import url(//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css);
|
||||
/*========================================================
|
||||
Main Styles
|
||||
=========================================================*/
|
||||
body {
|
||||
background: #fff;
|
||||
color: #3f4853;
|
||||
font: 400 18px/36px "Quattrocento", serif;
|
||||
-webkit-text-size-adjust: none;
|
||||
text-align: center; }
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto; }
|
||||
|
||||
h1 {
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-size: 30px;
|
||||
line-height: 40px;
|
||||
font-weight: 800;
|
||||
text-transform: uppercase;
|
||||
color: #fff;
|
||||
letter-spacing: 1px; }
|
||||
|
||||
h2 {
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-size: 42px;
|
||||
line-height: 50px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
position: relative;
|
||||
color: #fff;
|
||||
letter-spacing: 1px; }
|
||||
h2:after {
|
||||
content: '';
|
||||
display: block;
|
||||
margin: 10px auto 0;
|
||||
width: 170px;
|
||||
height: 1px;
|
||||
background: #fff; }
|
||||
@media (max-width: 767px) {
|
||||
h2 {
|
||||
font-size: 35px; } }
|
||||
|
||||
h3 {
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-size: 18px;
|
||||
line-height: 30px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
position: relative;
|
||||
color: #343434;
|
||||
letter-spacing: .7px; }
|
||||
h3:after {
|
||||
content: '';
|
||||
display: block;
|
||||
margin: 25px auto 0;
|
||||
width: 170px;
|
||||
height: 1px;
|
||||
background: #5d5d5d; }
|
||||
|
||||
h4 {
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-size: 24px;
|
||||
line-height: 34px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 1px;
|
||||
color: #c2410c; }
|
||||
|
||||
h5 {
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-size: 24px;
|
||||
line-height: 34px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 1px; }
|
||||
|
||||
h6 {
|
||||
color: #c2410c; }
|
||||
|
||||
h2 a:hover, h3 a:hover, h5 a:hover {
|
||||
color: #c2410c; }
|
||||
|
||||
h4 a:hover, h6 a:hover {
|
||||
color: #3f4853; }
|
||||
|
||||
p a:hover, .marked-list a:hover, .inline-list a:hover {
|
||||
text-decoration: underline; }
|
||||
p .fa, .marked-list .fa, .inline-list .fa {
|
||||
text-decoration: none; }
|
||||
|
||||
time {
|
||||
display: block; }
|
||||
|
||||
a {
|
||||
font: inherit;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
-moz-transition: 0.3s;
|
||||
-o-transition: 0.3s;
|
||||
-webkit-transition: 0.3s;
|
||||
transition: 0.3s; }
|
||||
a:focus {
|
||||
outline: none; }
|
||||
a:active {
|
||||
background-color: transparent; }
|
||||
|
||||
a[href^="tel:"],
|
||||
a[href^="callto:"] {
|
||||
color: inherit;
|
||||
text-decoration: none; }
|
||||
|
||||
strong {
|
||||
font-weight: 700; }
|
||||
|
||||
.fa {
|
||||
line-height: inherit; }
|
||||
|
||||
[class*='fa-']:before {
|
||||
font-weight: 400;
|
||||
font-family: "FontAwesome"; }
|
||||
|
||||
.page {
|
||||
overflow: hidden;
|
||||
min-height: 500px; }
|
||||
.lt-ie9 .page {
|
||||
min-width: 1200px; }
|
||||
|
||||
/*=======================================================
|
||||
Main Layout
|
||||
=========================================================*/
|
||||
h2 + * {
|
||||
margin-top: 20px; }
|
||||
|
||||
* + h4 {
|
||||
margin-top: 20px; }
|
||||
|
||||
h4 + * {
|
||||
margin-top: 13px; }
|
||||
|
||||
* + h5 {
|
||||
margin-top: 30px; }
|
||||
|
||||
h5 + * {
|
||||
margin-top: 10px; }
|
||||
|
||||
* + .btn, * + .btn2 {
|
||||
margin-top: 45px; }
|
||||
|
||||
* + h6 {
|
||||
margin-top: 10px; }
|
||||
|
||||
.row + .row {
|
||||
margin-top: 25px; }
|
||||
|
||||
h3 + * {
|
||||
margin-top: 50px; }
|
||||
|
||||
/*=======================================================
|
||||
Components
|
||||
=========================================================*/
|
||||
/*================== Brand ======================*/
|
||||
.brand {
|
||||
display: inline-block; }
|
||||
.brand_name {
|
||||
overflow: hidden; }
|
||||
|
||||
/*================== Backgrounds ======================*/
|
||||
.bg1 {
|
||||
background: no-repeat url(../images/bg1.jpg) 0 0;
|
||||
background-size: cover; }
|
||||
|
||||
.bg2 {
|
||||
background: no-repeat url(../images/bg2.jpg) 0 0;
|
||||
background-size: cover; }
|
||||
|
||||
.bg3 {
|
||||
background: #c2410c;
|
||||
color: #fff;
|
||||
position: relative;
|
||||
overflow: hidden; }
|
||||
.bg3 h2, .bg3 h3, .bg3 h4, .bg3 h5, .bg3 h6 {
|
||||
color: #fff; }
|
||||
.bg3 h2:after, .bg3 h3:after, .bg3 h4:after, .bg3 h5:after, .bg3 h6:after {
|
||||
background: #fff; }
|
||||
.bg3 h2 a:hover, .bg3 h3 a:hover, .bg3 h4 a:hover, .bg3 h5 a:hover, .bg3 h6 a:hover {
|
||||
color: #3f4853; }
|
||||
.bg3 .container {
|
||||
position: relative; }
|
||||
|
||||
.bg-img1 {
|
||||
display: none; }
|
||||
@media (min-width: 1540px) {
|
||||
.bg-img1 {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 50%;
|
||||
margin-right: 360px;
|
||||
top: 0;
|
||||
height: 100%; } }
|
||||
|
||||
.bg-img2 {
|
||||
display: none; }
|
||||
@media (min-width: 1540px) {
|
||||
.bg-img2 {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 50%;
|
||||
margin-right: 5px;
|
||||
top: 0;
|
||||
height: 100%; } }
|
||||
|
||||
/*================== Icons ======================*/
|
||||
.fl-bigmug-line {
|
||||
font-size: 90px;
|
||||
line-height: 100px;
|
||||
color: #c2410c; }
|
||||
|
||||
/*================== Buttons ======================*/
|
||||
.btn, .btn2 {
|
||||
display: inline-block;
|
||||
border: 1px solid #c2410c;
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 30px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: .7px;
|
||||
border-radius: 3px;
|
||||
padding: 8px 40px;
|
||||
color: #c2410c;
|
||||
text-align: center; }
|
||||
.btn:hover, .btn2:hover {
|
||||
background: #c2410c;
|
||||
color: #fff; }
|
||||
.btn:active, .btn2:active {
|
||||
background: #c55f02; }
|
||||
|
||||
.btn2 {
|
||||
border-color: #fff;
|
||||
color: #fff; }
|
||||
.btn2:hover {
|
||||
background: #fff;
|
||||
color: #c2410c; }
|
||||
.btn2:active {
|
||||
background: #e6e6e6; }
|
||||
|
||||
/*================== Box ======================*/
|
||||
.box {
|
||||
border: 1px solid #a2a2a2;
|
||||
padding: 27px 20px 35px;
|
||||
font-weight: 700;
|
||||
line-height: 30px; }
|
||||
|
||||
.box2 {
|
||||
position: relative; }
|
||||
.box2:before, .box2:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0; }
|
||||
.box2:after {
|
||||
clear: both; }
|
||||
.box2_over {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
text-align: center; }
|
||||
.box2_over time {
|
||||
font-size: 120px;
|
||||
line-height: 110px;
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-weight: 700;
|
||||
color: rgba(255, 255, 255, 0.25);
|
||||
padding-bottom: 20px; }
|
||||
@media (max-width: 1500px) and (min-width: 980px) {
|
||||
.box2_over time {
|
||||
font-size: 75px;
|
||||
line-height: 70px; } }
|
||||
.box2_aside {
|
||||
float: left;
|
||||
margin-right: 30px; }
|
||||
@media (max-width: 979px) {
|
||||
.box2_aside {
|
||||
float: none;
|
||||
margin-bottom: 30px;
|
||||
margin-right: 0; } }
|
||||
.box2_cnt__no-flow {
|
||||
overflow: hidden;
|
||||
text-align: left; }
|
||||
|
||||
.box3 {
|
||||
padding: 0 5%; }
|
||||
|
||||
/*================== Lists ======================*/
|
||||
.inline-list {
|
||||
text-transform: uppercase; }
|
||||
* + .inline-list {
|
||||
margin-top: 60px; }
|
||||
.inline-list li {
|
||||
display: inline-block;
|
||||
margin: 0 20px; }
|
||||
|
||||
.marked-list li {
|
||||
position: relative;
|
||||
padding-left: 30px; }
|
||||
.marked-list li:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
top: 13px;
|
||||
left: 0; }
|
||||
.marked-list li + li {
|
||||
margin-top: 12px; }
|
||||
|
||||
.marked-list1 li {
|
||||
position: relative; }
|
||||
.marked-list1 li:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 9px;
|
||||
height: 9px;
|
||||
border-radius: 50%;
|
||||
background: #fff;
|
||||
vertical-align: top;
|
||||
margin-top: 13px;
|
||||
margin-right: 20px; }
|
||||
.marked-list1 li + li {
|
||||
margin-top: 12px; }
|
||||
* + .marked-list1 {
|
||||
margin-top: 20px; }
|
||||
|
||||
.index-list {
|
||||
counter-reset: li; }
|
||||
.index-list li {
|
||||
position: relative; }
|
||||
.index-list li:before {
|
||||
content: counter(li,decimal-leading-zero);
|
||||
counter-increment: li;
|
||||
display: inline-block;
|
||||
width: 108px;
|
||||
height: 108px;
|
||||
border-radius: 50%;
|
||||
background: #c2410c;
|
||||
border: 1px solid #fff;
|
||||
color: #fff;
|
||||
font-size: 48px;
|
||||
line-height: 108px;
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
margin-bottom: 30px; }
|
||||
|
||||
.list {
|
||||
text-align: left; }
|
||||
.list li + li {
|
||||
margin-top: 10px; }
|
||||
.list .title {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
padding-right: 70px; }
|
||||
.list .title:before, .list .title:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0; }
|
||||
.list .title:after {
|
||||
clear: both; }
|
||||
.list .title_right {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background: #fff; }
|
||||
.list .title_no-flow {
|
||||
overflow: hidden;
|
||||
background: #fff; }
|
||||
.list .title_text {
|
||||
background: #fff; }
|
||||
.list .title .dots {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
display: block;
|
||||
width: 100%;
|
||||
z-index: -1; }
|
||||
|
||||
/*======================== Menu ==========================*/
|
||||
.sf-menu {
|
||||
display: inline-block;
|
||||
text-align: left; }
|
||||
.sf-menu:before, .sf-menu:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0; }
|
||||
.sf-menu:after {
|
||||
clear: both; }
|
||||
.sf-menu > li {
|
||||
position: relative;
|
||||
float: left; }
|
||||
.sf-menu > li + li {
|
||||
margin-left: 50px; }
|
||||
@media (max-width: 979px) and (min-width: 768px) {
|
||||
.sf-menu > li + li {
|
||||
margin-left: 25px; } }
|
||||
.sf-menu a {
|
||||
display: block;
|
||||
font-family: 'Raleway', sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
color: #fff; }
|
||||
|
||||
.sf-menu > li > a {
|
||||
color: #FFF;
|
||||
letter-spacing: .4px; }
|
||||
.sf-menu > li.sfHover > a, .sf-menu > li > a:hover, .sf-menu > li.active > a {
|
||||
color: #fec795; }
|
||||
|
||||
.sf-menu ul {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
width: 150px;
|
||||
margin-top: 15px;
|
||||
margin-left: -20px;
|
||||
padding: 13px 15px 20px;
|
||||
background: #c2410c;
|
||||
z-index: 2;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
|
||||
-moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
|
||||
box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); }
|
||||
|
||||
.sf-menu ul > li + li {
|
||||
margin-top: 12px; }
|
||||
.sf-menu ul > li > a {
|
||||
color: #FFF; }
|
||||
.sf-menu ul > li.sfHover > a, .sf-menu ul > li > a:hover {
|
||||
color: #3f4853; }
|
||||
|
||||
.sf-menu ul ul {
|
||||
position: absolute;
|
||||
top: -15px;
|
||||
left: 100%;
|
||||
width: 150px;
|
||||
margin-left: 10px;
|
||||
padding: 13px 15px 20px;
|
||||
z-index: 4; }
|
||||
|
||||
.sf-menu ul ul > li > a {
|
||||
color: #FFF; }
|
||||
.sf-menu ul ul > li.sfHover > a, .sf-menu ul ul > li > a:hover {
|
||||
color: #3f4853; }
|
||||
|
||||
.sf-menu > li > .sf-with-ul {
|
||||
position: relative; }
|
||||
.sf-menu > li > .sf-with-ul:before {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 75%;
|
||||
margin-left: -6px;
|
||||
content: "";
|
||||
font: 400 12px/12px "FontAwesome"; }
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.sf-menu {
|
||||
display: none; } }
|
||||
/*================== RD Mobile Menu =====================*/
|
||||
.rd-mobilemenu {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 9999999;
|
||||
text-align: left;
|
||||
-moz-transition: 0.3s all ease;
|
||||
-o-transition: 0.3s all ease;
|
||||
-webkit-transition: 0.3s all ease;
|
||||
transition: 0.3s all ease; }
|
||||
.rd-mobilemenu.active {
|
||||
right: 0; }
|
||||
|
||||
.rd-mobilemenu_ul {
|
||||
position: fixed;
|
||||
top: -56px;
|
||||
left: 0;
|
||||
bottom: -56px;
|
||||
width: 240px;
|
||||
padding: 132px 0 76px;
|
||||
color: #666;
|
||||
background: #FFF;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
overflow: auto;
|
||||
-webkit-box-shadow: 5px 0 5px 0 rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: 5px 0 5px 0 rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 5px 0 5px 0 rgba(0, 0, 0, 0.1);
|
||||
-moz-transform: translateX(-240px);
|
||||
-ms-transform: translateX(-240px);
|
||||
-o-transform: translateX(-240px);
|
||||
-webkit-transform: translateX(-240px);
|
||||
transform: translateX(-240px);
|
||||
-moz-transition: 0.3s ease;
|
||||
-o-transition: 0.3s ease;
|
||||
-webkit-transition: 0.3s ease;
|
||||
transition: 0.3s ease;
|
||||
-moz-transition: 0.3s cubic-bezier(0.55, 0, 0.1, 1);
|
||||
-o-transition: 0.3s cubic-bezier(0.55, 0, 0.1, 1);
|
||||
-webkit-transition: 0.3s cubic-bezier(0.55, 0, 0.1, 1);
|
||||
transition: 0.3s cubic-bezier(0.55, 0, 0.1, 1); }
|
||||
.rd-mobilemenu.active .rd-mobilemenu_ul {
|
||||
-moz-transform: translateX(0);
|
||||
-ms-transform: translateX(0);
|
||||
-o-transform: translateX(0);
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0); }
|
||||
.rd-mobilemenu_ul a {
|
||||
display: block;
|
||||
padding: 14px 25px 16px; }
|
||||
.rd-mobilemenu_ul a.active {
|
||||
background: #f5f5f5;
|
||||
color: #2d2d2d; }
|
||||
.rd-mobilemenu_ul a:hover {
|
||||
background: #c2410c;
|
||||
color: #FFF; }
|
||||
.rd-mobilemenu_ul a .rd-submenu-toggle {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 11px;
|
||||
margin-top: -17.5px;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
font: 400 10px "FontAwesome";
|
||||
line-height: 32px;
|
||||
text-align: center;
|
||||
-webkit-border-radius: 50%;
|
||||
-moz-border-radius: 50%;
|
||||
border-radius: 50%;
|
||||
-moz-transition: 0.5s all ease;
|
||||
-o-transition: 0.5s all ease;
|
||||
-webkit-transition: 0.5s all ease;
|
||||
transition: 0.5s all ease;
|
||||
z-index: 1;
|
||||
background: rgba(0, 0, 0, 0.1); }
|
||||
.rd-mobilemenu_ul a .rd-submenu-toggle:after {
|
||||
content: '\f078'; }
|
||||
.rd-mobilemenu_ul a .rd-submenu-toggle:hover {
|
||||
background: #FFF;
|
||||
color: #666; }
|
||||
.rd-mobilemenu_ul a.rd-with-ul {
|
||||
position: relative; }
|
||||
.rd-mobilemenu_ul a.rd-with-ul.active .rd-submenu-toggle {
|
||||
-moz-transform: rotate(180deg);
|
||||
-ms-transform: rotate(180deg);
|
||||
-o-transform: rotate(180deg);
|
||||
-webkit-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
.rd-mobilemenu_ul ul a {
|
||||
padding-left: 40px; }
|
||||
.rd-mobilemenu_ul ul ul a {
|
||||
padding-left: 60px; }
|
||||
.rd-mobilemenu_ul:after {
|
||||
content: '';
|
||||
display: block;
|
||||
height: 20px; }
|
||||
|
||||
.rd-mobilepanel {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 56px;
|
||||
background: #FFF;
|
||||
color: #000;
|
||||
-webkit-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
|
||||
-moz-box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.1);
|
||||
z-index: 99999991; }
|
||||
|
||||
.rd-mobilepanel_title {
|
||||
position: fixed;
|
||||
top: 4px;
|
||||
left: 56px;
|
||||
right: 56px;
|
||||
color: #000;
|
||||
font-size: 24px;
|
||||
line-height: 48px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
text-align: left; }
|
||||
.rd-mobilepanel_title:after, .rd-mobilepanel_title:before {
|
||||
display: none; }
|
||||
|
||||
.rd-mobilepanel_toggle {
|
||||
position: fixed;
|
||||
top: 4px;
|
||||
left: 8px;
|
||||
width: 48px;
|
||||
height: 48px; }
|
||||
.rd-mobilepanel_toggle span {
|
||||
position: relative;
|
||||
display: block;
|
||||
margin: auto;
|
||||
-moz-transition: all 0.3s ease;
|
||||
-o-transition: all 0.3s ease;
|
||||
-webkit-transition: all 0.3s ease;
|
||||
transition: all 0.3s ease; }
|
||||
.rd-mobilepanel_toggle span:after, .rd-mobilepanel_toggle span:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: -8px;
|
||||
-moz-transition: all 0.3s ease;
|
||||
-o-transition: all 0.3s ease;
|
||||
-webkit-transition: all 0.3s ease;
|
||||
transition: all 0.3s ease; }
|
||||
.rd-mobilepanel_toggle span:after {
|
||||
top: 8px; }
|
||||
.rd-mobilepanel_toggle span:after, .rd-mobilepanel_toggle span:before, .rd-mobilepanel_toggle span {
|
||||
width: 24px;
|
||||
height: 4px;
|
||||
background-color: #000;
|
||||
backface-visibility: hidden;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px; }
|
||||
.rd-mobilepanel_toggle span {
|
||||
-moz-transform: rotate(180deg);
|
||||
-ms-transform: rotate(180deg);
|
||||
-o-transform: rotate(180deg);
|
||||
-webkit-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
.rd-mobilepanel_toggle span:before, .rd-mobilepanel_toggle span:after {
|
||||
-moz-transform-origin: 1.71429px center;
|
||||
-ms-transform-origin: 1.71429px center;
|
||||
-o-transform-origin: 1.71429px center;
|
||||
-webkit-transform-origin: 1.71429px center;
|
||||
transform-origin: 1.71429px center;
|
||||
-moz-transform-origin: 1.71429px center;
|
||||
-ms-transform-origin: 1.71429px center;
|
||||
-o-transform-origin: 1.71429px center;
|
||||
-webkit-transform-origin: 1.71429px center;
|
||||
transform-origin: 1.71429px center; }
|
||||
.rd-mobilepanel_toggle.active span {
|
||||
-moz-transform: rotate(360deg);
|
||||
-ms-transform: rotate(360deg);
|
||||
-o-transform: rotate(360deg);
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); }
|
||||
.rd-mobilepanel_toggle.active span:before, .rd-mobilepanel_toggle.active span:after {
|
||||
top: 0;
|
||||
width: 15px; }
|
||||
.rd-mobilepanel_toggle.active span:before {
|
||||
-webkit-transform: rotate3d(0, 0, 1, -40deg);
|
||||
transform: rotate3d(0, 0, 1, -40deg); }
|
||||
.rd-mobilepanel_toggle.active span:after {
|
||||
-webkit-transform: rotate3d(0, 0, 1, 40deg);
|
||||
transform: rotate3d(0, 0, 1, 40deg); }
|
||||
|
||||
@media (max-width: 767px) {
|
||||
body {
|
||||
padding-top: 56px; }
|
||||
|
||||
.rd-mobilemenu, .rd-mobilepanel {
|
||||
display: block; } }
|
||||
@media (max-width: 359px) {
|
||||
.rd-mobilepanel_title {
|
||||
font-size: 18px; } }
|
||||
/*================== Stuck menu ======================*/
|
||||
.isStuck {
|
||||
background: rgba(248, 119, 2, 0.9);
|
||||
border-bottom: 1px solid #fff;
|
||||
z-index: 999;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 10px; }
|
||||
|
||||
@media only screen and (max-width: 979px) {
|
||||
.isStuck {
|
||||
display: none !important; } }
|
||||
/*================== ToTop ======================*/
|
||||
.toTop {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
font-size: 24px;
|
||||
line-height: 46px;
|
||||
color: #fff;
|
||||
background: #3f4853;
|
||||
border-radius: 50%;
|
||||
-webkit-box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.4);
|
||||
-moz-box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.4);
|
||||
box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.4);
|
||||
position: fixed;
|
||||
right: 40px;
|
||||
bottom: 40px;
|
||||
display: none;
|
||||
overflow: hidden;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
z-index: 20; }
|
||||
.toTop:hover {
|
||||
color: #fff;
|
||||
background: #c2410c;
|
||||
text-decoration: none; }
|
||||
|
||||
.mobile .toTop,
|
||||
.tablet .toTop {
|
||||
display: none !important; }
|
||||
|
||||
/*================== RD Parallax ======================*/
|
||||
.parallax {
|
||||
position: relative;
|
||||
overflow: hidden; }
|
||||
.parallax_image, .parallax_pattern {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
background-position: center center;
|
||||
will-change: transform; }
|
||||
.parallax_image {
|
||||
background-repeat: no-repeat;
|
||||
-webkit-background-size: cover;
|
||||
background-size: cover; }
|
||||
.parallax_pattern {
|
||||
background-repeat: repeat; }
|
||||
.parallax_cnt {
|
||||
position: relative;
|
||||
color: #fff; }
|
||||
.parallax h2, .parallax h3, .parallax h4, .parallax h5, .parallax h6 {
|
||||
color: #fff; }
|
||||
.parallax h2:after, .parallax h3:after, .parallax h4:after, .parallax h5:after, .parallax h6:after {
|
||||
background: #fff; }
|
||||
.parallax h2 a:hover, .parallax h3 a:hover, .parallax h4 a:hover, .parallax h5 a:hover, .parallax h6 a:hover {
|
||||
color: #c2410c; }
|
||||
.parallax_1 {
|
||||
padding-top: 115px;
|
||||
padding-bottom: 80px; }
|
||||
.parallax_2 {
|
||||
padding-top: 115px;
|
||||
padding-bottom: 110px; }
|
||||
|
||||
/*================== Thumbnail ======================*/
|
||||
.thumb {
|
||||
display: block;
|
||||
position: relative;
|
||||
overflow: hidden; }
|
||||
.thumb img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
-moz-transition: 0.5s all ease;
|
||||
-o-transition: 0.5s all ease;
|
||||
-webkit-transition: 0.5s all ease;
|
||||
transition: 0.5s all ease; }
|
||||
.thumb_overlay {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
opacity: 0;
|
||||
-moz-transition: 0.3s all ease;
|
||||
-o-transition: 0.3s all ease;
|
||||
-webkit-transition: 0.3s all ease;
|
||||
transition: 0.3s all ease;
|
||||
color: #fff;
|
||||
background: transparent; }
|
||||
.thumb_overlay:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
font: 400 30px "FontAwesome";
|
||||
line-height: 30px;
|
||||
margin-top: -15px;
|
||||
text-align: center; }
|
||||
.lt-ie9 .thumb_overlay:before {
|
||||
display: none; }
|
||||
.thumb:hover .thumb_overlay {
|
||||
opacity: 1;
|
||||
background: rgba(0, 0, 0, 0.5); }
|
||||
.lt-ie9 .thumb:hover .thumb_overlay {
|
||||
background: none;
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#80000000')";
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#80000000');
|
||||
zoom: 1; }
|
||||
.lt-ie9 .thumb:hover .thumb_overlay:before {
|
||||
display: block; }
|
||||
|
||||
/*========================================================
|
||||
HEADER Section
|
||||
=========================================================*/
|
||||
header {
|
||||
padding-top: 25px;
|
||||
padding-bottom: 27px; }
|
||||
header .brand {
|
||||
float: left; }
|
||||
header .nav {
|
||||
float: right;
|
||||
margin-top: 13px; }
|
||||
@media (max-width: 767px) {
|
||||
header {
|
||||
text-align: center; }
|
||||
header .brand, header .nav {
|
||||
float: none; } }
|
||||
|
||||
.top-section {
|
||||
padding-top: 170px;
|
||||
padding-bottom: 195px;
|
||||
color: #fff; }
|
||||
.top-section h2 {
|
||||
color: #fff; }
|
||||
|
||||
/*========================================================
|
||||
CONTENT Section
|
||||
=========================================================*/
|
||||
main {
|
||||
display: block; }
|
||||
|
||||
.text1 {
|
||||
font-weight: 700;
|
||||
line-height: 30px; }
|
||||
|
||||
.primary {
|
||||
color: #c2410c; }
|
||||
|
||||
.circle {
|
||||
display: inline-block;
|
||||
border-radius: 50%; }
|
||||
|
||||
.full:before, .full:after {
|
||||
display: table;
|
||||
content: "";
|
||||
line-height: 0; }
|
||||
.full:after {
|
||||
clear: both; }
|
||||
@media (max-width: 767px) {
|
||||
.full {
|
||||
width: 420px;
|
||||
margin-right: auto;
|
||||
margin-left: auto; } }
|
||||
@media (max-width: 479px) {
|
||||
.full {
|
||||
width: 300px;
|
||||
padding: 0 15px; } }
|
||||
.full-item {
|
||||
width: 20%;
|
||||
float: left; }
|
||||
@media (min-width: 980px) {
|
||||
.full-item .box {
|
||||
border-left: 0; }
|
||||
.full-item:last-child .box {
|
||||
border-right: 0; } }
|
||||
@media (max-width: 979px) and (min-width: 768px) {
|
||||
.full-item {
|
||||
width: 50%; }
|
||||
.full-item:nth-child(2n) .box {
|
||||
border-right: 0;
|
||||
border-left: 0; }
|
||||
.full-item:nth-child(n+3) .box {
|
||||
border-top: 0; } }
|
||||
@media (max-width: 767px) {
|
||||
.full-item {
|
||||
width: 100%; }
|
||||
.full-item + .full-item {
|
||||
margin-top: 30px; } }
|
||||
|
||||
.mt1, .row.mt1 {
|
||||
margin-top: 50px; }
|
||||
|
||||
.mt2 {
|
||||
margin-top: 100px; }
|
||||
|
||||
.mt3, .row.mt3 {
|
||||
margin-top: 60px; }
|
||||
|
||||
.mt4 {
|
||||
margin-top: 20px; }
|
||||
|
||||
.addr {
|
||||
font-size: 18px;
|
||||
line-height: 30px; }
|
||||
.addr .fa {
|
||||
font-size: 48px;
|
||||
line-height: 53px; }
|
||||
.addr .fa + * {
|
||||
margin-top: 30px; }
|
||||
.addr .fa-mobile {
|
||||
font-size: 60px; }
|
||||
|
||||
.centered {
|
||||
height: 100%;
|
||||
display: inline-block; }
|
||||
|
||||
.center-wrap {
|
||||
display: inline-block;
|
||||
vertical-align: middle; }
|
||||
|
||||
.helper {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
height: 100%;
|
||||
width: 0px; }
|
||||
|
||||
.quote img + * {
|
||||
margin-top: 15px; }
|
||||
.quote * + h5 {
|
||||
margin-top: 10px; }
|
||||
|
||||
.tl {
|
||||
text-align: left; }
|
||||
|
||||
.terms {
|
||||
padding-top: 115px;
|
||||
padding-bottom: 80px; }
|
||||
.terms p + h5 {
|
||||
margin-top: 40px; }
|
||||
|
||||
.policy-link {
|
||||
margin-top: 35px; }
|
||||
|
||||
/*================== Well ======================*/
|
||||
.well1 {
|
||||
padding-top: 130px;
|
||||
padding-bottom: 140px; }
|
||||
|
||||
.well2 {
|
||||
padding-top: 120px; }
|
||||
@media (max-width: 979px) {
|
||||
.well2 {
|
||||
padding-top: 80px; } }
|
||||
|
||||
.well3 {
|
||||
padding-top: 120px;
|
||||
padding-bottom: 80px; }
|
||||
|
||||
.well4 {
|
||||
padding-top: 118px;
|
||||
padding-bottom: 125px; }
|
||||
|
||||
.well5 {
|
||||
padding-top: 115px;
|
||||
padding-bottom: 110px; }
|
||||
|
||||
.well6 {
|
||||
padding-top: 125px;
|
||||
padding-bottom: 135px; }
|
||||
|
||||
@media (max-width: 979px) {
|
||||
.well1, .well3, .well4, .well5, .well6 {
|
||||
padding-top: 80px;
|
||||
padding-bottom: 80px; } }
|
||||
|
||||
/*========================================================
|
||||
FOOTER Styles
|
||||
=========================================================*/
|
||||
footer {
|
||||
padding-top: 80px;
|
||||
padding-bottom: 40px;
|
||||
color: #fff; }
|
||||
* + footer .copy {
|
||||
margin-top: 35px; }
|
||||
footer .copy span, footer .copy a {
|
||||
white-space: nowrap; }
|
||||
|
After Width: | Height: | Size: 270 KiB |
@@ -0,0 +1,258 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Gallery | T.R.B. Painting</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Project gallery from T.R.B. Painting — interiors, exteriors, and power washing results.">
|
||||
|
||||
<meta name="format-detection" content="telephone=no"/>
|
||||
<link rel="icon" href="images/favicon.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" href="css/grid.css">
|
||||
<link rel="stylesheet" href="css/jquery.fancybox.css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
|
||||
<script src="js/jquery.js"></script>
|
||||
<script src="js/jquery-migrate-1.2.1.js"></script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<html class="lt-ie9">
|
||||
<div style=' clear: both; text-align:center; position: relative;'>
|
||||
<a href="http://windows.microsoft.com/en-US/internet-explorer/..">
|
||||
<img src="images/ie8-panel/warning_bar_0000_us.jpg" border="0" height="42" width="820"
|
||||
alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today."/>
|
||||
</a>
|
||||
</div>
|
||||
<script src="js/html5shiv.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src='js/device.min.js'></script>
|
||||
<style>
|
||||
.preview-concept-banner{position:fixed;top:0;left:0;right:0;z-index:99999;background:#1a2332;color:#fff;font:600 13px/1.4 system-ui,sans-serif;padding:8px 16px;text-align:center}
|
||||
.preview-concept-banner span{opacity:.85;font-weight:400}
|
||||
.preview-concept-banner a{color:#fff;text-decoration:underline}
|
||||
body{padding-top:36px}
|
||||
.aiml-site-credit{text-align:center;padding:12px 16px 24px;font:14px/1.4 system-ui,sans-serif;color:#555}
|
||||
.aiml-site-credit a{color:#1a2332;text-decoration:underline}
|
||||
footer .aiml-site-credit{color:rgba(255,255,255,.85)}
|
||||
footer .aiml-site-credit a{color:#fff}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="preview-concept-banner">UX Concept Preview — T.R.B. Painting <span>· Concept site — not live</span> · <a href="ux-gallery.html">Feature gallery</a> · <a href="pricing.html">Pricing</a></div>
|
||||
|
||||
<div class="page">
|
||||
<!--========================================================
|
||||
HEADER
|
||||
=========================================================-->
|
||||
<header class="bg2">
|
||||
<div id="stuck_container" class="stuck_container">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<p class="brand_name">
|
||||
<a href="index.html">T.R.B. Painting</a>
|
||||
</p>
|
||||
</div>
|
||||
<nav class="nav" aria-label="Primary">
|
||||
<ul class="sf-menu" data-type="navbar">
|
||||
<li>
|
||||
<a href="index.html">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="services.html">Services</a>
|
||||
<ul>
|
||||
<li><a href="services.html#interior">Interior painting</a></li>
|
||||
<li><a href="services.html#exterior">Exterior painting</a></li>
|
||||
<li><a href="services.html#power-washing">Power washing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="about.html">About</a>
|
||||
</li>
|
||||
<li class="active">
|
||||
<a href="gallery.html">Gallery</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="contact.html">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<!--========================================================
|
||||
CONTENT
|
||||
=========================================================-->
|
||||
<main>
|
||||
<section class="well4">
|
||||
<div class="container">
|
||||
<h3>Project gallery</h3>
|
||||
<div class="row wow fadeInUp">
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="1">
|
||||
<a data-fancybox-group="1" class="thumb circle" href="images/page-3_img01_original.jpg">
|
||||
<img class="circle" src="images/page-3_img01.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Duis volutpat pulvinar</a></h4>
|
||||
<p class="text1">Lorem ipsum dolor sit amet, conse ctetuer adipiscing elita enean.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="1">
|
||||
<a data-fancybox-group="1" class="thumb circle" href="images/page-3_img02_original.jpg">
|
||||
<img class="circle" src="images/page-3_img02.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Urna ac mollis ulla dapi</a></h4>
|
||||
<p class="text1">Consectetuer adipiscing elita enean commodo ligula eget dolor.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="1">
|
||||
<a data-fancybox-group="1" class="thumb circle" href="images/page-3_img03_original.jpg">
|
||||
<img class="circle" src="images/page-3_img03.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Nulla dapibus lacus vel</a></h4>
|
||||
<p class="text1">Cum sociis natoque penatibus et magnis dis parturi.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt3 wow fadeInUp">
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="2">
|
||||
<a data-fancybox-group="1" class="thumb circle" href="images/page-3_img04_original.jpg">
|
||||
<img class="circle" src="images/page-3_img04.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Pulvinarurna ac mollis</a></h4>
|
||||
<p class="text1">Atetuer adipiscing elita enean commodo ligula eget dolor.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="2">
|
||||
<a data-fancybox-group="1" class="thumb circle" href="images/page-3_img05_original.jpg">
|
||||
<img class="circle" src="images/page-3_img05.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Mollis ulla dapibus</a></h4>
|
||||
<p class="text1">Aenean massa. Cum sociis natoque et magnis dis part.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="2">
|
||||
<a data-fancybox-group="1" class="thumb circle" href="images/page-3_img06_original.jpg">
|
||||
<img class="circle" src="images/page-3_img06.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Lacus vel malesuada ulla</a></h4>
|
||||
<p class="text1">Ent montes, nascetur ridiculus mus. Donec quam felis, ultricies.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="parallax parallax_2" data-url="images/parallax04.jpg">
|
||||
<div class="container">
|
||||
<h2>Choose the color of your life</h2>
|
||||
<div class="row">
|
||||
<div class="preffix_1 grid_10">
|
||||
<p>Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="well3">
|
||||
<div class="container">
|
||||
<h3>Recent projects</h3>
|
||||
<div class="row wow fadeInUp">
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="3">
|
||||
<a data-fancybox-group="2" class="thumb circle" href="images/page-3_img07_original.jpg">
|
||||
<img class="circle" src="images/page-3_img07.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Praesent lacinia congu</a></h4>
|
||||
<p class="text1">Aenean lacinia, nulla nec faucibus egestas, libero arcu iaculis.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="3">
|
||||
<a data-fancybox-group="2" class="thumb circle" href="images/page-3_img08_original.jpg">
|
||||
<img class="circle" src="images/page-3_img08.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Congue velit vitae moll</a></h4>
|
||||
<p class="text1">Libero arcu iaculis massa, et ullam corper nisi enim ac erat.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box" data-equal-group="3">
|
||||
<a data-fancybox-group="2" class="thumb circle" href="images/page-3_img09_original.jpg">
|
||||
<img class="circle" src="images/page-3_img09.jpg" alt="Painted project photo">
|
||||
<span class="thumb_overlay circle"></span>
|
||||
</a>
|
||||
<h4><a href="#">Velit vitae mollis hase</a></h4>
|
||||
<p class="text1">Arcu iaculis massa, et ullamcorper nisi enim ac erat. Phasellus qui.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!--========================================================
|
||||
FOOTER
|
||||
=========================================================-->
|
||||
<footer class="parallax" data-url="images/parallax02.jpg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-map-marker" aria-hidden="true"></span>
|
||||
<p>Service area TBD<br><span style="opacity:.85">Confirm coverage with T.R.B. Painting</span></p>
|
||||
</address>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"></span>
|
||||
<p>Email TBD</p>
|
||||
</address>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-mobile" aria-hidden="true"></span>
|
||||
<p><a href="tel:+16306066776">(630) 606-6776</a></p>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
<p class="copy">
|
||||
T.R.B. Painting © <span id="copyright-year"></span>
|
||||
<span>All Rights Reserved</span>
|
||||
|
|
||||
<a href="privacy.html">Privacy Policy</a>
|
||||
</p>
|
||||
<p class="aiml-site-credit">Made by <a href="https://aimloperations.com" rel="noopener noreferrer" target="_blank">AI ML Operations, LLC</a></p>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script src="js/script.js"></script>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
function labelToggle() {
|
||||
var t = document.querySelector('.rd-mobilepanel_toggle');
|
||||
if (t && !t.getAttribute('aria-label')) t.setAttribute('aria-label', 'Open menu');
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
labelToggle();
|
||||
setTimeout(labelToggle, 500);
|
||||
setTimeout(labelToggle, 1500);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 386 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 43 B |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 1003 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 141 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 664 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 732 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 332 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 375 KiB |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 533 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 886 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 174 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 841 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 429 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 434 KiB |
|
After Width: | Height: | Size: 483 KiB |
|
After Width: | Height: | Size: 213 KiB |
@@ -0,0 +1,344 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>T.R.B. Painting | Interior, Exterior & Power Washing</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="T.R.B. Painting — interior painting, exterior painting, and power washing. Call (630) 606-6776 for a free estimate.">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="canonical" href="https://trb-painting-preview.aimloperations.com/">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="T.R.B. Painting | Interior, Exterior & Power Washing">
|
||||
<meta property="og:description" content="T.R.B. Painting — interior painting, exterior painting, and power washing. Call (630) 606-6776 for a free estimate.">
|
||||
<meta property="og:url" content="https://trb-painting-preview.aimloperations.com/">
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="T.R.B. Painting | Interior, Exterior & Power Washing">
|
||||
<meta name="twitter:description" content="T.R.B. Painting — interior painting, exterior painting, and power washing. Call (630) 606-6776 for a free estimate.">
|
||||
|
||||
<meta name="format-detection" content="telephone=no"/>
|
||||
<link rel="icon" href="images/favicon.ico" type="image/x-icon">
|
||||
<link rel="stylesheet" href="css/grid.css">
|
||||
<link rel="stylesheet" href="css/fl-bigmug-line.css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
|
||||
<script src="js/jquery.js"></script>
|
||||
<script src="js/jquery-migrate-1.2.1.js"></script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<html class="lt-ie9">
|
||||
<div style=' clear: both; text-align:center; position: relative;'>
|
||||
<a href="http://windows.microsoft.com/en-US/internet-explorer/..">
|
||||
<img src="images/ie8-panel/warning_bar_0000_us.jpg" border="0" height="42" width="820"
|
||||
alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today."/ loading="lazy" decoding="async">
|
||||
</a>
|
||||
</div>
|
||||
<script src="js/html5shiv.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src='js/device.min.js'></script>
|
||||
<style>
|
||||
.preview-concept-banner{position:fixed;top:0;left:0;right:0;z-index:99999;background:#1a2332;color:#fff;font:600 13px/1.4 system-ui,sans-serif;padding:8px 16px;text-align:center}
|
||||
.preview-concept-banner span{opacity:.85;font-weight:400}
|
||||
.preview-concept-banner a{color:#fff;text-decoration:underline}
|
||||
body{padding-top:36px}
|
||||
.aiml-site-credit{text-align:center;padding:12px 16px 24px;font:14px/1.4 system-ui,sans-serif;color:#555}
|
||||
.aiml-site-credit a{color:#1a2332;text-decoration:underline}
|
||||
footer .aiml-site-credit{color:rgba(255,255,255,.85)}
|
||||
footer .aiml-site-credit a{color:#fff}
|
||||
.box-title{font-size:18px;font-weight:700;margin:12px 0 8px}
|
||||
.svc-label{font-size:16px;font-weight:700;line-height:1.35;margin:10px 0 0}
|
||||
</style>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "HousePainter",
|
||||
"name": "T.R.B. Painting",
|
||||
"url": "https://trb-painting-preview.aimloperations.com/",
|
||||
"telephone": "+1-630-606-6776",
|
||||
"description": "Interior painting, exterior painting, and power washing services.",
|
||||
"areaServed": "US"
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="preview-concept-banner">UX Concept Preview — T.R.B. Painting <span>· Concept site — not live</span> · <a href="ux-gallery.html">Feature gallery</a> · <a href="pricing.html">Pricing</a></div>
|
||||
|
||||
<div class="page">
|
||||
<!--========================================================
|
||||
HEADER
|
||||
=========================================================-->
|
||||
<header class="bg1">
|
||||
<div id="stuck_container" class="stuck_container">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<h1 class="brand_name">
|
||||
<a href="index.html">T.R.B. Painting</a>
|
||||
</h1>
|
||||
</div>
|
||||
<nav class="nav" aria-label="Primary">
|
||||
<ul class="sf-menu" data-type="navbar">
|
||||
<li class="active">
|
||||
<a href="index.html">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="services.html">Services</a>
|
||||
<ul>
|
||||
<li><a href="services.html#interior">Interior painting</a></li>
|
||||
<li><a href="services.html#exterior">Exterior painting</a></li>
|
||||
<li><a href="services.html#power-washing">Power washing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="about.html">About</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="gallery.html">Gallery</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="contact.html">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
<section class="top-section">
|
||||
<div class="container">
|
||||
<h2>Quality painting & power washing</h2>
|
||||
<div class="row">
|
||||
<div class="preffix_2 grid_8">
|
||||
<p>Interior painting, exterior painting, and power washing — done right. Call <a href="tel:+16306066776">(630) 606-6776</a> for a free estimate.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</header>
|
||||
<!--========================================================
|
||||
CONTENT
|
||||
=========================================================-->
|
||||
<main>
|
||||
<section class="bg3 well6">
|
||||
<img class="bg-img1" src="images/page-1_img01.jpg" alt="Professional painter at work">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="preffix_2 grid_8">
|
||||
<h3>Professional painting you can trust</h3>
|
||||
<p class="mt4">T.R.B. Painting brings clean prep, careful application, and durable finishes to homes and small commercial jobs. From fresh interiors to curb-appeal exteriors and deep power washing — one crew, clear communication.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="well1">
|
||||
<div class="container">
|
||||
<h3>What we paint</h3>
|
||||
<div class="row mt2">
|
||||
<div class="grid_4">
|
||||
<div class="box3 wow fadeInUp">
|
||||
<img src="images/page-1_img02.jpg" alt="Interior painting project" loading="lazy" decoding="async">
|
||||
<h3 class="box-title"><a href="services.html#interior">Interior painting</a></h3>
|
||||
<p class="text1">Clean lines and durable finishes indoors.</p>
|
||||
<a class="btn" href="services.html">View services</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box3 wow fadeInUp" data-wow-delay="0.2s">
|
||||
<img src="images/page-1_img03.jpg" alt="Exterior painting project" loading="lazy" decoding="async">
|
||||
<h3 class="box-title"><a href="services.html#exterior">Exterior painting</a></h3>
|
||||
<p class="text1">Weather-ready coats that protect and impress.</p>
|
||||
<a class="btn" href="services.html">View services</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box3 wow fadeInUp" data-wow-delay="0.4s">
|
||||
<img src="images/page-1_img04.jpg" alt="Power washing a home exterior" loading="lazy" decoding="async">
|
||||
<h3 class="box-title"><a href="services.html#power-washing">Power washing</a></h3>
|
||||
<p class="text1">Restore curb appeal and prep for paint.</p>
|
||||
<a class="btn" href="services.html">View services</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="parallax parallax_1" data-url="images/parallax01.jpg">
|
||||
<div class="container">
|
||||
<h3> Our services</h3>
|
||||
<div class="row">
|
||||
<div class="grid_4">
|
||||
<div class="box3">
|
||||
<img src="images/page-1_icon01.png" alt="" loading="lazy" decoding="async">
|
||||
<p class="svc-label"><a href="services.html#interior">Interior walls, ceilings,<br> trim & more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box3">
|
||||
<img src="images/page-1_icon02.png" alt="" loading="lazy" decoding="async">
|
||||
<p class="svc-label"><a href="services.html#exterior">Siding, trim, doors<br> & outdoor surfaces</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<div class="box3">
|
||||
<img src="images/page-1_icon03.png" alt="" loading="lazy" decoding="async">
|
||||
<p class="svc-label"><a href="services.html#power-washing">Prep surfaces for paint<br> & a cleaner look</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="well2">
|
||||
<div class="container">
|
||||
<h3>Recent work</h3>
|
||||
</div>
|
||||
<div class="full mt1 wow fadeInUp">
|
||||
<div class="full-item">
|
||||
<div class="box" data-equal-group="1">
|
||||
<div class="box2">
|
||||
<img class="circle" src="images/page-1_img05.jpg" alt="" loading="lazy" decoding="async">
|
||||
<div class="box2_over">
|
||||
<div class="centered">
|
||||
<div class="center-wrap">
|
||||
<time datetime="2015-05-27">27<br>05</time>
|
||||
</div>
|
||||
<div class="helper"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h4><a href="#">Fresh interior refresh</a></h4>
|
||||
<p>Walls, ceilings, and trim refreshed for a brighter home.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="full-item">
|
||||
<div class="box" data-equal-group="1">
|
||||
<div class="box2">
|
||||
<img class="circle" src="images/page-1_img06.jpg" alt="" loading="lazy" decoding="async">
|
||||
<div class="box2_over">
|
||||
<div class="centered">
|
||||
<div class="center-wrap">
|
||||
<time datetime="2015-05-27">22<br>05</time>
|
||||
</div>
|
||||
<div class="helper"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h4><a href="#">Exterior color update</a></h4>
|
||||
<p>Walls, ceilings, and trim refreshed for a brighter home.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="full-item">
|
||||
<div class="box" data-equal-group="1">
|
||||
<div class="box2">
|
||||
<img class="circle" src="images/page-1_img07.jpg" alt="" loading="lazy" decoding="async">
|
||||
<div class="box2_over">
|
||||
<div class="centered">
|
||||
<div class="center-wrap">
|
||||
<time datetime="2015-05-27">17<br>05</time>
|
||||
</div>
|
||||
<div class="helper"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h4><a href="#">Power wash & prep</a></h4>
|
||||
<p>Walls, ceilings, and trim refreshed for a brighter home.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="full-item">
|
||||
<div class="box" data-equal-group="1">
|
||||
<div class="box2">
|
||||
<img class="circle" src="images/page-1_img08.jpg" alt="" loading="lazy" decoding="async">
|
||||
<div class="box2_over">
|
||||
<div class="centered">
|
||||
<div class="center-wrap">
|
||||
<time datetime="2015-05-27">11<br>05</time>
|
||||
</div>
|
||||
<div class="helper"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h4><a href="#">Trim & detail work</a></h4>
|
||||
<p>Careful prep and lasting exterior color.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="full-item">
|
||||
<div class="box" data-equal-group="1">
|
||||
<div class="box2">
|
||||
<img class="circle" src="images/page-1_img09.jpg" alt="" loading="lazy" decoding="async">
|
||||
<div class="box2_over">
|
||||
<div class="centered">
|
||||
<div class="center-wrap">
|
||||
<time datetime="2015-05-27">10<br>05</time>
|
||||
</div>
|
||||
<div class="helper"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h4><a href="#">Donec sagittis euismod </a></h4>
|
||||
<p>Walls, ceilings, and trim refreshed for a brighter home.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="well3">
|
||||
<div class="container wow fadeInUp">
|
||||
<h3>About T.R.B. Painting</h3>
|
||||
<div class="row">
|
||||
<div class="preffix_1 grid_10">
|
||||
<p>T.R.B. Painting focuses on three things done well: interior painting, exterior painting, and power washing. We show up prepared, protect your space, and leave a finish you will be proud of. Call (630) 606-6776 to talk through your project.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!--========================================================
|
||||
FOOTER
|
||||
=========================================================-->
|
||||
<footer class="parallax" data-url="images/parallax02.jpg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-map-marker" aria-hidden="true"></span>
|
||||
<p>Service area TBD<br><span style="opacity:.85">Confirm coverage with T.R.B. Painting</span></p>
|
||||
</address>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-envelope-o" aria-hidden="true"></span>
|
||||
<p>Email TBD</p>
|
||||
</address>
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
<address class="addr">
|
||||
<span class="fa fa-mobile" aria-hidden="true"></span>
|
||||
<p><a href="tel:+16306066776">(630) 606-6776</a></p>
|
||||
</address>
|
||||
</div>
|
||||
</div>
|
||||
<p class="copy">
|
||||
T.R.B. Painting © <span id="copyright-year"></span>
|
||||
<span>All Rights Reserved</span>
|
||||
|
|
||||
<a href="privacy.html">Privacy Policy</a>
|
||||
</p>
|
||||
<p class="aiml-site-credit">Made by <a href="https://aimloperations.com" rel="noopener noreferrer" target="_blank">AI ML Operations, LLC</a></p>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script src="js/script.js"></script>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
function labelToggle() {
|
||||
var t = document.querySelector('.rd-mobilepanel_toggle');
|
||||
if (t && !t.getAttribute('aria-label')) t.setAttribute('aria-label', 'Open menu');
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
labelToggle();
|
||||
setTimeout(labelToggle, 500);
|
||||
setTimeout(labelToggle, 1500);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,66 @@
|
||||
/*! device.js 0.1.61 */
|
||||
(function () {
|
||||
var a, b, c, d, e, f, g, h, i, j;
|
||||
a = window.device, window.device = {}, c = window.document.documentElement, j = window.navigator.userAgent.toLowerCase(), device.ios = function () {
|
||||
return device.iphone() || device.ipod() || device.ipad()
|
||||
}, device.iphone = function () {
|
||||
return d("iphone")
|
||||
}, device.ipod = function () {
|
||||
return d("ipod")
|
||||
}, device.ipad = function () {
|
||||
return d("ipad")
|
||||
}, device.android = function () {
|
||||
return d("android")
|
||||
}, device.androidPhone = function () {
|
||||
return device.android() && d("mobile")
|
||||
}, device.androidTablet = function () {
|
||||
return device.android() && !d("mobile")
|
||||
}, device.blackberry = function () {
|
||||
return d("blackberry") || d("bb10") || d("rim")
|
||||
}, device.blackberryPhone = function () {
|
||||
return device.blackberry() && !d("tablet")
|
||||
}, device.blackberryTablet = function () {
|
||||
return device.blackberry() && d("tablet")
|
||||
}, device.windows = function () {
|
||||
return d("windows")
|
||||
}, device.windowsPhone = function () {
|
||||
return device.windows() && d("phone")
|
||||
}, device.windowsTablet = function () {
|
||||
return device.windows() && d("touch") && !device.windowsPhone()
|
||||
}, device.fxos = function () {
|
||||
return(d("(mobile;") || d("(tablet;")) && d("; rv:")
|
||||
}, device.fxosPhone = function () {
|
||||
return device.fxos() && d("mobile")
|
||||
}, device.fxosTablet = function () {
|
||||
return device.fxos() && d("tablet")
|
||||
}, device.meego = function () {
|
||||
return d("meego")
|
||||
}, device.cordova = function () {
|
||||
return window.cordova && "file:" === location.protocol
|
||||
}, device.nodeWebkit = function () {
|
||||
return"object" == typeof window.process
|
||||
}, device.mobile = function () {
|
||||
return device.androidPhone() || device.iphone() || device.ipod() || device.windowsPhone() || device.blackberryPhone() || device.fxosPhone() || device.meego()
|
||||
}, device.tablet = function () {
|
||||
return device.ipad() || device.androidTablet() || device.blackberryTablet() || device.windowsTablet() || device.fxosTablet()
|
||||
}, device.desktop = function () {
|
||||
return!device.tablet() && !device.mobile()
|
||||
}, device.portrait = function () {
|
||||
return window.innerHeight / window.innerWidth > 1
|
||||
}, device.landscape = function () {
|
||||
return window.innerHeight / window.innerWidth < 1
|
||||
}, device.noConflict = function () {
|
||||
return window.device = a, this
|
||||
}, d = function (a) {
|
||||
return-1 !== j.indexOf(a)
|
||||
}, f = function (a) {
|
||||
var b;
|
||||
return b = new RegExp(a, "i"), c.className.match(b)
|
||||
}, b = function (a) {
|
||||
return f(a) ? void 0 : c.className += " " + a
|
||||
}, h = function (a) {
|
||||
return f(a) ? c.className = c.className.replace(a, "") : void 0
|
||||
}, device.ios() ? device.ipad() ? b("ios ipad tablet") : device.iphone() ? b("ios iphone mobile") : device.ipod() && b("ios ipod mobile") : b(device.android() ? device.androidTablet() ? "android tablet" : "android mobile" : device.blackberry() ? device.blackberryTablet() ? "blackberry tablet" : "blackberry mobile" : device.windows() ? device.windowsTablet() ? "windows tablet" : device.windowsPhone() ? "windows mobile" : "desktop" : device.fxos() ? device.fxosTablet() ? "fxos tablet" : "fxos mobile" : device.meego() ? "meego mobile" : device.nodeWebkit() ? "node-webkit" : "desktop"), device.cordova() && b("cordova"), e = function () {
|
||||
return device.landscape() ? (h("portrait"), b("landscape")) : (h("landscape"), b("portrait"))
|
||||
}, i = "onorientationchange"in window, g = i ? "orientationchange" : "resize", window.addEventListener ? window.addEventListener(g, e, !1) : window.attachEvent ? window.attachEvent(g, e) : window[g] = e, e()
|
||||
}).call(this);
|
||||
@@ -0,0 +1,322 @@
|
||||
/**
|
||||
* @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
|
||||
*/
|
||||
;(function(window, document) {
|
||||
/*jshint evil:true */
|
||||
/** version */
|
||||
var version = '3.7.2';
|
||||
|
||||
/** Preset options */
|
||||
var options = window.html5 || {};
|
||||
|
||||
/** Used to skip problem elements */
|
||||
var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
|
||||
|
||||
/** Not all elements can be cloned in IE **/
|
||||
var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
|
||||
|
||||
/** Detect whether the browser supports default html5 styles */
|
||||
var supportsHtml5Styles;
|
||||
|
||||
/** Name of the expando, to work with multiple documents or to re-shiv one document */
|
||||
var expando = '_html5shiv';
|
||||
|
||||
/** The id for the the documents expando */
|
||||
var expanID = 0;
|
||||
|
||||
/** Cached data for each document */
|
||||
var expandoData = {};
|
||||
|
||||
/** Detect whether the browser supports unknown elements */
|
||||
var supportsUnknownElements;
|
||||
|
||||
(function() {
|
||||
try {
|
||||
var a = document.createElement('a');
|
||||
a.innerHTML = '<xyz></xyz>';
|
||||
//if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
|
||||
supportsHtml5Styles = ('hidden' in a);
|
||||
|
||||
supportsUnknownElements = a.childNodes.length == 1 || (function() {
|
||||
// assign a false positive if unable to shiv
|
||||
(document.createElement)('a');
|
||||
var frag = document.createDocumentFragment();
|
||||
return (
|
||||
typeof frag.cloneNode == 'undefined' ||
|
||||
typeof frag.createDocumentFragment == 'undefined' ||
|
||||
typeof frag.createElement == 'undefined'
|
||||
);
|
||||
}());
|
||||
} catch(e) {
|
||||
// assign a false positive if detection fails => unable to shiv
|
||||
supportsHtml5Styles = true;
|
||||
supportsUnknownElements = true;
|
||||
}
|
||||
|
||||
}());
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Creates a style sheet with the given CSS text and adds it to the document.
|
||||
* @private
|
||||
* @param {Document} ownerDocument The document.
|
||||
* @param {String} cssText The CSS text.
|
||||
* @returns {StyleSheet} The style element.
|
||||
*/
|
||||
function addStyleSheet(ownerDocument, cssText) {
|
||||
var p = ownerDocument.createElement('p'),
|
||||
parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
|
||||
|
||||
p.innerHTML = 'x<style>' + cssText + '</style>';
|
||||
return parent.insertBefore(p.lastChild, parent.firstChild);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of `html5.elements` as an array.
|
||||
* @private
|
||||
* @returns {Array} An array of shived element node names.
|
||||
*/
|
||||
function getElements() {
|
||||
var elements = html5.elements;
|
||||
return typeof elements == 'string' ? elements.split(' ') : elements;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extends the built-in list of html5 elements
|
||||
* @memberOf html5
|
||||
* @param {String|Array} newElements whitespace separated list or array of new element names to shiv
|
||||
* @param {Document} ownerDocument The context document.
|
||||
*/
|
||||
function addElements(newElements, ownerDocument) {
|
||||
var elements = html5.elements;
|
||||
if(typeof elements != 'string'){
|
||||
elements = elements.join(' ');
|
||||
}
|
||||
if(typeof newElements != 'string'){
|
||||
newElements = newElements.join(' ');
|
||||
}
|
||||
html5.elements = elements +' '+ newElements;
|
||||
shivDocument(ownerDocument);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the data associated to the given document
|
||||
* @private
|
||||
* @param {Document} ownerDocument The document.
|
||||
* @returns {Object} An object of data.
|
||||
*/
|
||||
function getExpandoData(ownerDocument) {
|
||||
var data = expandoData[ownerDocument[expando]];
|
||||
if (!data) {
|
||||
data = {};
|
||||
expanID++;
|
||||
ownerDocument[expando] = expanID;
|
||||
expandoData[expanID] = data;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a shived element for the given nodeName and document
|
||||
* @memberOf html5
|
||||
* @param {String} nodeName name of the element
|
||||
* @param {Document} ownerDocument The context document.
|
||||
* @returns {Object} The shived element.
|
||||
*/
|
||||
function createElement(nodeName, ownerDocument, data){
|
||||
if (!ownerDocument) {
|
||||
ownerDocument = document;
|
||||
}
|
||||
if(supportsUnknownElements){
|
||||
return ownerDocument.createElement(nodeName);
|
||||
}
|
||||
if (!data) {
|
||||
data = getExpandoData(ownerDocument);
|
||||
}
|
||||
var node;
|
||||
|
||||
if (data.cache[nodeName]) {
|
||||
node = data.cache[nodeName].cloneNode();
|
||||
} else if (saveClones.test(nodeName)) {
|
||||
node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
|
||||
} else {
|
||||
node = data.createElem(nodeName);
|
||||
}
|
||||
|
||||
// Avoid adding some elements to fragments in IE < 9 because
|
||||
// * Attributes like `name` or `type` cannot be set/changed once an element
|
||||
// is inserted into a document/fragment
|
||||
// * Link elements with `src` attributes that are inaccessible, as with
|
||||
// a 403 response, will cause the tab/window to crash
|
||||
// * Script elements appended to fragments will execute when their `src`
|
||||
// or `text` property is set
|
||||
return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns a shived DocumentFragment for the given document
|
||||
* @memberOf html5
|
||||
* @param {Document} ownerDocument The context document.
|
||||
* @returns {Object} The shived DocumentFragment.
|
||||
*/
|
||||
function createDocumentFragment(ownerDocument, data){
|
||||
if (!ownerDocument) {
|
||||
ownerDocument = document;
|
||||
}
|
||||
if(supportsUnknownElements){
|
||||
return ownerDocument.createDocumentFragment();
|
||||
}
|
||||
data = data || getExpandoData(ownerDocument);
|
||||
var clone = data.frag.cloneNode(),
|
||||
i = 0,
|
||||
elems = getElements(),
|
||||
l = elems.length;
|
||||
for(;i<l;i++){
|
||||
clone.createElement(elems[i]);
|
||||
}
|
||||
return clone;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shivs the `createElement` and `createDocumentFragment` methods of the document.
|
||||
* @private
|
||||
* @param {Document|DocumentFragment} ownerDocument The document.
|
||||
* @param {Object} data of the document.
|
||||
*/
|
||||
function shivMethods(ownerDocument, data) {
|
||||
if (!data.cache) {
|
||||
data.cache = {};
|
||||
data.createElem = ownerDocument.createElement;
|
||||
data.createFrag = ownerDocument.createDocumentFragment;
|
||||
data.frag = data.createFrag();
|
||||
}
|
||||
|
||||
|
||||
ownerDocument.createElement = function(nodeName) {
|
||||
//abort shiv
|
||||
if (!html5.shivMethods) {
|
||||
return data.createElem(nodeName);
|
||||
}
|
||||
return createElement(nodeName, ownerDocument, data);
|
||||
};
|
||||
|
||||
ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
|
||||
'var n=f.cloneNode(),c=n.createElement;' +
|
||||
'h.shivMethods&&(' +
|
||||
// unroll the `createElement` calls
|
||||
getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
|
||||
data.createElem(nodeName);
|
||||
data.frag.createElement(nodeName);
|
||||
return 'c("' + nodeName + '")';
|
||||
}) +
|
||||
');return n}'
|
||||
)(html5, data.frag);
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* Shivs the given document.
|
||||
* @memberOf html5
|
||||
* @param {Document} ownerDocument The document to shiv.
|
||||
* @returns {Document} The shived document.
|
||||
*/
|
||||
function shivDocument(ownerDocument) {
|
||||
if (!ownerDocument) {
|
||||
ownerDocument = document;
|
||||
}
|
||||
var data = getExpandoData(ownerDocument);
|
||||
|
||||
if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
|
||||
data.hasCSS = !!addStyleSheet(ownerDocument,
|
||||
// corrects block display not defined in IE6/7/8/9
|
||||
'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
|
||||
// adds styling not present in IE6/7/8/9
|
||||
'mark{background:#FF0;color:#000}' +
|
||||
// hides non-rendered elements
|
||||
'template{display:none}'
|
||||
);
|
||||
}
|
||||
if (!supportsUnknownElements) {
|
||||
shivMethods(ownerDocument, data);
|
||||
}
|
||||
return ownerDocument;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* The `html5` object is exposed so that more elements can be shived and
|
||||
* existing shiving can be detected on iframes.
|
||||
* @type Object
|
||||
* @example
|
||||
*
|
||||
* // options can be changed before the script is included
|
||||
* html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
|
||||
*/
|
||||
var html5 = {
|
||||
|
||||
/**
|
||||
* An array or space separated string of node names of the elements to shiv.
|
||||
* @memberOf html5
|
||||
* @type Array|String
|
||||
*/
|
||||
'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
|
||||
|
||||
/**
|
||||
* current version of html5shiv
|
||||
*/
|
||||
'version': version,
|
||||
|
||||
/**
|
||||
* A flag to indicate that the HTML5 style sheet should be inserted.
|
||||
* @memberOf html5
|
||||
* @type Boolean
|
||||
*/
|
||||
'shivCSS': (options.shivCSS !== false),
|
||||
|
||||
/**
|
||||
* Is equal to true if a browser supports creating unknown/HTML5 elements
|
||||
* @memberOf html5
|
||||
* @type boolean
|
||||
*/
|
||||
'supportsUnknownElements': supportsUnknownElements,
|
||||
|
||||
/**
|
||||
* A flag to indicate that the document's `createElement` and `createDocumentFragment`
|
||||
* methods should be overwritten.
|
||||
* @memberOf html5
|
||||
* @type Boolean
|
||||
*/
|
||||
'shivMethods': (options.shivMethods !== false),
|
||||
|
||||
/**
|
||||
* A string to describe the type of `html5` object ("default" or "default print").
|
||||
* @memberOf html5
|
||||
* @type String
|
||||
*/
|
||||
'type': 'default',
|
||||
|
||||
// shivs the document according to the specified `html5` object options
|
||||
'shivDocument': shivDocument,
|
||||
|
||||
//creates a shived element
|
||||
createElement: createElement,
|
||||
|
||||
//creates a shived documentFragment
|
||||
createDocumentFragment: createDocumentFragment,
|
||||
|
||||
//extends list of elements
|
||||
addElements: addElements
|
||||
};
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
// expose html5
|
||||
window.html5 = html5;
|
||||
|
||||
// shiv the document
|
||||
shivDocument(document);
|
||||
|
||||
}(this, document));
|
||||
@@ -0,0 +1,521 @@
|
||||
/*!
|
||||
* jQuery Migrate - v1.2.1 - 2013-05-08
|
||||
* https://github.com/jquery/jquery-migrate
|
||||
* Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
|
||||
*/
|
||||
(function( jQuery, window, undefined ) {
|
||||
// See http://bugs.jquery.com/ticket/13335
|
||||
// "use strict";
|
||||
|
||||
|
||||
var warnedAbout = {};
|
||||
|
||||
// List of warnings already given; public read only
|
||||
jQuery.migrateWarnings = [];
|
||||
|
||||
// Set to true to prevent console output; migrateWarnings still maintained
|
||||
// jQuery.migrateMute = false;
|
||||
|
||||
// Show a message on the console so devs know we're active
|
||||
if ( !jQuery.migrateMute && window.console && window.console.log ) {
|
||||
window.console.log("JQMIGRATE: Logging is active");
|
||||
}
|
||||
|
||||
// Set to false to disable traces that appear with warnings
|
||||
if ( jQuery.migrateTrace === undefined ) {
|
||||
jQuery.migrateTrace = true;
|
||||
}
|
||||
|
||||
// Forget any warnings we've already given; public
|
||||
jQuery.migrateReset = function() {
|
||||
warnedAbout = {};
|
||||
jQuery.migrateWarnings.length = 0;
|
||||
};
|
||||
|
||||
function migrateWarn( msg) {
|
||||
var console = window.console;
|
||||
if ( !warnedAbout[ msg ] ) {
|
||||
warnedAbout[ msg ] = true;
|
||||
jQuery.migrateWarnings.push( msg );
|
||||
if ( console && console.warn && !jQuery.migrateMute ) {
|
||||
console.warn( "JQMIGRATE: " + msg );
|
||||
if ( jQuery.migrateTrace && console.trace ) {
|
||||
console.trace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function migrateWarnProp( obj, prop, value, msg ) {
|
||||
if ( Object.defineProperty ) {
|
||||
// On ES5 browsers (non-oldIE), warn if the code tries to get prop;
|
||||
// allow property to be overwritten in case some other plugin wants it
|
||||
try {
|
||||
Object.defineProperty( obj, prop, {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
get: function() {
|
||||
migrateWarn( msg );
|
||||
return value;
|
||||
},
|
||||
set: function( newValue ) {
|
||||
migrateWarn( msg );
|
||||
value = newValue;
|
||||
}
|
||||
});
|
||||
return;
|
||||
} catch( err ) {
|
||||
// IE8 is a dope about Object.defineProperty, can't warn there
|
||||
}
|
||||
}
|
||||
|
||||
// Non-ES5 (or broken) browser; just set the property
|
||||
jQuery._definePropertyBroken = true;
|
||||
obj[ prop ] = value;
|
||||
}
|
||||
|
||||
if ( document.compatMode === "BackCompat" ) {
|
||||
// jQuery has never supported or tested Quirks Mode
|
||||
migrateWarn( "jQuery is not compatible with Quirks Mode" );
|
||||
}
|
||||
|
||||
|
||||
var attrFn = jQuery( "<input/>", { size: 1 } ).attr("size") && jQuery.attrFn,
|
||||
oldAttr = jQuery.attr,
|
||||
valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
|
||||
function() { return null; },
|
||||
valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||
|
||||
function() { return undefined; },
|
||||
rnoType = /^(?:input|button)$/i,
|
||||
rnoAttrNodeType = /^[238]$/,
|
||||
rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
|
||||
ruseDefault = /^(?:checked|selected)$/i;
|
||||
|
||||
// jQuery.attrFn
|
||||
migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );
|
||||
|
||||
jQuery.attr = function( elem, name, value, pass ) {
|
||||
var lowerName = name.toLowerCase(),
|
||||
nType = elem && elem.nodeType;
|
||||
|
||||
if ( pass ) {
|
||||
// Since pass is used internally, we only warn for new jQuery
|
||||
// versions where there isn't a pass arg in the formal params
|
||||
if ( oldAttr.length < 4 ) {
|
||||
migrateWarn("jQuery.fn.attr( props, pass ) is deprecated");
|
||||
}
|
||||
if ( elem && !rnoAttrNodeType.test( nType ) &&
|
||||
(attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
|
||||
return jQuery( elem )[ name ]( value );
|
||||
}
|
||||
}
|
||||
|
||||
// Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
|
||||
// for disconnected elements we don't warn on $( "<button>", { type: "button" } ).
|
||||
if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) {
|
||||
migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8");
|
||||
}
|
||||
|
||||
// Restore boolHook for boolean property/attribute synchronization
|
||||
if ( !jQuery.attrHooks[ lowerName ] && rboolean.test( lowerName ) ) {
|
||||
jQuery.attrHooks[ lowerName ] = {
|
||||
get: function( elem, name ) {
|
||||
// Align boolean attributes with corresponding properties
|
||||
// Fall back to attribute presence where some booleans are not supported
|
||||
var attrNode,
|
||||
property = jQuery.prop( elem, name );
|
||||
return property === true || typeof property !== "boolean" &&
|
||||
( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
|
||||
|
||||
name.toLowerCase() :
|
||||
undefined;
|
||||
},
|
||||
set: function( elem, value, name ) {
|
||||
var propName;
|
||||
if ( value === false ) {
|
||||
// Remove boolean attributes when set to false
|
||||
jQuery.removeAttr( elem, name );
|
||||
} else {
|
||||
// value is true since we know at this point it's type boolean and not false
|
||||
// Set boolean attributes to the same name and set the DOM property
|
||||
propName = jQuery.propFix[ name ] || name;
|
||||
if ( propName in elem ) {
|
||||
// Only set the IDL specifically if it already exists on the element
|
||||
elem[ propName ] = true;
|
||||
}
|
||||
|
||||
elem.setAttribute( name, name.toLowerCase() );
|
||||
}
|
||||
return name;
|
||||
}
|
||||
};
|
||||
|
||||
// Warn only for attributes that can remain distinct from their properties post-1.9
|
||||
if ( ruseDefault.test( lowerName ) ) {
|
||||
migrateWarn( "jQuery.fn.attr('" + lowerName + "') may use property instead of attribute" );
|
||||
}
|
||||
}
|
||||
|
||||
return oldAttr.call( jQuery, elem, name, value );
|
||||
};
|
||||
|
||||
// attrHooks: value
|
||||
jQuery.attrHooks.value = {
|
||||
get: function( elem, name ) {
|
||||
var nodeName = ( elem.nodeName || "" ).toLowerCase();
|
||||
if ( nodeName === "button" ) {
|
||||
return valueAttrGet.apply( this, arguments );
|
||||
}
|
||||
if ( nodeName !== "input" && nodeName !== "option" ) {
|
||||
migrateWarn("jQuery.fn.attr('value') no longer gets properties");
|
||||
}
|
||||
return name in elem ?
|
||||
elem.value :
|
||||
null;
|
||||
},
|
||||
set: function( elem, value ) {
|
||||
var nodeName = ( elem.nodeName || "" ).toLowerCase();
|
||||
if ( nodeName === "button" ) {
|
||||
return valueAttrSet.apply( this, arguments );
|
||||
}
|
||||
if ( nodeName !== "input" && nodeName !== "option" ) {
|
||||
migrateWarn("jQuery.fn.attr('value', val) no longer sets properties");
|
||||
}
|
||||
// Does not return so that setAttribute is also used
|
||||
elem.value = value;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var matched, browser,
|
||||
oldInit = jQuery.fn.init,
|
||||
oldParseJSON = jQuery.parseJSON,
|
||||
// Note: XSS check is done below after string is trimmed
|
||||
rquickExpr = /^([^<]*)(<[\w\W]+>)([^>]*)$/;
|
||||
|
||||
// $(html) "looks like html" rule change
|
||||
jQuery.fn.init = function( selector, context, rootjQuery ) {
|
||||
var match;
|
||||
|
||||
if ( selector && typeof selector === "string" && !jQuery.isPlainObject( context ) &&
|
||||
(match = rquickExpr.exec( jQuery.trim( selector ) )) && match[ 0 ] ) {
|
||||
// This is an HTML string according to the "old" rules; is it still?
|
||||
if ( selector.charAt( 0 ) !== "<" ) {
|
||||
migrateWarn("$(html) HTML strings must start with '<' character");
|
||||
}
|
||||
if ( match[ 3 ] ) {
|
||||
migrateWarn("$(html) HTML text after last tag is ignored");
|
||||
}
|
||||
// Consistently reject any HTML-like string starting with a hash (#9521)
|
||||
// Note that this may break jQuery 1.6.x code that otherwise would work.
|
||||
if ( match[ 0 ].charAt( 0 ) === "#" ) {
|
||||
migrateWarn("HTML string cannot start with a '#' character");
|
||||
jQuery.error("JQMIGRATE: Invalid selector string (XSS)");
|
||||
}
|
||||
// Now process using loose rules; let pre-1.8 play too
|
||||
if ( context && context.context ) {
|
||||
// jQuery object as context; parseHTML expects a DOM object
|
||||
context = context.context;
|
||||
}
|
||||
if ( jQuery.parseHTML ) {
|
||||
return oldInit.call( this, jQuery.parseHTML( match[ 2 ], context, true ),
|
||||
context, rootjQuery );
|
||||
}
|
||||
}
|
||||
return oldInit.apply( this, arguments );
|
||||
};
|
||||
jQuery.fn.init.prototype = jQuery.fn;
|
||||
|
||||
// Let $.parseJSON(falsy_value) return null
|
||||
jQuery.parseJSON = function( json ) {
|
||||
if ( !json && json !== null ) {
|
||||
migrateWarn("jQuery.parseJSON requires a valid JSON string");
|
||||
return null;
|
||||
}
|
||||
return oldParseJSON.apply( this, arguments );
|
||||
};
|
||||
|
||||
jQuery.uaMatch = function( ua ) {
|
||||
ua = ua.toLowerCase();
|
||||
|
||||
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
|
||||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
|
||||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
|
||||
/(msie) ([\w.]+)/.exec( ua ) ||
|
||||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
|
||||
[];
|
||||
|
||||
return {
|
||||
browser: match[ 1 ] || "",
|
||||
version: match[ 2 ] || "0"
|
||||
};
|
||||
};
|
||||
|
||||
// Don't clobber any existing jQuery.browser in case it's different
|
||||
if ( !jQuery.browser ) {
|
||||
matched = jQuery.uaMatch( navigator.userAgent );
|
||||
browser = {};
|
||||
|
||||
if ( matched.browser ) {
|
||||
browser[ matched.browser ] = true;
|
||||
browser.version = matched.version;
|
||||
}
|
||||
|
||||
// Chrome is Webkit, but Webkit is also Safari.
|
||||
if ( browser.chrome ) {
|
||||
browser.webkit = true;
|
||||
} else if ( browser.webkit ) {
|
||||
browser.safari = true;
|
||||
}
|
||||
|
||||
jQuery.browser = browser;
|
||||
}
|
||||
|
||||
// Warn if the code tries to get jQuery.browser
|
||||
migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" );
|
||||
|
||||
jQuery.sub = function() {
|
||||
function jQuerySub( selector, context ) {
|
||||
return new jQuerySub.fn.init( selector, context );
|
||||
}
|
||||
jQuery.extend( true, jQuerySub, this );
|
||||
jQuerySub.superclass = this;
|
||||
jQuerySub.fn = jQuerySub.prototype = this();
|
||||
jQuerySub.fn.constructor = jQuerySub;
|
||||
jQuerySub.sub = this.sub;
|
||||
jQuerySub.fn.init = function init( selector, context ) {
|
||||
if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
|
||||
context = jQuerySub( context );
|
||||
}
|
||||
|
||||
return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
|
||||
};
|
||||
jQuerySub.fn.init.prototype = jQuerySub.fn;
|
||||
var rootjQuerySub = jQuerySub(document);
|
||||
migrateWarn( "jQuery.sub() is deprecated" );
|
||||
return jQuerySub;
|
||||
};
|
||||
|
||||
|
||||
// Ensure that $.ajax gets the new parseJSON defined in core.js
|
||||
jQuery.ajaxSetup({
|
||||
converters: {
|
||||
"text json": jQuery.parseJSON
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
var oldFnData = jQuery.fn.data;
|
||||
|
||||
jQuery.fn.data = function( name ) {
|
||||
var ret, evt,
|
||||
elem = this[0];
|
||||
|
||||
// Handles 1.7 which has this behavior and 1.8 which doesn't
|
||||
if ( elem && name === "events" && arguments.length === 1 ) {
|
||||
ret = jQuery.data( elem, name );
|
||||
evt = jQuery._data( elem, name );
|
||||
if ( ( ret === undefined || ret === evt ) && evt !== undefined ) {
|
||||
migrateWarn("Use of jQuery.fn.data('events') is deprecated");
|
||||
return evt;
|
||||
}
|
||||
}
|
||||
return oldFnData.apply( this, arguments );
|
||||
};
|
||||
|
||||
|
||||
var rscriptType = /\/(java|ecma)script/i,
|
||||
oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
|
||||
|
||||
jQuery.fn.andSelf = function() {
|
||||
migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");
|
||||
return oldSelf.apply( this, arguments );
|
||||
};
|
||||
|
||||
// Since jQuery.clean is used internally on older versions, we only shim if it's missing
|
||||
if ( !jQuery.clean ) {
|
||||
jQuery.clean = function( elems, context, fragment, scripts ) {
|
||||
// Set context per 1.8 logic
|
||||
context = context || document;
|
||||
context = !context.nodeType && context[0] || context;
|
||||
context = context.ownerDocument || context;
|
||||
|
||||
migrateWarn("jQuery.clean() is deprecated");
|
||||
|
||||
var i, elem, handleScript, jsTags,
|
||||
ret = [];
|
||||
|
||||
jQuery.merge( ret, jQuery.buildFragment( elems, context ).childNodes );
|
||||
|
||||
// Complex logic lifted directly from jQuery 1.8
|
||||
if ( fragment ) {
|
||||
// Special handling of each script element
|
||||
handleScript = function( elem ) {
|
||||
// Check if we consider it executable
|
||||
if ( !elem.type || rscriptType.test( elem.type ) ) {
|
||||
// Detach the script and store it in the scripts array (if provided) or the fragment
|
||||
// Return truthy to indicate that it has been handled
|
||||
return scripts ?
|
||||
scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
|
||||
fragment.appendChild( elem );
|
||||
}
|
||||
};
|
||||
|
||||
for ( i = 0; (elem = ret[i]) != null; i++ ) {
|
||||
// Check if we're done after handling an executable script
|
||||
if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
|
||||
// Append to fragment and handle embedded scripts
|
||||
fragment.appendChild( elem );
|
||||
if ( typeof elem.getElementsByTagName !== "undefined" ) {
|
||||
// handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
|
||||
jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );
|
||||
|
||||
// Splice the scripts into ret after their former ancestor and advance our index beyond them
|
||||
ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
|
||||
i += jsTags.length;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
var eventAdd = jQuery.event.add,
|
||||
eventRemove = jQuery.event.remove,
|
||||
eventTrigger = jQuery.event.trigger,
|
||||
oldToggle = jQuery.fn.toggle,
|
||||
oldLive = jQuery.fn.live,
|
||||
oldDie = jQuery.fn.die,
|
||||
ajaxEvents = "ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",
|
||||
rajaxEvent = new RegExp( "\\b(?:" + ajaxEvents + ")\\b" ),
|
||||
rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
|
||||
hoverHack = function( events ) {
|
||||
if ( typeof( events ) !== "string" || jQuery.event.special.hover ) {
|
||||
return events;
|
||||
}
|
||||
if ( rhoverHack.test( events ) ) {
|
||||
migrateWarn("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'");
|
||||
}
|
||||
return events && events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
|
||||
};
|
||||
|
||||
// Event props removed in 1.9, put them back if needed; no practical way to warn them
|
||||
if ( jQuery.event.props && jQuery.event.props[ 0 ] !== "attrChange" ) {
|
||||
jQuery.event.props.unshift( "attrChange", "attrName", "relatedNode", "srcElement" );
|
||||
}
|
||||
|
||||
// Undocumented jQuery.event.handle was "deprecated" in jQuery 1.7
|
||||
if ( jQuery.event.dispatch ) {
|
||||
migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated" );
|
||||
}
|
||||
|
||||
// Support for 'hover' pseudo-event and ajax event warnings
|
||||
jQuery.event.add = function( elem, types, handler, data, selector ){
|
||||
if ( elem !== document && rajaxEvent.test( types ) ) {
|
||||
migrateWarn( "AJAX events should be attached to document: " + types );
|
||||
}
|
||||
eventAdd.call( this, elem, hoverHack( types || "" ), handler, data, selector );
|
||||
};
|
||||
jQuery.event.remove = function( elem, types, handler, selector, mappedTypes ){
|
||||
eventRemove.call( this, elem, hoverHack( types ) || "", handler, selector, mappedTypes );
|
||||
};
|
||||
|
||||
jQuery.fn.error = function() {
|
||||
var args = Array.prototype.slice.call( arguments, 0);
|
||||
migrateWarn("jQuery.fn.error() is deprecated");
|
||||
args.splice( 0, 0, "error" );
|
||||
if ( arguments.length ) {
|
||||
return this.bind.apply( this, args );
|
||||
}
|
||||
// error event should not bubble to window, although it does pre-1.7
|
||||
this.triggerHandler.apply( this, args );
|
||||
return this;
|
||||
};
|
||||
|
||||
jQuery.fn.toggle = function( fn, fn2 ) {
|
||||
|
||||
// Don't mess with animation or css toggles
|
||||
if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
|
||||
return oldToggle.apply( this, arguments );
|
||||
}
|
||||
migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");
|
||||
|
||||
// Save reference to arguments for access in closure
|
||||
var args = arguments,
|
||||
guid = fn.guid || jQuery.guid++,
|
||||
i = 0,
|
||||
toggler = function( event ) {
|
||||
// Figure out which function to execute
|
||||
var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
|
||||
jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
|
||||
|
||||
// Make sure that clicks stop
|
||||
event.preventDefault();
|
||||
|
||||
// and execute the function
|
||||
return args[ lastToggle ].apply( this, arguments ) || false;
|
||||
};
|
||||
|
||||
// link all the functions, so any of them can unbind this click handler
|
||||
toggler.guid = guid;
|
||||
while ( i < args.length ) {
|
||||
args[ i++ ].guid = guid;
|
||||
}
|
||||
|
||||
return this.click( toggler );
|
||||
};
|
||||
|
||||
jQuery.fn.live = function( types, data, fn ) {
|
||||
migrateWarn("jQuery.fn.live() is deprecated");
|
||||
if ( oldLive ) {
|
||||
return oldLive.apply( this, arguments );
|
||||
}
|
||||
jQuery( this.context ).on( types, this.selector, data, fn );
|
||||
return this;
|
||||
};
|
||||
|
||||
jQuery.fn.die = function( types, fn ) {
|
||||
migrateWarn("jQuery.fn.die() is deprecated");
|
||||
if ( oldDie ) {
|
||||
return oldDie.apply( this, arguments );
|
||||
}
|
||||
jQuery( this.context ).off( types, this.selector || "**", fn );
|
||||
return this;
|
||||
};
|
||||
|
||||
// Turn global events into document-triggered events
|
||||
jQuery.event.trigger = function( event, data, elem, onlyHandlers ){
|
||||
if ( !elem && !rajaxEvent.test( event ) ) {
|
||||
migrateWarn( "Global events are undocumented and deprecated" );
|
||||
}
|
||||
return eventTrigger.call( this, event, data, elem || document, onlyHandlers );
|
||||
};
|
||||
jQuery.each( ajaxEvents.split("|"),
|
||||
function( _, name ) {
|
||||
jQuery.event.special[ name ] = {
|
||||
setup: function() {
|
||||
var elem = this;
|
||||
|
||||
// The document needs no shimming; must be !== for oldIE
|
||||
if ( elem !== document ) {
|
||||
jQuery.event.add( document, name + "." + jQuery.guid, function() {
|
||||
jQuery.event.trigger( name, null, elem, true );
|
||||
});
|
||||
jQuery._data( this, name, jQuery.guid++ );
|
||||
}
|
||||
return false;
|
||||
},
|
||||
teardown: function() {
|
||||
if ( this !== document ) {
|
||||
jQuery.event.remove( document, name + "." + jQuery._data( this, name ) );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
})( jQuery, window );
|
||||
@@ -0,0 +1,113 @@
|
||||
/*!
|
||||
* jQuery Cookie Plugin v1.4.1
|
||||
* https://github.com/carhartl/jquery-cookie
|
||||
*
|
||||
* Copyright 2006, 2014 Klaus Hartl
|
||||
* Released under the MIT license
|
||||
*/
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD (Register as an anonymous module)
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof exports === 'object') {
|
||||
// Node/CommonJS
|
||||
module.exports = factory(require('jquery'));
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
|
||||
var pluses = /\+/g;
|
||||
|
||||
function encode(s) {
|
||||
return config.raw ? s : encodeURIComponent(s);
|
||||
}
|
||||
|
||||
function decode(s) {
|
||||
return config.raw ? s : decodeURIComponent(s);
|
||||
}
|
||||
|
||||
function stringifyCookieValue(value) {
|
||||
return encode(config.json ? JSON.stringify(value) : String(value));
|
||||
}
|
||||
|
||||
function parseCookieValue(s) {
|
||||
if (s.indexOf('"') === 0) {
|
||||
// This is a quoted cookie as according to RFC2068, unescape...
|
||||
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
||||
}
|
||||
|
||||
try {
|
||||
// Replace server-side written pluses with spaces.
|
||||
// If we can't decode the cookie, ignore it, it's unusable.
|
||||
// If we can't parse the cookie, ignore it, it's unusable.
|
||||
s = decodeURIComponent(s.replace(pluses, ' '));
|
||||
return config.json ? JSON.parse(s) : s;
|
||||
} catch(e) {}
|
||||
}
|
||||
|
||||
function read(s, converter) {
|
||||
var value = config.raw ? s : parseCookieValue(s);
|
||||
return $.isFunction(converter) ? converter(value) : value;
|
||||
}
|
||||
|
||||
var config = $.cookie = function (key, value, options) {
|
||||
|
||||
// Write
|
||||
|
||||
if (arguments.length > 1 && !$.isFunction(value)) {
|
||||
options = $.extend({}, config.defaults, options);
|
||||
|
||||
if (typeof options.expires === 'number') {
|
||||
var days = options.expires, t = options.expires = new Date();
|
||||
t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
|
||||
}
|
||||
|
||||
return (document.cookie = [
|
||||
encode(key), '=', stringifyCookieValue(value),
|
||||
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
||||
options.path ? '; path=' + options.path : '',
|
||||
options.domain ? '; domain=' + options.domain : '',
|
||||
options.secure ? '; secure' : ''
|
||||
].join(''));
|
||||
}
|
||||
|
||||
// Read
|
||||
|
||||
var result = key ? undefined : {},
|
||||
// To prevent the for loop in the first place assign an empty array
|
||||
// in case there are no cookies at all. Also prevents odd result when
|
||||
// calling $.cookie().
|
||||
cookies = document.cookie ? document.cookie.split('; ') : [],
|
||||
i = 0,
|
||||
l = cookies.length;
|
||||
|
||||
for (; i < l; i++) {
|
||||
var parts = cookies[i].split('='),
|
||||
name = decode(parts.shift()),
|
||||
cookie = parts.join('=');
|
||||
|
||||
if (key === name) {
|
||||
// If second argument (value) is a function it's a converter...
|
||||
result = read(cookie, value);
|
||||
break;
|
||||
}
|
||||
|
||||
// Prevent storing a cookie that we couldn't decode.
|
||||
if (!key && (cookie = read(cookie)) !== undefined) {
|
||||
result[name] = cookie;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
config.defaults = {};
|
||||
|
||||
$.removeCookie = function (key, options) {
|
||||
// Must not alter options, thus extending a fresh object...
|
||||
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
|
||||
return !$.cookie(key);
|
||||
};
|
||||
}));
|
||||
@@ -0,0 +1,205 @@
|
||||
/*
|
||||
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
|
||||
*
|
||||
* Uses the built in easing capabilities added In jQuery 1.1
|
||||
* to offer multiple easing options
|
||||
*
|
||||
* TERMS OF USE - jQuery Easing
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2008 George McGinley Smith
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the author nor the names of contributors may be used to endorse
|
||||
* or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
|
||||
// t: current time, b: begInnIng value, c: change In value, d: duration
|
||||
jQuery.easing['jswing'] = jQuery.easing['swing'];
|
||||
|
||||
jQuery.extend( jQuery.easing,
|
||||
{
|
||||
def: 'easeOutQuad',
|
||||
swing: function (x, t, b, c, d) {
|
||||
//alert(jQuery.easing.default);
|
||||
return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
|
||||
},
|
||||
easeInQuad: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t + b;
|
||||
},
|
||||
easeOutQuad: function (x, t, b, c, d) {
|
||||
return -c *(t/=d)*(t-2) + b;
|
||||
},
|
||||
easeInOutQuad: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t + b;
|
||||
return -c/2 * ((--t)*(t-2) - 1) + b;
|
||||
},
|
||||
easeInCubic: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t + b;
|
||||
},
|
||||
easeOutCubic: function (x, t, b, c, d) {
|
||||
return c*((t=t/d-1)*t*t + 1) + b;
|
||||
},
|
||||
easeInOutCubic: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t + b;
|
||||
return c/2*((t-=2)*t*t + 2) + b;
|
||||
},
|
||||
easeInQuart: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t*t + b;
|
||||
},
|
||||
easeOutQuart: function (x, t, b, c, d) {
|
||||
return -c * ((t=t/d-1)*t*t*t - 1) + b;
|
||||
},
|
||||
easeInOutQuart: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
|
||||
return -c/2 * ((t-=2)*t*t*t - 2) + b;
|
||||
},
|
||||
easeInQuint: function (x, t, b, c, d) {
|
||||
return c*(t/=d)*t*t*t*t + b;
|
||||
},
|
||||
easeOutQuint: function (x, t, b, c, d) {
|
||||
return c*((t=t/d-1)*t*t*t*t + 1) + b;
|
||||
},
|
||||
easeInOutQuint: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
|
||||
return c/2*((t-=2)*t*t*t*t + 2) + b;
|
||||
},
|
||||
easeInSine: function (x, t, b, c, d) {
|
||||
return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
|
||||
},
|
||||
easeOutSine: function (x, t, b, c, d) {
|
||||
return c * Math.sin(t/d * (Math.PI/2)) + b;
|
||||
},
|
||||
easeInOutSine: function (x, t, b, c, d) {
|
||||
return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
|
||||
},
|
||||
easeInExpo: function (x, t, b, c, d) {
|
||||
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
|
||||
},
|
||||
easeOutExpo: function (x, t, b, c, d) {
|
||||
return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
|
||||
},
|
||||
easeInOutExpo: function (x, t, b, c, d) {
|
||||
if (t==0) return b;
|
||||
if (t==d) return b+c;
|
||||
if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
|
||||
return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
|
||||
},
|
||||
easeInCirc: function (x, t, b, c, d) {
|
||||
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
|
||||
},
|
||||
easeOutCirc: function (x, t, b, c, d) {
|
||||
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
|
||||
},
|
||||
easeInOutCirc: function (x, t, b, c, d) {
|
||||
if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
|
||||
return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
|
||||
},
|
||||
easeInElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
||||
},
|
||||
easeOutElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
|
||||
},
|
||||
easeInOutElastic: function (x, t, b, c, d) {
|
||||
var s=1.70158;var p=0;var a=c;
|
||||
if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
|
||||
if (a < Math.abs(c)) { a=c; var s=p/4; }
|
||||
else var s = p/(2*Math.PI) * Math.asin (c/a);
|
||||
if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
|
||||
return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
|
||||
},
|
||||
easeInBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
return c*(t/=d)*t*((s+1)*t - s) + b;
|
||||
},
|
||||
easeOutBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
|
||||
},
|
||||
easeInOutBack: function (x, t, b, c, d, s) {
|
||||
if (s == undefined) s = 1.70158;
|
||||
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
|
||||
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
|
||||
},
|
||||
easeInBounce: function (x, t, b, c, d) {
|
||||
return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
|
||||
},
|
||||
easeOutBounce: function (x, t, b, c, d) {
|
||||
if ((t/=d) < (1/2.75)) {
|
||||
return c*(7.5625*t*t) + b;
|
||||
} else if (t < (2/2.75)) {
|
||||
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
|
||||
} else if (t < (2.5/2.75)) {
|
||||
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
|
||||
} else {
|
||||
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
|
||||
}
|
||||
},
|
||||
easeInOutBounce: function (x, t, b, c, d) {
|
||||
if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
|
||||
return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
*
|
||||
* TERMS OF USE - EASING EQUATIONS
|
||||
*
|
||||
* Open source under the BSD License.
|
||||
*
|
||||
* Copyright © 2001 Robert Penner
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of
|
||||
* conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
* of conditions and the following disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* Neither the name of the author nor the names of contributors may be used to endorse
|
||||
* or promote products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
@@ -0,0 +1,46 @@
|
||||
/*parsed HTML*/
|
||||
$(function () {
|
||||
$("[data-equal-group]").each(function () {
|
||||
$(this).contents().wrapAll("<div class='box_inner'></div>");
|
||||
})
|
||||
})
|
||||
/*add event*/
|
||||
$(window).bind("resize", height_handler).bind("load", height_handler)
|
||||
function height_handler() {
|
||||
|
||||
var groups = [];
|
||||
$("[data-equal-group]").each(function () {
|
||||
var g = $(this).data('equal-group');
|
||||
if (!groups[g]) {
|
||||
groups[g] = [];
|
||||
}
|
||||
groups[g].push(this);
|
||||
});
|
||||
|
||||
var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
||||
|
||||
if(width > 767){
|
||||
$.each(groups, function () {
|
||||
$(this).equalHeights();
|
||||
})
|
||||
}else{
|
||||
$.each(groups, function () {
|
||||
$(this).css('height', 'auto');
|
||||
})
|
||||
}
|
||||
}
|
||||
/*glob function*/
|
||||
(function ($) {
|
||||
$.fn.equalHeights = function (minHeight, maxHeight) {
|
||||
tallest = (minHeight) ? minHeight : 0;
|
||||
this.each(function () {
|
||||
if ($(">.box_inner", this).outerHeight() > tallest) {
|
||||
tallest = $(">.box_inner", this).outerHeight()
|
||||
}
|
||||
});
|
||||
if ((maxHeight) && tallest > maxHeight) tallest = maxHeight;
|
||||
return this.each(function () {
|
||||
$(this).height(tallest)
|
||||
})
|
||||
}
|
||||
})(jQuery)
|
||||
@@ -0,0 +1,122 @@
|
||||
/*!
|
||||
* Buttons helper for fancyBox
|
||||
* version: 1.0.5 (Mon, 15 Oct 2012)
|
||||
* @requires fancyBox v2.0 or later
|
||||
*
|
||||
* Usage:
|
||||
* $(".fancybox").fancybox({
|
||||
* helpers : {
|
||||
* buttons: {
|
||||
* position : 'top'
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
*
|
||||
*/
|
||||
(function ($) {
|
||||
//Shortcut for fancyBox object
|
||||
var F = $.fancybox;
|
||||
|
||||
//Add helper object
|
||||
F.helpers.buttons = {
|
||||
defaults : {
|
||||
skipSingle : false, // disables if gallery contains single image
|
||||
position : 'top', // 'top' or 'bottom'
|
||||
tpl : '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>'
|
||||
},
|
||||
|
||||
list : null,
|
||||
buttons: null,
|
||||
|
||||
beforeLoad: function (opts, obj) {
|
||||
//Remove self if gallery do not have at least two items
|
||||
|
||||
if (opts.skipSingle && obj.group.length < 2) {
|
||||
obj.helpers.buttons = false;
|
||||
obj.closeBtn = true;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//Increase top margin to give space for buttons
|
||||
obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
|
||||
},
|
||||
|
||||
onPlayStart: function () {
|
||||
if (this.buttons) {
|
||||
this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
|
||||
}
|
||||
},
|
||||
|
||||
onPlayEnd: function () {
|
||||
if (this.buttons) {
|
||||
this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
|
||||
}
|
||||
},
|
||||
|
||||
afterShow: function (opts, obj) {
|
||||
var buttons = this.buttons;
|
||||
|
||||
if (!buttons) {
|
||||
this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
|
||||
|
||||
buttons = {
|
||||
prev : this.list.find('.btnPrev').click( F.prev ),
|
||||
next : this.list.find('.btnNext').click( F.next ),
|
||||
play : this.list.find('.btnPlay').click( F.play ),
|
||||
toggle : this.list.find('.btnToggle').click( F.toggle ),
|
||||
close : this.list.find('.btnClose').click( F.close )
|
||||
}
|
||||
}
|
||||
|
||||
//Prev
|
||||
if (obj.index > 0 || obj.loop) {
|
||||
buttons.prev.removeClass('btnDisabled');
|
||||
} else {
|
||||
buttons.prev.addClass('btnDisabled');
|
||||
}
|
||||
|
||||
//Next / Play
|
||||
if (obj.loop || obj.index < obj.group.length - 1) {
|
||||
buttons.next.removeClass('btnDisabled');
|
||||
buttons.play.removeClass('btnDisabled');
|
||||
|
||||
} else {
|
||||
buttons.next.addClass('btnDisabled');
|
||||
buttons.play.addClass('btnDisabled');
|
||||
}
|
||||
|
||||
this.buttons = buttons;
|
||||
|
||||
this.onUpdate(opts, obj);
|
||||
},
|
||||
|
||||
onUpdate: function (opts, obj) {
|
||||
var toggle;
|
||||
|
||||
if (!this.buttons) {
|
||||
return;
|
||||
}
|
||||
|
||||
toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
|
||||
|
||||
//Size toggle button
|
||||
if (obj.canShrink) {
|
||||
toggle.addClass('btnToggleOn');
|
||||
|
||||
} else if (!obj.canExpand) {
|
||||
toggle.addClass('btnDisabled');
|
||||
}
|
||||
},
|
||||
|
||||
beforeClose: function () {
|
||||
if (this.list) {
|
||||
this.list.remove();
|
||||
}
|
||||
|
||||
this.list = null;
|
||||
this.buttons = null;
|
||||
}
|
||||
};
|
||||
|
||||
}(jQuery));
|
||||
@@ -0,0 +1,199 @@
|
||||
/*!
|
||||
* Media helper for fancyBox
|
||||
* version: 1.0.6 (Fri, 14 Jun 2013)
|
||||
* @requires fancyBox v2.0 or later
|
||||
*
|
||||
* Usage:
|
||||
* $(".fancybox").fancybox({
|
||||
* helpers : {
|
||||
* media: true
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* Set custom URL parameters:
|
||||
* $(".fancybox").fancybox({
|
||||
* helpers : {
|
||||
* media: {
|
||||
* youtube : {
|
||||
* params : {
|
||||
* autoplay : 0
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* Or:
|
||||
* $(".fancybox").fancybox({,
|
||||
* helpers : {
|
||||
* media: true
|
||||
* },
|
||||
* youtube : {
|
||||
* autoplay: 0
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* Supports:
|
||||
*
|
||||
* Youtube
|
||||
* http://www.youtube.com/watch?v=opj24KnzrWo
|
||||
* http://www.youtube.com/embed/opj24KnzrWo
|
||||
* http://youtu.be/opj24KnzrWo
|
||||
* http://www.youtube-nocookie.com/embed/opj24KnzrWo
|
||||
* Vimeo
|
||||
* http://vimeo.com/40648169
|
||||
* http://vimeo.com/channels/staffpicks/38843628
|
||||
* http://vimeo.com/groups/surrealism/videos/36516384
|
||||
* http://player.vimeo.com/video/45074303
|
||||
* Metacafe
|
||||
* http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
|
||||
* http://www.metacafe.com/watch/7635964/
|
||||
* Dailymotion
|
||||
* http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
|
||||
* Twitvid
|
||||
* http://twitvid.com/QY7MD
|
||||
* Twitpic
|
||||
* http://twitpic.com/7p93st
|
||||
* Instagram
|
||||
* http://instagr.am/p/IejkuUGxQn/
|
||||
* http://instagram.com/p/IejkuUGxQn/
|
||||
* Google maps
|
||||
* http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
|
||||
* http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
|
||||
* http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
|
||||
*/
|
||||
(function ($) {
|
||||
"use strict";
|
||||
|
||||
//Shortcut for fancyBox object
|
||||
var F = $.fancybox,
|
||||
format = function( url, rez, params ) {
|
||||
params = params || '';
|
||||
|
||||
if ( $.type( params ) === "object" ) {
|
||||
params = $.param(params, true);
|
||||
}
|
||||
|
||||
$.each(rez, function(key, value) {
|
||||
url = url.replace( '$' + key, value || '' );
|
||||
});
|
||||
|
||||
if (params.length) {
|
||||
url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params;
|
||||
}
|
||||
|
||||
return url;
|
||||
};
|
||||
|
||||
//Add helper object
|
||||
F.helpers.media = {
|
||||
defaults : {
|
||||
youtube : {
|
||||
matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
|
||||
params : {
|
||||
autoplay : 1,
|
||||
autohide : 1,
|
||||
fs : 1,
|
||||
rel : 0,
|
||||
hd : 1,
|
||||
wmode : 'opaque',
|
||||
enablejsapi : 1
|
||||
},
|
||||
type : 'iframe',
|
||||
url : '//www.youtube.com/embed/$3'
|
||||
},
|
||||
vimeo : {
|
||||
matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/,
|
||||
params : {
|
||||
autoplay : 1,
|
||||
hd : 1,
|
||||
show_title : 1,
|
||||
show_byline : 1,
|
||||
show_portrait : 0,
|
||||
fullscreen : 1
|
||||
},
|
||||
type : 'iframe',
|
||||
url : '//player.vimeo.com/video/$1'
|
||||
},
|
||||
metacafe : {
|
||||
matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/,
|
||||
params : {
|
||||
autoPlay : 'yes'
|
||||
},
|
||||
type : 'swf',
|
||||
url : function( rez, params, obj ) {
|
||||
obj.swf.flashVars = 'playerVars=' + $.param( params, true );
|
||||
|
||||
return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf';
|
||||
}
|
||||
},
|
||||
dailymotion : {
|
||||
matcher : /dailymotion.com\/video\/(.*)\/?(.*)/,
|
||||
params : {
|
||||
additionalInfos : 0,
|
||||
autoStart : 1
|
||||
},
|
||||
type : 'swf',
|
||||
url : '//www.dailymotion.com/swf/video/$1'
|
||||
},
|
||||
twitvid : {
|
||||
matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i,
|
||||
params : {
|
||||
autoplay : 0
|
||||
},
|
||||
type : 'iframe',
|
||||
url : '//www.twitvid.com/embed.php?guid=$1'
|
||||
},
|
||||
twitpic : {
|
||||
matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i,
|
||||
type : 'image',
|
||||
url : '//twitpic.com/show/full/$1/'
|
||||
},
|
||||
instagram : {
|
||||
matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
|
||||
type : 'image',
|
||||
url : '//$1/p/$2/media/?size=l'
|
||||
},
|
||||
google_maps : {
|
||||
matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i,
|
||||
type : 'iframe',
|
||||
url : function( rez ) {
|
||||
return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
beforeLoad : function(opts, obj) {
|
||||
var url = obj.href || '',
|
||||
type = false,
|
||||
what,
|
||||
item,
|
||||
rez,
|
||||
params;
|
||||
|
||||
for (what in opts) {
|
||||
if (opts.hasOwnProperty(what)) {
|
||||
item = opts[ what ];
|
||||
rez = url.match( item.matcher );
|
||||
|
||||
if (rez) {
|
||||
type = item.type;
|
||||
params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null));
|
||||
|
||||
url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params );
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (type) {
|
||||
obj.href = url;
|
||||
obj.type = type;
|
||||
|
||||
obj.autoHeight = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
}(jQuery));
|
||||
@@ -0,0 +1,12 @@
|
||||
/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
|
||||
* Licensed under the MIT License (LICENSE.txt).
|
||||
*
|
||||
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
|
||||
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
|
||||
* Thanks to: Seamus Leahy for adding deltaX and deltaY
|
||||
*
|
||||
* Version: 3.0.6
|
||||
*
|
||||
* Requires: 1.2.2+
|
||||
*/
|
||||
(function(a){function d(b){var c=b||window.event,d=[].slice.call(arguments,1),e=0,f=!0,g=0,h=0;return b=a.event.fix(c),b.type="mousewheel",c.wheelDelta&&(e=c.wheelDelta/120),c.detail&&(e=-c.detail/3),h=e,c.axis!==undefined&&c.axis===c.HORIZONTAL_AXIS&&(h=0,g=-1*e),c.wheelDeltaY!==undefined&&(h=c.wheelDeltaY/120),c.wheelDeltaX!==undefined&&(g=-1*c.wheelDeltaX/120),d.unshift(b,e,g,h),(a.event.dispatch||a.event.handle).apply(this,d)}var b=["DOMMouseScroll","mousewheel"];if(a.event.fixHooks)for(var c=b.length;c;)a.event.fixHooks[b[--c]]=a.event.mouseHooks;a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=b.length;a;)this.addEventListener(b[--a],d,!1);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=b.length;a;)this.removeEventListener(b[--a],d,!1);else this.onmousewheel=null}},a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery)
|
||||
@@ -0,0 +1,138 @@
|
||||
/*
|
||||
* RD-Google Map - v0.1
|
||||
* Easy as hell Google Map Api Jquery plugin.
|
||||
*
|
||||
* Made by Evgeniy Gusarov (Stmechanus || Diversant)
|
||||
*
|
||||
* Under MIT License
|
||||
*/
|
||||
|
||||
|
||||
;
|
||||
(function ($) {
|
||||
'use strict'
|
||||
|
||||
var def_settings = {
|
||||
cntClass: 'map',
|
||||
mapClass: 'map_model',
|
||||
locationsClass: 'map_locations',
|
||||
marker: {
|
||||
basic: 'images/gmap_marker.png',
|
||||
active: 'images/gmap_marker_active.png'
|
||||
},
|
||||
styles: []
|
||||
},
|
||||
|
||||
defaults = {
|
||||
map: {
|
||||
x: -73.9924068,
|
||||
y: 40.646197,
|
||||
zoom: 14
|
||||
},
|
||||
locations: []
|
||||
};
|
||||
|
||||
|
||||
var getLocations = function ($map, settings) {
|
||||
var $locations = $map.parent().find('.' + settings.locationsClass).find('li');
|
||||
|
||||
var locations = [];
|
||||
|
||||
|
||||
if ($locations.length > 0) {
|
||||
$locations.each(function (i) {
|
||||
var $loc = $(this);
|
||||
|
||||
if ($loc.data('x') && $loc.data('y')) {
|
||||
locations[i] = {
|
||||
x: $loc.data('x'),
|
||||
y: $loc.data('y'),
|
||||
basic: $loc.data('basic') ? $loc.data('basic') : settings.marker.basic,
|
||||
active: $loc.data('active') ? $loc.data('active') : settings.marker.active
|
||||
}
|
||||
|
||||
if (!$.trim($loc.html())) {
|
||||
locations[i].content = false;
|
||||
} else {
|
||||
locations[i].content = '<div class="iw-content">' + $loc.html() + '</div>';
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return locations;
|
||||
}
|
||||
|
||||
$.fn.googleMap = function (settings) {
|
||||
|
||||
settings = $.extend(true, {}, def_settings, settings);
|
||||
|
||||
$(this).each(function () {
|
||||
var $this = $(this);
|
||||
|
||||
var options = $.extend(
|
||||
true, {}, defaults,
|
||||
{
|
||||
map: {
|
||||
x: $this.data('x'),
|
||||
y: $this.data('y'),
|
||||
zoom: $this.data('zoom')
|
||||
},
|
||||
locations: getLocations($this, settings)
|
||||
}
|
||||
);
|
||||
|
||||
var map = new google.maps.Map(this, {
|
||||
center: new google.maps.LatLng(
|
||||
parseFloat(options.map.y),
|
||||
parseFloat(options.map.x)
|
||||
),
|
||||
scrollwheel: false,
|
||||
styles: settings.styles,
|
||||
zoom: options.map.zoom
|
||||
}),
|
||||
infowindow = new google.maps.InfoWindow(),
|
||||
markers = [];
|
||||
|
||||
for (var i in options.locations) {
|
||||
markers[i] = new google.maps.Marker(
|
||||
{
|
||||
position: new google.maps.LatLng(
|
||||
parseFloat(options.locations[i].y),
|
||||
parseFloat(options.locations[i].x)),
|
||||
map: map,
|
||||
icon: options.locations[i].basic,
|
||||
index: i
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
if (options.locations[i].content) {
|
||||
google.maps.event.addListener(markers[i], 'click', function () {
|
||||
for (var j in markers) {
|
||||
markers[j].setIcon(options.locations[j].basic);
|
||||
}
|
||||
|
||||
infowindow.setContent(options.locations[this.index].content);
|
||||
infowindow.open(map, this);
|
||||
$('.gm-style-iw').parent().parent().addClass("gm-wrapper");
|
||||
this.setIcon(options.locations[this.index].active);
|
||||
});
|
||||
google.maps.event.addListener(infowindow, 'closeclick', function () {
|
||||
for (var j in markers) {
|
||||
markers[j].setIcon(options.locations[j].basic);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
google.maps.event.addDomListener(window, 'resize', function() {
|
||||
map.setCenter(new google.maps.LatLng(
|
||||
parseFloat(options.map.y),
|
||||
parseFloat(options.map.x)
|
||||
));
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,262 @@
|
||||
/*
|
||||
* Author: Evgeniy Gusarov StMechanus (Diversant)
|
||||
* Under the MIT License
|
||||
*
|
||||
* Version: 1.0.1
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
;
|
||||
(function ($) {
|
||||
|
||||
var settings = {
|
||||
cntClass: 'rd-mobilemenu',
|
||||
menuClass: 'rd-mobilemenu_ul',
|
||||
submenuClass: 'rd-mobilemenu_submenu',
|
||||
panelClass: 'rd-mobilepanel',
|
||||
toggleClass: 'rd-mobilepanel_toggle',
|
||||
titleClass: 'rd-mobilepanel_title'
|
||||
},
|
||||
lastY, dir;
|
||||
|
||||
|
||||
var RDMobileMenu = function (element, options) {
|
||||
this.options = options;
|
||||
|
||||
this.$source = $(element);
|
||||
};
|
||||
|
||||
RDMobileMenu.prototype = {
|
||||
init: function () {
|
||||
var nav = this;
|
||||
nav.createDOM();
|
||||
nav.createListeners();
|
||||
},
|
||||
|
||||
createDOM: function () {
|
||||
var nav = this;
|
||||
|
||||
$('body')
|
||||
.append($('<div/>', {
|
||||
'class': settings.cntClass
|
||||
}).append(nav.createNavDOM()))
|
||||
.append($('<div/>', {
|
||||
'class': settings.panelClass
|
||||
})
|
||||
.append($('<button/>', {
|
||||
'class': settings.toggleClass
|
||||
}).append($('<span/>')))
|
||||
.append($('<h2/>', {
|
||||
'class': settings.titleClass,
|
||||
'text': document.title
|
||||
})));
|
||||
},
|
||||
|
||||
createNavDOM: function () {
|
||||
var nav = this;
|
||||
|
||||
var menu = $('<ul>', {'class': settings.menuClass});
|
||||
|
||||
var li = nav.$source.children();
|
||||
for (var i = 0; i < li.length; i++) {
|
||||
var o = li[i].children,
|
||||
item = null;
|
||||
for (var j = 0; j < o.length; j++) {
|
||||
if (o[j].tagName) {
|
||||
if (!item) {
|
||||
item = document.createElement('li');
|
||||
if (li[i].className.indexOf('active') > -1) {
|
||||
item.className = 'active';
|
||||
}
|
||||
}
|
||||
|
||||
switch (o[j].tagName.toLowerCase()) {
|
||||
case 'a':
|
||||
var link = o[j].cloneNode(true);
|
||||
item.appendChild(link);
|
||||
break;
|
||||
case 'ul':
|
||||
var submenu = o[j].cloneNode(true);
|
||||
submenu.className = settings.submenuClass;
|
||||
$(submenu).css({"display": "none"});
|
||||
item.appendChild(submenu);
|
||||
$(item).find('> a')
|
||||
.each(function () {
|
||||
$this = $(this);
|
||||
$this.addClass('rd-with-ul')
|
||||
.append($('<span/>', {class: 'rd-submenu-toggle'}))
|
||||
.find('.rd-submenu-toggle')
|
||||
.on('click', function (e) {
|
||||
e.preventDefault();
|
||||
$this = $(this).parent();
|
||||
|
||||
if ($this.hasClass('rd-with-ul') && !$this.hasClass('active')) {
|
||||
$('.rd-with-ul').removeClass('active');
|
||||
var submenu = $this.addClass('active').parent().find('.' + settings.submenuClass);
|
||||
submenu.stop().slideDown();
|
||||
$('.' + settings.submenuClass).not(submenu).stop().slideUp();
|
||||
} else {
|
||||
var submenu = $this.removeClass('active').parent().find('.' + settings.submenuClass);
|
||||
submenu.stop().slideUp();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (item) {
|
||||
menu.append(item);
|
||||
}
|
||||
}
|
||||
|
||||
return menu;
|
||||
},
|
||||
|
||||
createListeners: function () {
|
||||
var nav = this;
|
||||
|
||||
nav.createToggleListener();
|
||||
nav.createResizeListener();
|
||||
},
|
||||
|
||||
createToggleListener: function () {
|
||||
var nav = this,
|
||||
type;
|
||||
|
||||
if (nav.isMobile()){
|
||||
type = 'touchstart';
|
||||
}else{
|
||||
type = 'click';
|
||||
}
|
||||
|
||||
$('body').delegate('.' + settings.toggleClass, type, function () {
|
||||
var o = $('.' + settings.cntClass);
|
||||
$(this).toggleClass('active');
|
||||
|
||||
if (o.hasClass('active')) {
|
||||
$(this).removeClass('active');
|
||||
o.removeClass('active');
|
||||
$('body').undelegate('*', 'mousewheel', nav.scroll);
|
||||
$('body').undelegate('*', 'touchmove', nav.scroll);
|
||||
$('body').undelegate('*', 'touchend', nav.touchend);
|
||||
$('body').undelegate('*', 'touchstart', nav.close);
|
||||
$('body').undelegate('*:not(.' + settings.toggleClass + ' span)', 'click', nav.close);
|
||||
} else {
|
||||
$(this).addClass('active');
|
||||
o.addClass('active');
|
||||
$('body').delegate('*', 'mousewheel', nav.scroll);
|
||||
$('body').delegate('*', 'touchmove', nav.scroll);
|
||||
$('body').delegate('*', 'touchend', nav.touchend);
|
||||
$('body').delegate('*', 'touchstart', {type: type}, nav.close);
|
||||
$('body').delegate('*:not(.' + settings.toggleClass + ' span)', 'click', {type: type}, nav.close);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
createResizeListener: function () {
|
||||
var nav = this;
|
||||
|
||||
$(window).on('resize', function () {
|
||||
var o = $('.' + settings.cntClass);
|
||||
|
||||
if (o.css('display') == 'none') {
|
||||
o.removeClass('active');
|
||||
$('.' + settings.toggleClass).removeClass('active');
|
||||
$('body').undelegate('*', 'mousewheel', nav.scroll);
|
||||
$('body').undelegate('*', 'touchmove', nav.scroll);
|
||||
$('body').undelegate('*', 'touchend', nav.touchend);
|
||||
$('body').undelegate('*', 'touchstart', nav.close);
|
||||
$('body').undelegate('*:not(.' + settings.toggleClass + ' span)', 'click', nav.close);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
scroll: function (e) {
|
||||
e.preventDefault();
|
||||
var menu = $('.' + settings.menuClass);
|
||||
|
||||
var x = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageX : e.pageX,
|
||||
y = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageY : e.pageY;
|
||||
|
||||
if (
|
||||
y > menu.offset().top &&
|
||||
y < (menu.offset().top + menu.outerHeight()) &&
|
||||
x > menu.offset().left &&
|
||||
x < (menu.offset().left + menu.outerWidth())
|
||||
) {
|
||||
var delta = 0;
|
||||
if (e.originalEvent.targetTouches) {
|
||||
if (!lastY) lastY = y;
|
||||
delta = (lastY - y);
|
||||
|
||||
lastY = y;
|
||||
dir = delta > 0;
|
||||
|
||||
} else {
|
||||
delta = (e.originalEvent.wheelDelta || -e.originalEvent.detail) * (-50)
|
||||
}
|
||||
|
||||
menu.stop().scrollTop(menu.scrollTop() + delta);
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
touchend: function (e) {
|
||||
var menu = $('.' + settings.menuClass);
|
||||
|
||||
menu.stop().animate({
|
||||
scrollTop: menu.scrollTop() + (dir ? 100 : -100)
|
||||
}, 3000, 'easeOutQuint');
|
||||
lastY = undefined;
|
||||
},
|
||||
|
||||
close: function (e) {
|
||||
if (!e.originalEvent) {
|
||||
return;
|
||||
}
|
||||
|
||||
var menu = $('.' + settings.menuClass);
|
||||
var x = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageX : e.pageX,
|
||||
y = e.originalEvent.targetTouches ? e.originalEvent.targetTouches[0].pageY : e.pageY;
|
||||
|
||||
if (!(
|
||||
y > menu.offset().top &&
|
||||
y < (menu.offset().top + menu.outerHeight()) &&
|
||||
x > menu.offset().left &&
|
||||
x < (menu.offset().left + menu.outerWidth())
|
||||
)
|
||||
) {
|
||||
$('.' + settings.toggleClass).trigger(e.data.type);
|
||||
}
|
||||
},
|
||||
|
||||
isMobile: function () {
|
||||
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.rdparallax = function (option) {
|
||||
var o = this;
|
||||
if (o.length) {
|
||||
new RDMobileMenu(o[0]).init();
|
||||
}
|
||||
return o;
|
||||
};
|
||||
|
||||
window.RDMobilemenu_autoinit = function (selector) {
|
||||
var o = $(selector);
|
||||
if (o.length) {
|
||||
new RDMobileMenu(o[0]).init();
|
||||
}
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function () {
|
||||
RDMobilemenu_autoinit('[data-type="navbar"]');
|
||||
});
|
||||
@@ -0,0 +1,299 @@
|
||||
/*
|
||||
* Author: Evgeniy Gusarov StMechanus (Diversant)
|
||||
* Under the MIT License
|
||||
*
|
||||
* Version: 2.0.1
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
;
|
||||
(function ($) {
|
||||
|
||||
var RDParallax = function (element, options) {
|
||||
this.options = options;
|
||||
|
||||
this.settings = {
|
||||
'imageClass': 'parallax_image',
|
||||
'patternClass': 'parallax_pattern',
|
||||
'contentClass': 'parallax_cnt',
|
||||
'wrapClass': 'parallax'
|
||||
}
|
||||
|
||||
this.$wrap = $(element);
|
||||
|
||||
this.$image = $.noop();
|
||||
};
|
||||
|
||||
RDParallax.prototype = {
|
||||
init: function () {
|
||||
var parallax = this;
|
||||
parallax.isInit = true;
|
||||
parallax.createDOM();
|
||||
parallax.blur();
|
||||
parallax.createListeners();
|
||||
},
|
||||
|
||||
createDOM: function () {
|
||||
var parallax = this;
|
||||
|
||||
parallax
|
||||
.$wrap
|
||||
.addClass(parallax.settings.wrapClass)
|
||||
.wrapInner($('<div/>', {
|
||||
'class': parallax.settings.contentClass
|
||||
}))
|
||||
.prepend($('<div/>', {
|
||||
'class': (parallax.options.pattern ? parallax.settings.patternClass : parallax.settings.imageClass)
|
||||
}).css({
|
||||
'background-image': 'url(' + parallax.options.url + ')',
|
||||
'background-color': parallax.options.color
|
||||
}));
|
||||
|
||||
parallax.$image = parallax.options.pattern ? parallax.$wrap.find('.' + parallax.settings.patternClass) : parallax.$wrap.find('.' + parallax.settings.imageClass);
|
||||
},
|
||||
|
||||
createListeners: function () {
|
||||
this.createResizeListener();
|
||||
this.createScrollListener();
|
||||
},
|
||||
|
||||
createScrollListener: function () {
|
||||
var parallax = this;
|
||||
|
||||
if (parallax.isMobile()) {
|
||||
if (!parallax.options.mobile) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$(window).bind('touchstart', function () {
|
||||
parallax.isTouched = true;
|
||||
});
|
||||
|
||||
$(window).bind('touchend', function () {
|
||||
if(parallax.timer){
|
||||
clearTimeout(parallax.timer);
|
||||
}
|
||||
|
||||
parallax.timer = setTimeout(function () {
|
||||
parallax.isTouched = false;
|
||||
}, 1200);
|
||||
});
|
||||
|
||||
$(window).bind('scroll', function () {
|
||||
parallax.move();
|
||||
});
|
||||
parallax.move();
|
||||
},
|
||||
|
||||
createResizeListener: function () {
|
||||
var parallax = this;
|
||||
|
||||
if (parallax.isMobile()) {
|
||||
if (!parallax.options.mobile) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!parallax.isMobile()) {
|
||||
$(window).bind('resize', function () {
|
||||
parallax.resize();
|
||||
});
|
||||
}
|
||||
|
||||
$(window).bind('orientationchange', function () {
|
||||
setTimeout(function () {
|
||||
parallax.resize();
|
||||
}, 300);
|
||||
});
|
||||
|
||||
parallax.resize();
|
||||
},
|
||||
|
||||
move: function () {
|
||||
var parallax = this;
|
||||
|
||||
if (!parallax.isVisible()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parallax.isMobile()) {
|
||||
if (!parallax.options.mobile) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var st = $(window).scrollTop(),
|
||||
off = parallax.$wrap.offset().top,
|
||||
wh = $(window).height(),
|
||||
h = parallax.$wrap.outerHeight(),
|
||||
ph = parallax.$image.height();
|
||||
|
||||
var speed = parallax.options.speed;
|
||||
if (speed < 0) {
|
||||
speed = 0;
|
||||
}
|
||||
if (speed > 1) {
|
||||
speed = 1;
|
||||
}
|
||||
|
||||
var step = (st - (off - wh)) / ((off + h) - (off - wh)) * speed;
|
||||
|
||||
|
||||
if (parallax.options.direction == 'normal') {
|
||||
var pos = step * (h - ph);
|
||||
} else {
|
||||
var pos = (1 - step) * (h - ph);
|
||||
}
|
||||
|
||||
if (parallax.isIE() && parallax.ieVersion() <= 10) {
|
||||
parallax.$image.css('top', '' + pos + 'px');
|
||||
}
|
||||
else if (parallax.isMobile() && parallax.options.mobile) {
|
||||
if (parallax.isTouched || parallax.isInit) {
|
||||
parallax.$image.stop().animate({pos: pos}, {
|
||||
step: function (pos) {
|
||||
$(this).css('transform', 'translate3d(0, ' + pos + 'px, 0)');
|
||||
},
|
||||
duration: parallax.options.duration
|
||||
}, parallax.options.easing);
|
||||
|
||||
parallax.isInit = false;
|
||||
}
|
||||
} else {
|
||||
parallax.$image.css('transform', 'translate3d(0, ' + pos + 'px, 0)');
|
||||
}
|
||||
|
||||
if (parallax.isFirefox() && window.devicePixelRatio < 1){
|
||||
parallax.$image.css('background-color', '#010101');
|
||||
|
||||
setTimeout(function () {
|
||||
parallax.$image.css('background-color', parallax.options.color);
|
||||
}, 10);
|
||||
}
|
||||
},
|
||||
|
||||
resize: function () {
|
||||
var parallax = this,
|
||||
h = Math.max($(window).height(), 500);
|
||||
|
||||
if(h < parallax.$wrap.outerHeight()){
|
||||
h = parallax.$wrap.outerHeight() + $(window).height() * parallax.options.speed;
|
||||
}
|
||||
|
||||
parallax.$image.height(h);
|
||||
|
||||
setTimeout(function () {
|
||||
parallax.move();
|
||||
parallax.blur();
|
||||
}, 300);
|
||||
},
|
||||
|
||||
blur: function () {
|
||||
var parallax = this;
|
||||
|
||||
if (parallax.options.blur && !parallax.isIE() && !parallax.options.pattern) {
|
||||
|
||||
$('<img/>', {src: parallax.options.url}).load(function () {
|
||||
var dh = parallax.$image.height() / this.height,
|
||||
dw = parallax.$image.width() / this.width,
|
||||
blur = Math.floor(Math.max(dh, dw));
|
||||
|
||||
|
||||
if (blur > 2) {
|
||||
parallax.$image.css({
|
||||
'filter': 'blur(' + blur + 'px)',
|
||||
'-webkit-filter': 'blur(' + blur + 'px)'
|
||||
});
|
||||
} else {
|
||||
parallax.$image.css({
|
||||
'filter': 'blur(' + 0 + 'px)',
|
||||
'-webkit-filter': 'blur(' + 0 + 'px)'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
isVisible: function () {
|
||||
var parallax = this,
|
||||
|
||||
windowScroll = $(window).scrollTop(),
|
||||
windowHeight = $(window).height(),
|
||||
parallaxOffset = parallax.$wrap.offset().top,
|
||||
parallaxHeight = parallax.$wrap.outerHeight();
|
||||
|
||||
return (parallaxOffset + parallaxHeight >= windowScroll) && (parallaxOffset <= windowScroll + windowHeight)
|
||||
},
|
||||
|
||||
isIE: function () {
|
||||
if (navigator.appVersion.indexOf("MSIE") != -1) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
isMobile: function () {
|
||||
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
||||
},
|
||||
|
||||
ieVersion: function () {
|
||||
return parseFloat(navigator.appVersion.split("MSIE")[1]);
|
||||
},
|
||||
|
||||
isFirefox: function () {
|
||||
return typeof InstallTrigger !== 'undefined'; // Firefox 1.0+
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.rdparallax = function (option) {
|
||||
var element = this.each(function () {
|
||||
var options = $.extend({}, $.fn.rdparallax.defaults, option);
|
||||
|
||||
if (options.url) {
|
||||
new RDParallax(this, options).init();
|
||||
} else {
|
||||
console.error('RD Parallax: data-url is not defined');
|
||||
}
|
||||
});
|
||||
return element;
|
||||
};
|
||||
|
||||
$.fn.rdparallax.defaults = {
|
||||
speed: 0.4,
|
||||
direction: 'normal',
|
||||
blur: false,
|
||||
mobile: false,
|
||||
url: false,
|
||||
pattern: false,
|
||||
duration: 200,
|
||||
easing: 'linear',
|
||||
color: 'inherit'
|
||||
};
|
||||
|
||||
window.RDParallax_autoinit = function (selector) {
|
||||
$(selector).each(function () {
|
||||
var options = $.extend({}, $.fn.rdparallax.defaults, {
|
||||
url: $(this).data('url'),
|
||||
speed: $(this).data('speed'),
|
||||
direction: $(this).data('direction'),
|
||||
blur: $(this).data('blur'),
|
||||
mobile: $(this).data('mobile'),
|
||||
pattern: $(this).data('pattern'),
|
||||
color: $(this).data('color')
|
||||
});
|
||||
|
||||
if (options.url) {
|
||||
new RDParallax(this, options).init();
|
||||
} else {
|
||||
console.error('RD Parallax: data-url is not defined');
|
||||
}
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
$(document).ready(function () {
|
||||
RDParallax_autoinit('.parallax');
|
||||
});
|
||||
@@ -0,0 +1,54 @@
|
||||
/* jquery.simplr.smoothscroll version 1.0 copyright (c) 2012 https://github.com/simov/simplr-smoothscroll licensed under MIT */ ;
|
||||
(function (e) {
|
||||
"use strict";
|
||||
e.srSmoothscroll = function (t) {
|
||||
var platform = window.navigator.platform;
|
||||
if ((platform === 'MacIntel' || platform === 'MacPPC')) {
|
||||
return false
|
||||
};
|
||||
var n = e.extend({
|
||||
step: 170,
|
||||
speed: 1000,
|
||||
ease: "swing"
|
||||
}, t || {});
|
||||
var r = e(window),
|
||||
i = e(document),
|
||||
s = 0,
|
||||
o = n.step,
|
||||
u = n.speed,
|
||||
a = r.height(),
|
||||
f = navigator.userAgent.indexOf("AppleWebKit") !== -1 ? e("body") : e("html"),
|
||||
l = false,
|
||||
rdy = 0;
|
||||
e("body").mousewheel(function (e, t) {
|
||||
//Sidenav FIX
|
||||
var nav;
|
||||
if ((nav = $('.rd-mobilemenu')).length > 0) {
|
||||
if (nav.hasClass('active')) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
//===========
|
||||
l = true;
|
||||
if (rdy == 0) {
|
||||
rdy = 1;
|
||||
if (t < 0) s = r.scrollTop() + o;
|
||||
else s = r.scrollTop() - o;
|
||||
} else {
|
||||
if (t < 0) s = s + a >= i.height() ? s : s += o;
|
||||
else s = s <= 0 ? 0 : s -= o;
|
||||
}
|
||||
f.stop().animate({
|
||||
scrollTop: s
|
||||
}, u, n.ease, function () {
|
||||
l = false
|
||||
});
|
||||
return false
|
||||
});
|
||||
r.on("resize", function (e) {
|
||||
a = r.height()
|
||||
}).on("scroll", function (e) {
|
||||
if (!l) s = r.scrollTop()
|
||||
})
|
||||
}
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,41 @@
|
||||
(function($){
|
||||
$.fn.UItoTop = function(options) {
|
||||
|
||||
var defaults = {
|
||||
text: '',
|
||||
min: 500,
|
||||
scrollSpeed: 800,
|
||||
containerID: 'toTop',
|
||||
containerClass: 'toTop fa fa-angle-up',
|
||||
easingType: 'linear'
|
||||
|
||||
};
|
||||
|
||||
var settings = $.extend(defaults, options);
|
||||
var containerIDhash = '#' + settings.containerID;
|
||||
var containerHoverIDHash = '#'+settings.containerHoverID;
|
||||
|
||||
$('body').append('<a href="#" id="'+settings.containerID+'" class="'+settings.containerClass+'" >'+settings.text+'</a>');
|
||||
|
||||
$(containerIDhash).hide().click(function(){
|
||||
$('html, body').stop().animate({scrollTop:0}, settings.scrollSpeed, settings.easingType);
|
||||
$('#'+settings.containerHoverID, this).stop().animate({'opacity': 0 }, settings.inDelay, settings.easingType);
|
||||
return false;
|
||||
})
|
||||
|
||||
|
||||
$(window).scroll(function() {
|
||||
var sd = $(window).scrollTop();
|
||||
if(typeof document.body.style.maxHeight === "undefined") {
|
||||
$(containerIDhash).css({
|
||||
'position': 'absolute',
|
||||
'top': $(window).scrollTop() + $(window).height() - 50
|
||||
});
|
||||
}
|
||||
if ( sd > settings.min )
|
||||
$(containerIDhash).stop(true,true).fadeIn(600);
|
||||
else
|
||||
$(containerIDhash).fadeOut(800);
|
||||
});
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,271 @@
|
||||
/* ========================================================================
|
||||
* Bootstrap: modal.js v3.1.1
|
||||
* http://getbootstrap.com/javascript/#modals
|
||||
* ========================================================================
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
||||
+function ($) {
|
||||
'use strict';
|
||||
|
||||
// MODAL CLASS DEFINITION
|
||||
// ======================
|
||||
|
||||
var Modal = function (element, options) {
|
||||
this.options = options
|
||||
this.$body = $(document.body)
|
||||
this.$element = $(element)
|
||||
this.$backdrop =
|
||||
this.isShown = null
|
||||
this.scrollbarWidth = 0
|
||||
|
||||
if (this.options.remote) {
|
||||
this.$element
|
||||
.find('.modal-content')
|
||||
.load(this.options.remote, $.proxy(function () {
|
||||
this.$element.trigger('loaded.bs.modal')
|
||||
}, this))
|
||||
}
|
||||
}
|
||||
|
||||
Modal.DEFAULTS = {
|
||||
backdrop: true,
|
||||
keyboard: true,
|
||||
show: true
|
||||
}
|
||||
|
||||
Modal.prototype.toggle = function (_relatedTarget) {
|
||||
return this.isShown ? this.hide() : this.show(_relatedTarget)
|
||||
}
|
||||
|
||||
Modal.prototype.show = function (_relatedTarget) {
|
||||
var that = this
|
||||
var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
|
||||
|
||||
this.$element.trigger(e)
|
||||
|
||||
if (this.isShown || e.isDefaultPrevented()) return
|
||||
|
||||
this.isShown = true
|
||||
|
||||
this.checkScrollbar()
|
||||
this.$body.addClass('modal-open')
|
||||
|
||||
this.setScrollbar()
|
||||
this.escape()
|
||||
|
||||
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
||||
|
||||
this.backdrop(function () {
|
||||
var transition = $.support.transition && that.$element.hasClass('fade')
|
||||
|
||||
if (!that.$element.parent().length) {
|
||||
that.$element.appendTo(that.$body) // don't move modals dom position
|
||||
}
|
||||
|
||||
that.$element
|
||||
.show()
|
||||
.scrollTop(0)
|
||||
|
||||
if (transition) {
|
||||
that.$element[0].offsetWidth // force reflow
|
||||
}
|
||||
|
||||
that.$element
|
||||
.addClass('in')
|
||||
.attr('aria-hidden', false)
|
||||
|
||||
that.enforceFocus()
|
||||
|
||||
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
|
||||
|
||||
transition ?
|
||||
that.$element.find('.modal-dialog') // wait for modal to slide in
|
||||
.one($.support.transition.end, function () {
|
||||
that.$element.trigger('focus').trigger(e)
|
||||
})
|
||||
.emulateTransitionEnd(300) :
|
||||
that.$element.trigger('focus').trigger(e)
|
||||
})
|
||||
}
|
||||
|
||||
Modal.prototype.hide = function (e) {
|
||||
if (e) e.preventDefault()
|
||||
|
||||
e = $.Event('hide.bs.modal')
|
||||
|
||||
this.$element.trigger(e)
|
||||
|
||||
if (!this.isShown || e.isDefaultPrevented()) return
|
||||
|
||||
this.isShown = false
|
||||
|
||||
this.$body.removeClass('modal-open')
|
||||
|
||||
this.resetScrollbar()
|
||||
this.escape()
|
||||
|
||||
$(document).off('focusin.bs.modal')
|
||||
|
||||
this.$element
|
||||
.removeClass('in')
|
||||
.attr('aria-hidden', true)
|
||||
.off('click.dismiss.bs.modal')
|
||||
|
||||
$.support.transition && this.$element.hasClass('fade') ?
|
||||
this.$element
|
||||
.one($.support.transition.end, $.proxy(this.hideModal, this))
|
||||
.emulateTransitionEnd(300) :
|
||||
this.hideModal()
|
||||
}
|
||||
|
||||
Modal.prototype.enforceFocus = function () {
|
||||
$(document)
|
||||
.off('focusin.bs.modal') // guard against infinite focus loop
|
||||
.on('focusin.bs.modal', $.proxy(function (e) {
|
||||
if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
|
||||
this.$element.trigger('focus')
|
||||
}
|
||||
}, this))
|
||||
}
|
||||
|
||||
Modal.prototype.escape = function () {
|
||||
if (this.isShown && this.options.keyboard) {
|
||||
this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
|
||||
e.which == 27 && this.hide()
|
||||
}, this))
|
||||
} else if (!this.isShown) {
|
||||
this.$element.off('keyup.dismiss.bs.modal')
|
||||
}
|
||||
}
|
||||
|
||||
Modal.prototype.hideModal = function () {
|
||||
var that = this
|
||||
this.$element.hide()
|
||||
this.backdrop(function () {
|
||||
that.removeBackdrop()
|
||||
that.$element.trigger('hidden.bs.modal')
|
||||
})
|
||||
}
|
||||
|
||||
Modal.prototype.removeBackdrop = function () {
|
||||
this.$backdrop && this.$backdrop.remove()
|
||||
this.$backdrop = null
|
||||
}
|
||||
|
||||
Modal.prototype.backdrop = function (callback) {
|
||||
var animate = this.$element.hasClass('fade') ? 'fade' : ''
|
||||
|
||||
if (this.isShown && this.options.backdrop) {
|
||||
var doAnimate = $.support.transition && animate
|
||||
|
||||
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
||||
.appendTo(this.$body)
|
||||
|
||||
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
||||
if (e.target !== e.currentTarget) return
|
||||
this.options.backdrop == 'static'
|
||||
? this.$element[0].focus.call(this.$element[0])
|
||||
: this.hide.call(this)
|
||||
}, this))
|
||||
|
||||
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
||||
|
||||
this.$backdrop.addClass('in')
|
||||
|
||||
if (!callback) return
|
||||
|
||||
doAnimate ?
|
||||
this.$backdrop
|
||||
.one($.support.transition.end, callback)
|
||||
.emulateTransitionEnd(150) :
|
||||
callback()
|
||||
|
||||
} else if (!this.isShown && this.$backdrop) {
|
||||
this.$backdrop.removeClass('in')
|
||||
|
||||
$.support.transition && this.$element.hasClass('fade') ?
|
||||
this.$backdrop
|
||||
.one($.support.transition.end, callback)
|
||||
.emulateTransitionEnd(150) :
|
||||
callback()
|
||||
|
||||
} else if (callback) {
|
||||
callback()
|
||||
}
|
||||
}
|
||||
|
||||
Modal.prototype.checkScrollbar = function () {
|
||||
if (document.body.clientWidth >= window.innerWidth) return
|
||||
this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
|
||||
}
|
||||
|
||||
Modal.prototype.setScrollbar = function () {
|
||||
var bodyPad = parseInt(this.$body.css('padding-right') || 0)
|
||||
if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
|
||||
}
|
||||
|
||||
Modal.prototype.resetScrollbar = function () {
|
||||
this.$body.css('padding-right', '')
|
||||
}
|
||||
|
||||
Modal.prototype.measureScrollbar = function () { // thx walsh
|
||||
var scrollDiv = document.createElement('div')
|
||||
scrollDiv.className = 'modal-scrollbar-measure'
|
||||
this.$body.append(scrollDiv)
|
||||
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
|
||||
this.$body[0].removeChild(scrollDiv)
|
||||
return scrollbarWidth
|
||||
}
|
||||
|
||||
|
||||
// MODAL PLUGIN DEFINITION
|
||||
// =======================
|
||||
|
||||
var old = $.fn.modal
|
||||
|
||||
$.fn.modal = function (option, _relatedTarget) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.modal')
|
||||
var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
||||
|
||||
if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
|
||||
if (typeof option == 'string') data[option](_relatedTarget)
|
||||
else if (options.show) data.show(_relatedTarget)
|
||||
})
|
||||
}
|
||||
|
||||
$.fn.modal.Constructor = Modal
|
||||
|
||||
|
||||
// MODAL NO CONFLICT
|
||||
// =================
|
||||
|
||||
$.fn.modal.noConflict = function () {
|
||||
$.fn.modal = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
// MODAL DATA-API
|
||||
// ==============
|
||||
|
||||
$(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
|
||||
var $this = $(this)
|
||||
var href = $this.attr('href')
|
||||
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
||||
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
||||
|
||||
if ($this.is('a')) e.preventDefault()
|
||||
|
||||
$target
|
||||
.modal(option, this)
|
||||
.one('hide', function () {
|
||||
$this.is(':visible') && $this.trigger('focus')
|
||||
})
|
||||
})
|
||||
|
||||
}(jQuery);
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Pointer Events Polyfill: Adds support for the style attribute "pointer-events: none" to browsers without this feature (namely, IE).
|
||||
* (c) 2013, Kent Mewhort, licensed under BSD. See LICENSE.txt for details.
|
||||
*/
|
||||
|
||||
// constructor
|
||||
function PointerEventsPolyfill(options){
|
||||
// set defaults
|
||||
this.options = {
|
||||
selector: '*',
|
||||
mouseEvents: ['click','dblclick','mousedown','mouseup'],
|
||||
usePolyfillIf: function(){
|
||||
if(navigator.appName == 'Microsoft Internet Explorer')
|
||||
{
|
||||
var agent = navigator.userAgent;
|
||||
if (agent.match(/MSIE ([0-9]{1,}[\.0-9]{0,})/) != null){
|
||||
var version = parseFloat( RegExp.$1 );
|
||||
if(version < 11)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
};
|
||||
if(options){
|
||||
var obj = this;
|
||||
$.each(options, function(k,v){
|
||||
obj.options[k] = v;
|
||||
});
|
||||
}
|
||||
|
||||
if(this.options.usePolyfillIf())
|
||||
this.register_mouse_events();
|
||||
}
|
||||
|
||||
// singleton initializer
|
||||
PointerEventsPolyfill.initialize = function(options){
|
||||
if(PointerEventsPolyfill.singleton == null)
|
||||
PointerEventsPolyfill.singleton = new PointerEventsPolyfill(options);
|
||||
return PointerEventsPolyfill.singleton;
|
||||
};
|
||||
|
||||
// handle mouse events w/ support for pointer-events: none
|
||||
PointerEventsPolyfill.prototype.register_mouse_events = function(){
|
||||
// register on all elements (and all future elements) matching the selector
|
||||
$(document).on(this.options.mouseEvents.join(" "), this.options.selector, function(e){
|
||||
if($(this).css('pointer-events') == 'none'){
|
||||
// peak at the element below
|
||||
var origDisplayAttribute = $(this).css('display');
|
||||
$(this).css('display','none');
|
||||
|
||||
var underneathElem = document.elementFromPoint(e.clientX, e.clientY);
|
||||
|
||||
if(origDisplayAttribute)
|
||||
$(this)
|
||||
.css('display', origDisplayAttribute);
|
||||
else
|
||||
$(this).css('display','');
|
||||
|
||||
// fire the mouse event on the element below
|
||||
e.target = underneathElem;
|
||||
$(underneathElem).trigger(e);
|
||||
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
};
|
||||
|
||||
jQuery(document).ready(function(){
|
||||
PointerEventsPolyfill.initialize({});
|
||||
});
|
||||
@@ -0,0 +1,362 @@
|
||||
// Smooth scroll blocking
|
||||
document.addEventListener( 'DOMContentLoaded', function() {
|
||||
if ( 'onwheel' in document ) {
|
||||
window.onwheel = function( event ) {
|
||||
if( typeof( this.RDSmoothScroll ) !== undefined ) {
|
||||
try { window.removeEventListener( 'DOMMouseScroll', this.RDSmoothScroll.prototype.onWheel ); } catch( error ) {}
|
||||
event.stopPropagation();
|
||||
}
|
||||
};
|
||||
} else if ( 'onmousewheel' in document ) {
|
||||
window.onmousewheel= function( event ) {
|
||||
if( typeof( this.RDSmoothScroll ) !== undefined ) {
|
||||
try { window.removeEventListener( 'onmousewheel', this.RDSmoothScroll.prototype.onWheel ); } catch( error ) {}
|
||||
event.stopPropagation();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
try { $('body').unmousewheel(); } catch( error ) {}
|
||||
});
|
||||
|
||||
function include(scriptUrl) {
|
||||
document.write('<script src="' + scriptUrl + '"></script>');
|
||||
}
|
||||
|
||||
function isIE() {
|
||||
var myNav = navigator.userAgent.toLowerCase();
|
||||
return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
|
||||
};
|
||||
|
||||
/* cookie.JS
|
||||
========================================================*/
|
||||
include('js/jquery.cookie.js');
|
||||
|
||||
/* Easing library
|
||||
========================================================*/
|
||||
include('js/jquery.easing.1.3.js');
|
||||
|
||||
/* PointerEvents
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
if(isIE() && isIE() < 11){
|
||||
include('js/pointer-events.js');
|
||||
$('html').addClass('lt-ie11');
|
||||
$(document).ready(function(){
|
||||
PointerEventsPolyfill.initialize({});
|
||||
});
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
/* Stick up menus
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
var o = $('html');
|
||||
if (o.hasClass('desktop')) {
|
||||
include('js/tmstickup.js');
|
||||
|
||||
$(document).ready(function () {
|
||||
$('#stuck_container').TMStickUp({})
|
||||
});
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
/* ToTop
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
var o = $('html');
|
||||
if (o.hasClass('desktop')) {
|
||||
include('js/jquery.ui.totop.js');
|
||||
|
||||
$(document).ready(function () {
|
||||
$().UItoTop({
|
||||
easingType: 'easeOutQuart',
|
||||
containerClass: 'toTop fa fa-angle-up'
|
||||
});
|
||||
});
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
/* EqualHeights
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
var o = $('[data-equal-group]');
|
||||
if (o.length > 0) {
|
||||
include('js/jquery.equalheights.js');
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
/* SMOOTH SCROLLIG
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
var o = $('html');
|
||||
if (o.hasClass('desktop')) {
|
||||
include('js/jquery.mousewheel.min.js');
|
||||
include('js/jquery.simplr.smoothscroll.min.js');
|
||||
|
||||
$(document).ready(function () {
|
||||
$.srSmoothscroll({
|
||||
step: 150,
|
||||
speed: 800
|
||||
});
|
||||
});
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
/* Copyright Year
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
var currentYear = (new Date).getFullYear();
|
||||
$(document).ready(function () {
|
||||
$("#copyright-year").text((new Date).getFullYear());
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
|
||||
/* Superfish menus
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
include('js/superfish.js');
|
||||
})(jQuery);
|
||||
|
||||
/* Navbar
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
include('js/jquery.rd-navbar.js');
|
||||
})(jQuery);
|
||||
|
||||
/* Parallax
|
||||
=============================================*/
|
||||
;(function ($) {
|
||||
include('js/jquery.rd-parallax.js');
|
||||
})(jQuery);
|
||||
|
||||
/* FancyBox
|
||||
========================================================*/
|
||||
;(function ($) {
|
||||
var o = $('.thumb');
|
||||
if (o.length > 0) {
|
||||
include('js/jquery.fancybox.js');
|
||||
include('js/jquery.fancybox-media.js');
|
||||
include('js/jquery.fancybox-buttons.js');
|
||||
$(document).ready(function () {
|
||||
o.fancybox();
|
||||
});
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
|
||||
/* Google Map
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
var o = document.getElementById("google-map");
|
||||
if (o) {
|
||||
include('//maps.google.com/maps/api/js?sensor=false');
|
||||
include('js/jquery.rd-google-map.js');
|
||||
|
||||
$(document).ready(function () {
|
||||
var o = $('#google-map');
|
||||
if (o.length > 0) {
|
||||
var styleArray = [
|
||||
{
|
||||
"featureType": "administrative",
|
||||
"elementType": "labels.text.fill",
|
||||
"stylers": [
|
||||
{
|
||||
"color": "#444444"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "administrative.country",
|
||||
"elementType": "geometry.fill",
|
||||
"stylers": [
|
||||
{
|
||||
"visibility": "off"
|
||||
},
|
||||
{
|
||||
"color": "#fc6e6e"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "administrative.province",
|
||||
"elementType": "geometry.fill",
|
||||
"stylers": [
|
||||
{
|
||||
"visibility": "off"
|
||||
},
|
||||
{
|
||||
"hue": "#008aff"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "landscape",
|
||||
"elementType": "all",
|
||||
"stylers": [
|
||||
{
|
||||
"color": "#f2f2f2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "poi",
|
||||
"elementType": "all",
|
||||
"stylers": [
|
||||
{
|
||||
"visibility": "off"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "road",
|
||||
"elementType": "all",
|
||||
"stylers": [
|
||||
{
|
||||
"saturation": -100
|
||||
},
|
||||
{
|
||||
"lightness": 45
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "road.highway",
|
||||
"elementType": "all",
|
||||
"stylers": [
|
||||
{
|
||||
"visibility": "simplified"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "road.arterial",
|
||||
"elementType": "labels.icon",
|
||||
"stylers": [
|
||||
{
|
||||
"visibility": "off"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "transit",
|
||||
"elementType": "all",
|
||||
"stylers": [
|
||||
{
|
||||
"visibility": "off"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"featureType": "water",
|
||||
"elementType": "all",
|
||||
"stylers": [
|
||||
{
|
||||
"color": "#bee0ee"
|
||||
},
|
||||
{
|
||||
"visibility": "on"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
o.googleMap({
|
||||
styles: styleArray,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
(jQuery);
|
||||
|
||||
/* WOW
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
var o = $('html');
|
||||
|
||||
if ((navigator.userAgent.toLowerCase().indexOf('msie') == -1 ) || (isIE() && isIE() > 9)) {
|
||||
if (o.hasClass('desktop')) {
|
||||
include('js/wow.js');
|
||||
|
||||
$(document).ready(function () {
|
||||
new WOW().init();
|
||||
});
|
||||
}
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
/* Contact Form
|
||||
========================================================*/
|
||||
;
|
||||
(function ($) {
|
||||
var o = $('#contact-form');
|
||||
if (o.length > 0) {
|
||||
include('js/modal.js');
|
||||
include('js/TMForm.js');
|
||||
|
||||
if($('#contact-form .recaptcha').length > 0){
|
||||
include('//www.google.com/recaptcha/api/js/recaptcha_ajax.js');
|
||||
}
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
/* Orientation tablet fix
|
||||
========================================================*/
|
||||
$(function () {
|
||||
// IPad/IPhone
|
||||
var viewportmeta = document.querySelector && document.querySelector('meta[name="viewport"]'),
|
||||
ua = navigator.userAgent,
|
||||
|
||||
gestureStart = function () {
|
||||
viewportmeta.content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6, initial-scale=1.0";
|
||||
},
|
||||
|
||||
scaleFix = function () {
|
||||
if (viewportmeta && /iPhone|iPad/.test(ua) && !/Opera Mini/.test(ua)) {
|
||||
viewportmeta.content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";
|
||||
document.addEventListener("gesturestart", gestureStart, false);
|
||||
}
|
||||
};
|
||||
|
||||
scaleFix();
|
||||
// Menu Android
|
||||
if (window.orientation != undefined) {
|
||||
var regM = /ipod|ipad|iphone/gi,
|
||||
result = ua.match(regM);
|
||||
if (!result) {
|
||||
$('.sf-menus li').each(function () {
|
||||
if ($(">ul", this)[0]) {
|
||||
$(">a", this).toggle(
|
||||
function () {
|
||||
return false;
|
||||
},
|
||||
function () {
|
||||
window.location.href = $(this).attr("href");
|
||||
}
|
||||
);
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
var ua = navigator.userAgent.toLocaleLowerCase(),
|
||||
regV = /ipod|ipad|iphone/gi,
|
||||
result = ua.match(regV),
|
||||
userScale = "";
|
||||
if (!result) {
|
||||
userScale = ",user-scalable=0"
|
||||
}
|
||||
document.write('<meta name="viewport" content="width=device-width,initial-scale=1.0' + userScale + '">');
|
||||
|
||||
@@ -0,0 +1,314 @@
|
||||
/*
|
||||
* jQuery Superfish Menu Plugin - v1.7.4
|
||||
* Copyright (c) 2013 Joel Birch
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*/
|
||||
|
||||
(function ($, window) {
|
||||
"use strict";
|
||||
|
||||
var methods = (function () {
|
||||
// private properties and methods go here
|
||||
var c = {
|
||||
bcClass: 'sf-breadcrumb',
|
||||
menuClass: 'sf-js-enabled',
|
||||
anchorClass: 'sf-with-ul',
|
||||
menuArrowClass: 'sf-arrows'
|
||||
},
|
||||
ios = (function () {
|
||||
var ios = /iPhone|iPad|iPod/i.test(navigator.userAgent);
|
||||
if (ios) {
|
||||
// iOS clicks only bubble as far as body children
|
||||
$(window).load(function () {
|
||||
$('body').children().on('click', $.noop);
|
||||
});
|
||||
}
|
||||
return ios;
|
||||
})(),
|
||||
wp7 = (function () {
|
||||
var style = document.documentElement.style;
|
||||
return ('behavior' in style && 'fill' in style && /iemobile/i.test(navigator.userAgent));
|
||||
})(),
|
||||
toggleMenuClasses = function ($menu, o) {
|
||||
var classes = c.menuClass;
|
||||
if (o.cssArrows) {
|
||||
classes += ' ' + c.menuArrowClass;
|
||||
}
|
||||
$menu.toggleClass(classes);
|
||||
},
|
||||
setPathToCurrent = function ($menu, o) {
|
||||
return $menu.find('li.' + o.pathClass).slice(0, o.pathLevels)
|
||||
.addClass(o.hoverClass + ' ' + c.bcClass)
|
||||
.filter(function () {
|
||||
return ($(this).children(o.popUpSelector).hide().show().length);
|
||||
}).removeClass(o.pathClass);
|
||||
},
|
||||
toggleAnchorClass = function ($li) {
|
||||
$li.children('a').toggleClass(c.anchorClass);
|
||||
},
|
||||
toggleTouchAction = function ($menu) {
|
||||
var touchAction = $menu.css('ms-touch-action');
|
||||
touchAction = (touchAction === 'pan-y') ? 'auto' : 'pan-y';
|
||||
$menu.css('ms-touch-action', touchAction);
|
||||
},
|
||||
applyHandlers = function ($menu, o) {
|
||||
var targets = 'li:has(' + o.popUpSelector + ')';
|
||||
if ($.fn.hoverIntent && !o.disableHI) {
|
||||
$menu.hoverIntent(over, out, targets);
|
||||
}
|
||||
else {
|
||||
$menu
|
||||
.on('mouseenter.superfish', targets, over)
|
||||
.on('mouseleave.superfish', targets, out);
|
||||
}
|
||||
var touchevent = 'MSPointerDown.superfish';
|
||||
if (!ios) {
|
||||
touchevent += ' touchend.superfish';
|
||||
}
|
||||
if (wp7) {
|
||||
touchevent += ' mousedown.superfish';
|
||||
}
|
||||
$menu
|
||||
.on('focusin.superfish', 'li', over)
|
||||
.on('focusout.superfish', 'li', out)
|
||||
.on(touchevent, 'a', o, touchHandler);
|
||||
},
|
||||
touchHandler = function (e) {
|
||||
var $this = $(this),
|
||||
$ul = $this.siblings(e.data.popUpSelector);
|
||||
|
||||
if ($ul.length > 0 && $ul.is(':hidden')) {
|
||||
$this.one('click.superfish', false);
|
||||
if (e.type === 'MSPointerDown') {
|
||||
$this.trigger('focus');
|
||||
} else {
|
||||
$.proxy(over, $this.parent('li'))();
|
||||
}
|
||||
}
|
||||
},
|
||||
over = function () {
|
||||
var $this = $(this),
|
||||
o = getOptions($this);
|
||||
clearTimeout(o.sfTimer);
|
||||
|
||||
$this.siblings().superfish('hide').end().superfish('show');
|
||||
},
|
||||
out = function () {
|
||||
var $this = $(this),
|
||||
o = getOptions($this);
|
||||
if (ios) {
|
||||
$.proxy(close, $this, o)();
|
||||
}
|
||||
else {
|
||||
clearTimeout(o.sfTimer);
|
||||
o.sfTimer = setTimeout($.proxy(close, $this, o), o.delay);
|
||||
}
|
||||
|
||||
},
|
||||
close = function (o) {
|
||||
o.retainPath = ($.inArray(this[0], o.$path) > -1);
|
||||
|
||||
this.superfish('hide');
|
||||
|
||||
if (!this.parents('.' + o.hoverClass).length) {
|
||||
o.onIdle.call(getMenu(this));
|
||||
if (o.$path.length) {
|
||||
$.proxy(over, o.$path)();
|
||||
}
|
||||
}
|
||||
},
|
||||
getMenu = function ($el) {
|
||||
return $el.closest('.' + c.menuClass);
|
||||
},
|
||||
getOptions = function ($el) {
|
||||
return getMenu($el).data('sf-options');
|
||||
},
|
||||
resizeBg = function () {
|
||||
if ($(window).width() > 767 && $.fn.superfish.defaults.fakeBg ) {
|
||||
var page = $($.fn.superfish.defaults.fakeBgLimiter);
|
||||
var obj = $('.sub-menu');
|
||||
|
||||
var offset = $(page).offset();
|
||||
|
||||
var x = offset.left;
|
||||
var x1 = $(obj).offset().left;
|
||||
var width = $(page).width();
|
||||
|
||||
$('.fake-bg').css(
|
||||
{
|
||||
left: (x - x1),
|
||||
width: width
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
// public methods
|
||||
hide: function (instant) {
|
||||
if (this.length) {
|
||||
var $this = this,
|
||||
o = getOptions($this);
|
||||
if (!o) {
|
||||
return this;
|
||||
}
|
||||
var not = (o.retainPath === true) ? o.$path : '',
|
||||
$ul = $this.find('li.' + o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector),
|
||||
speed = o.speedOut;
|
||||
|
||||
if (instant) {
|
||||
$ul.show();
|
||||
speed = 0;
|
||||
}
|
||||
o.retainPath = false;
|
||||
o.onBeforeHide.call($ul);
|
||||
|
||||
$ul.children('li').css({opacity: 0});
|
||||
|
||||
$ul.stop(true, true).animate(o.animationOut, {
|
||||
duration: speed,
|
||||
complete: function () {
|
||||
var $this = $(this);
|
||||
o.onHide.call($this);
|
||||
}
|
||||
});
|
||||
}
|
||||
return this;
|
||||
},
|
||||
show: function () {
|
||||
var o = getOptions(this);
|
||||
if (!o) {
|
||||
return this;
|
||||
}
|
||||
var $this = this.addClass(o.hoverClass),
|
||||
$ul = $this.children(o.popUpSelector);
|
||||
|
||||
o.onBeforeShow.call($ul);
|
||||
|
||||
$ul.stop(true, true).animate(o.animation, {
|
||||
duration: o.speed,
|
||||
step: function () {
|
||||
if ($(this).css('display') != 'none') {
|
||||
resizeBg();
|
||||
}
|
||||
},
|
||||
complete: function () {
|
||||
o.onShow.call($ul);
|
||||
$ul.children('li').animate({opacity: 1}, 'normal');
|
||||
}
|
||||
});
|
||||
return this;
|
||||
},
|
||||
destroy: function () {
|
||||
return this.each(function () {
|
||||
var $this = $(this),
|
||||
o = $this.data('sf-options'),
|
||||
$hasPopUp;
|
||||
if (!o) {
|
||||
return false;
|
||||
}
|
||||
$hasPopUp = $this.find(o.popUpSelector).parent('li');
|
||||
clearTimeout(o.sfTimer);
|
||||
toggleMenuClasses($this, o);
|
||||
toggleAnchorClass($hasPopUp);
|
||||
toggleTouchAction($this);
|
||||
// remove event handlers
|
||||
$this.off('.superfish').off('.hoverIntent');
|
||||
// clear animation's inline display style
|
||||
$hasPopUp.children(o.popUpSelector).attr('style', function (i, style) {
|
||||
return style.replace(/display[^;]+;?/g, '');
|
||||
});
|
||||
// reset 'current' path classes
|
||||
o.$path.removeClass(o.hoverClass + ' ' + c.bcClass).addClass(o.pathClass);
|
||||
$this.find('.' + o.hoverClass).removeClass(o.hoverClass);
|
||||
o.onDestroy.call($this);
|
||||
$this.removeData('sf-options');
|
||||
});
|
||||
},
|
||||
init: function (op) {
|
||||
if ($.fn.superfish.defaults.fakeBg) {
|
||||
$(window).on('resize', resizeBg);
|
||||
$(window).on('orientationchange', resizeBg);
|
||||
|
||||
$('.sub-menu').prepend('<div class="fake-bg"></div>');
|
||||
|
||||
resizeBg();
|
||||
}
|
||||
|
||||
return this.each(function () {
|
||||
var $this = $(this);
|
||||
if ($this.data('sf-options')) {
|
||||
return false;
|
||||
}
|
||||
var o = $.extend({}, $.fn.superfish.defaults, op),
|
||||
$hasPopUp = $this.find(o.popUpSelector).parent('li');
|
||||
o.$path = setPathToCurrent($this, o);
|
||||
|
||||
$this.data('sf-options', o);
|
||||
|
||||
toggleMenuClasses($this, o);
|
||||
toggleAnchorClass($hasPopUp);
|
||||
toggleTouchAction($this);
|
||||
applyHandlers($this, o);
|
||||
|
||||
$hasPopUp.not('.' + c.bcClass).superfish('hide', true);
|
||||
|
||||
o.onInit.call(this);
|
||||
});
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
$.fn.superfish = function (method, args) {
|
||||
if (methods[method]) {
|
||||
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
|
||||
}
|
||||
else if (typeof method === 'object' || !method) {
|
||||
|
||||
return methods.init.apply(this, arguments);
|
||||
}
|
||||
else {
|
||||
return $.error('Method ' + method + ' does not exist on jQuery.fn.superfish');
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.superfish.defaults = {
|
||||
popUpSelector: 'ul,.sf-mega', // within menus context
|
||||
hoverClass: 'sfHover',
|
||||
pathClass: 'overrideThisToUse',
|
||||
fakeBg: false,
|
||||
fakeBgLimiter: '.page',
|
||||
pathLevels: 1,
|
||||
delay: 800,
|
||||
animation: {height: 'show'},
|
||||
animationOut: {height: 'hide'},
|
||||
speed: 'normal',
|
||||
speedOut: 'fast',
|
||||
cssArrows: true,
|
||||
disableHI: false,
|
||||
onInit: $.noop,
|
||||
onBeforeShow: $.noop,
|
||||
onShow: $.noop,
|
||||
onBeforeHide: $.noop,
|
||||
onHide: $.noop,
|
||||
onIdle: $.noop,
|
||||
onDestroy: $.noop
|
||||
};
|
||||
|
||||
// soon to be deprecated
|
||||
$.fn.extend({
|
||||
hideSuperfishUl: methods.hide,
|
||||
showSuperfishUl: methods.show
|
||||
});
|
||||
|
||||
})(jQuery, window);
|
||||
|
||||
|
||||
$(window).load(function () {
|
||||
$('.sf-menu').superfish();
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
(function($,undefined){
|
||||
var
|
||||
def={
|
||||
stuckClass:'isStuck'
|
||||
}
|
||||
,doc=$(document),anim = false;
|
||||
|
||||
$.fn.TMStickUp=function(opt){
|
||||
opt=$.extend(true,{},def,opt)
|
||||
|
||||
$(this).each(function(){
|
||||
var $this=$(this)
|
||||
,posY//=$this.offset().top+$this.outerHeight()
|
||||
,isStuck=false
|
||||
,clone=$this.clone().appendTo($this.parent()).addClass(opt.stuckClass)
|
||||
,height//=$this.outerHeight()
|
||||
,stuckedHeight=clone.outerHeight()
|
||||
,opened//=$.cookie&&$.cookie('panel1')==='opened'
|
||||
,tmr
|
||||
|
||||
$(window).resize(function(){
|
||||
clearTimeout(tmr)
|
||||
clone.css({top:isStuck?0:-stuckedHeight,visibility:isStuck?'visible':'hidden'})
|
||||
tmr=setTimeout(function(){
|
||||
posY=$this.offset().top//+$this.outerHeight()
|
||||
height=$this.outerHeight()
|
||||
stuckedHeight=clone.outerHeight()
|
||||
opened=$.cookie&&$.cookie('panel1')==='opened'
|
||||
|
||||
clone.css({top:isStuck?0:-stuckedHeight})
|
||||
},40)
|
||||
}).resize()
|
||||
|
||||
clone.css({
|
||||
position:'fixed'
|
||||
,width:'100%'
|
||||
})
|
||||
|
||||
$this
|
||||
.on('rePosition',function(e,d){
|
||||
if(isStuck)
|
||||
clone.animate({marginTop:d},{easing:'linear'})
|
||||
if(d===0)
|
||||
opened=false
|
||||
else
|
||||
opened=true
|
||||
})
|
||||
|
||||
doc
|
||||
.on('scroll',function(){
|
||||
var scrollTop=doc.scrollTop()
|
||||
|
||||
if(scrollTop>=posY&&!isStuck){
|
||||
clone
|
||||
.stop()
|
||||
.css({visibility:'visible'})
|
||||
.animate({
|
||||
top:0
|
||||
,marginTop:opened?50:0
|
||||
},{
|
||||
|
||||
})
|
||||
|
||||
isStuck=true
|
||||
}
|
||||
|
||||
if(scrollTop<posY+height&&isStuck){
|
||||
$('.sf-menu ul').css('display', 'none');
|
||||
|
||||
var sf = $('.search-form');
|
||||
if(sf.length > 0){
|
||||
sf.find('input').blur();
|
||||
}
|
||||
|
||||
clone
|
||||
.stop()
|
||||
.animate({
|
||||
top:-stuckedHeight
|
||||
,marginTop:0
|
||||
},{
|
||||
duration:200
|
||||
,complete:function(){
|
||||
clone.css({visibility:'hidden'})
|
||||
}
|
||||
});
|
||||
|
||||
isStuck=false;
|
||||
|
||||
}
|
||||
})
|
||||
.trigger('scroll')
|
||||
})
|
||||
}
|
||||
})(jQuery)
|
||||
@@ -0,0 +1,388 @@
|
||||
(function() {
|
||||
var MutationObserver, Util, WeakMap,
|
||||
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
|
||||
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
|
||||
|
||||
Util = (function() {
|
||||
function Util() {}
|
||||
|
||||
Util.prototype.extend = function(custom, defaults) {
|
||||
var key, value;
|
||||
for (key in custom) {
|
||||
value = custom[key];
|
||||
if (value != null) {
|
||||
defaults[key] = value;
|
||||
}
|
||||
}
|
||||
return defaults;
|
||||
};
|
||||
|
||||
Util.prototype.isMobile = function(agent) {
|
||||
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(agent);
|
||||
};
|
||||
|
||||
return Util;
|
||||
|
||||
})();
|
||||
|
||||
WeakMap = this.WeakMap || this.MozWeakMap || (WeakMap = (function() {
|
||||
function WeakMap() {
|
||||
this.keys = [];
|
||||
this.values = [];
|
||||
}
|
||||
|
||||
WeakMap.prototype.get = function(key) {
|
||||
var i, item, _i, _len, _ref;
|
||||
_ref = this.keys;
|
||||
for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
|
||||
item = _ref[i];
|
||||
if (item === key) {
|
||||
return this.values[i];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
WeakMap.prototype.set = function(key, value) {
|
||||
var i, item, _i, _len, _ref;
|
||||
_ref = this.keys;
|
||||
for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
|
||||
item = _ref[i];
|
||||
if (item === key) {
|
||||
this.values[i] = value;
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.keys.push(key);
|
||||
return this.values.push(value);
|
||||
};
|
||||
|
||||
return WeakMap;
|
||||
|
||||
})());
|
||||
|
||||
MutationObserver = this.MutationObserver || this.WebkitMutationObserver || this.MozMutationObserver || (MutationObserver = (function() {
|
||||
function MutationObserver() {
|
||||
console.warn('MutationObserver is not supported by your browser.');
|
||||
console.warn('WOW.js cannot detect dom mutations, please call .sync() after loading new content.');
|
||||
}
|
||||
|
||||
MutationObserver.notSupported = true;
|
||||
|
||||
MutationObserver.prototype.observe = function() {};
|
||||
|
||||
return MutationObserver;
|
||||
|
||||
})());
|
||||
|
||||
this.WOW = (function() {
|
||||
WOW.prototype.defaults = {
|
||||
boxClass: 'wow',
|
||||
animateClass: 'animated',
|
||||
offset: 0,
|
||||
mobile: true,
|
||||
live: true
|
||||
};
|
||||
|
||||
function WOW(options) {
|
||||
if (options == null) {
|
||||
options = {};
|
||||
}
|
||||
this.scrollCallback = __bind(this.scrollCallback, this);
|
||||
this.scrollHandler = __bind(this.scrollHandler, this);
|
||||
this.start = __bind(this.start, this);
|
||||
this.scrolled = true;
|
||||
this.config = this.util().extend(options, this.defaults);
|
||||
this.animationNameCache = new WeakMap();
|
||||
}
|
||||
|
||||
WOW.prototype.init = function() {
|
||||
var _ref;
|
||||
this.element = window.document.documentElement;
|
||||
if ((_ref = document.readyState) === "interactive" || _ref === "complete") {
|
||||
this.start();
|
||||
} else {
|
||||
document.addEventListener('DOMContentLoaded', this.start);
|
||||
}
|
||||
return this.finished = [];
|
||||
};
|
||||
|
||||
WOW.prototype.start = function() {
|
||||
var box, _i, _len, _ref;
|
||||
this.stopped = false;
|
||||
this.boxes = this.element.getElementsByClassName(this.config.boxClass);
|
||||
this.all = (function() {
|
||||
var _i, _len, _ref, _results;
|
||||
_ref = this.boxes;
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
_results.push(box);
|
||||
}
|
||||
return _results;
|
||||
}).call(this);
|
||||
if (this.boxes.length) {
|
||||
if (this.disabled()) {
|
||||
this.resetStyle();
|
||||
} else {
|
||||
_ref = this.boxes;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
this.applyStyle(box, true);
|
||||
}
|
||||
window.addEventListener('scroll', this.scrollHandler, false);
|
||||
window.addEventListener('resize', this.scrollHandler, false);
|
||||
this.interval = setInterval(this.scrollCallback, 50);
|
||||
}
|
||||
}
|
||||
if (this.config.live) {
|
||||
return new MutationObserver((function(_this) {
|
||||
return function(records) {
|
||||
var node, record, _j, _len1, _results;
|
||||
_results = [];
|
||||
for (_j = 0, _len1 = records.length; _j < _len1; _j++) {
|
||||
record = records[_j];
|
||||
_results.push((function() {
|
||||
var _k, _len2, _ref1, _results1;
|
||||
_ref1 = record.addedNodes || [];
|
||||
_results1 = [];
|
||||
for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) {
|
||||
node = _ref1[_k];
|
||||
_results1.push(this.doSync(node));
|
||||
}
|
||||
return _results1;
|
||||
}).call(_this));
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
})(this)).observe(document.body, {
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.stop = function() {
|
||||
this.stopped = true;
|
||||
window.removeEventListener('scroll', this.scrollHandler, false);
|
||||
window.removeEventListener('resize', this.scrollHandler, false);
|
||||
if (this.interval != null) {
|
||||
return clearInterval(this.interval);
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.sync = function(element) {
|
||||
if (MutationObserver.notSupported) {
|
||||
return this.doSync(this.element);
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.doSync = function(element) {
|
||||
var box, _i, _len, _ref, _results;
|
||||
if (!this.stopped) {
|
||||
element || (element = this.element);
|
||||
element = element.parentNode || element;
|
||||
_ref = element.getElementsByClassName(this.config.boxClass);
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
if (__indexOf.call(this.all, box) < 0) {
|
||||
this.applyStyle(box, true);
|
||||
this.boxes.push(box);
|
||||
this.all.push(box);
|
||||
_results.push(this.scrolled = true);
|
||||
} else {
|
||||
_results.push(void 0);
|
||||
}
|
||||
}
|
||||
return _results;
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.show = function(box) {
|
||||
this.applyStyle(box);
|
||||
return box.className = "" + box.className + " " + this.config.animateClass;
|
||||
};
|
||||
|
||||
WOW.prototype.applyStyle = function(box, hidden) {
|
||||
var delay, duration, iteration;
|
||||
duration = box.getAttribute('data-wow-duration');
|
||||
delay = box.getAttribute('data-wow-delay');
|
||||
iteration = box.getAttribute('data-wow-iteration');
|
||||
return this.animate((function(_this) {
|
||||
return function() {
|
||||
return _this.customStyle(box, hidden, duration, delay, iteration);
|
||||
};
|
||||
})(this));
|
||||
};
|
||||
|
||||
WOW.prototype.animate = (function() {
|
||||
if ('requestAnimationFrame' in window) {
|
||||
return function(callback) {
|
||||
return window.requestAnimationFrame(callback);
|
||||
};
|
||||
} else {
|
||||
return function(callback) {
|
||||
return callback();
|
||||
};
|
||||
}
|
||||
})();
|
||||
|
||||
WOW.prototype.resetStyle = function() {
|
||||
var box, _i, _len, _ref, _results;
|
||||
_ref = this.boxes;
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
_results.push(box.setAttribute('style', 'visibility: visible;'));
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
WOW.prototype.customStyle = function(box, hidden, duration, delay, iteration) {
|
||||
if (hidden) {
|
||||
this.cacheAnimationName(box);
|
||||
}
|
||||
box.style.visibility = hidden ? 'hidden' : 'visible';
|
||||
if (duration) {
|
||||
this.vendorSet(box.style, {
|
||||
animationDuration: duration
|
||||
});
|
||||
}
|
||||
if (delay) {
|
||||
this.vendorSet(box.style, {
|
||||
animationDelay: delay
|
||||
});
|
||||
}
|
||||
if (iteration) {
|
||||
this.vendorSet(box.style, {
|
||||
animationIterationCount: iteration
|
||||
});
|
||||
}
|
||||
this.vendorSet(box.style, {
|
||||
animationName: hidden ? 'none' : this.cachedAnimationName(box)
|
||||
});
|
||||
return box;
|
||||
};
|
||||
|
||||
WOW.prototype.vendors = ["moz", "webkit"];
|
||||
|
||||
WOW.prototype.vendorSet = function(elem, properties) {
|
||||
var name, value, vendor, _results;
|
||||
_results = [];
|
||||
for (name in properties) {
|
||||
value = properties[name];
|
||||
elem["" + name] = value;
|
||||
_results.push((function() {
|
||||
var _i, _len, _ref, _results1;
|
||||
_ref = this.vendors;
|
||||
_results1 = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
vendor = _ref[_i];
|
||||
_results1.push(elem["" + vendor + (name.charAt(0).toUpperCase()) + (name.substr(1))] = value);
|
||||
}
|
||||
return _results1;
|
||||
}).call(this));
|
||||
}
|
||||
return _results;
|
||||
};
|
||||
|
||||
WOW.prototype.vendorCSS = function(elem, property) {
|
||||
var result, style, vendor, _i, _len, _ref;
|
||||
style = window.getComputedStyle(elem);
|
||||
result = style.getPropertyCSSValue(property);
|
||||
_ref = this.vendors;
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
vendor = _ref[_i];
|
||||
result = result || style.getPropertyCSSValue("-" + vendor + "-" + property);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
WOW.prototype.animationName = function(box) {
|
||||
var animationName;
|
||||
try {
|
||||
animationName = this.vendorCSS(box, 'animation-name').cssText;
|
||||
} catch (_error) {
|
||||
animationName = window.getComputedStyle(box).getPropertyValue('animation-name');
|
||||
}
|
||||
if (animationName === 'none') {
|
||||
return '';
|
||||
} else {
|
||||
return animationName;
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.cacheAnimationName = function(box) {
|
||||
return this.animationNameCache.set(box, this.animationName(box));
|
||||
};
|
||||
|
||||
WOW.prototype.cachedAnimationName = function(box) {
|
||||
return this.animationNameCache.get(box);
|
||||
};
|
||||
|
||||
WOW.prototype.scrollHandler = function() {
|
||||
return this.scrolled = true;
|
||||
};
|
||||
|
||||
WOW.prototype.scrollCallback = function() {
|
||||
var box;
|
||||
if (this.scrolled) {
|
||||
this.scrolled = false;
|
||||
this.boxes = (function() {
|
||||
var _i, _len, _ref, _results;
|
||||
_ref = this.boxes;
|
||||
_results = [];
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
box = _ref[_i];
|
||||
if (!(box)) {
|
||||
continue;
|
||||
}
|
||||
if (this.isVisible(box)) {
|
||||
this.show(box);
|
||||
continue;
|
||||
}
|
||||
_results.push(box);
|
||||
}
|
||||
return _results;
|
||||
}).call(this);
|
||||
if (!(this.boxes.length || this.config.live)) {
|
||||
return this.stop();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
WOW.prototype.offsetTop = function(element) {
|
||||
var top;
|
||||
while (element.offsetTop === void 0) {
|
||||
element = element.parentNode;
|
||||
}
|
||||
top = element.offsetTop;
|
||||
while (element = element.offsetParent) {
|
||||
top += element.offsetTop;
|
||||
}
|
||||
return top;
|
||||
};
|
||||
|
||||
WOW.prototype.isVisible = function(box) {
|
||||
var bottom, offset, top, viewBottom, viewTop;
|
||||
offset = box.getAttribute('data-wow-offset') || this.config.offset;
|
||||
viewTop = window.pageYOffset;
|
||||
viewBottom = viewTop + this.element.clientHeight - offset;
|
||||
top = this.offsetTop(box);
|
||||
bottom = top + box.clientHeight;
|
||||
return top <= viewBottom && bottom >= viewTop;
|
||||
};
|
||||
|
||||
WOW.prototype.util = function() {
|
||||
return this._util || (this._util = new Util());
|
||||
};
|
||||
|
||||
WOW.prototype.disabled = function() {
|
||||
return !this.config.mobile && this.util().isMobile(navigator.userAgent);
|
||||
};
|
||||
|
||||
return WOW;
|
||||
|
||||
})();
|
||||
|
||||
}).call(this);
|
||||
@@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>UTM analytics · Portal · T.R.B. Painting</title>
|
||||
<link rel="stylesheet" href="assets/css/ux-hub.css">
|
||||
</head>
|
||||
<body class="portal theme-paint">
|
||||
<div class="proposal-banner">
|
||||
<div><span class="tag">Proposal mockup</span> T.R.B. Painting — UX examples (not production)</div>
|
||||
<div><a href="ux-gallery.html">All screens</a> · <a href="pricing.html">Pricing</a></div>
|
||||
</div>
|
||||
<div class="portal-shell">
|
||||
<aside class="portal-sidebar">
|
||||
<a class="portal-brand" href="portal-dashboard.html">T.R.B. Painting<span>Client portal</span></a>
|
||||
<nav class="portal-nav">
|
||||
<div class="nav-section">Overview</div>
|
||||
<a class="" href="portal-dashboard.html">Dashboard</a>
|
||||
<a class="" href="portal-leads.html">Leads</a>
|
||||
<a class="active" href="portal-analytics.html">UTM analytics</a>
|
||||
<div class="nav-section">Email & SMS</div>
|
||||
<a class="" href="portal-contacts.html">Mailing list</a>
|
||||
<a class="" href="portal-campaign.html">Campaigns</a>
|
||||
<a class="" href="portal-campaign-report.html">Engagement</a>
|
||||
<div class="nav-section">Direct mail</div>
|
||||
<a class="" href="portal-postcard-designer.html">Postcard design</a>
|
||||
<a class="" href="portal-direct-mail.html">Mail campaigns</a>
|
||||
<div class="nav-section">Blog</div>
|
||||
<a class="" href="portal-blog.html">Posts</a>
|
||||
<div class="nav-section">Payments</div>
|
||||
<a class="" href="portal-invoices.html">Invoices</a>
|
||||
<div class="nav-section">Social</div>
|
||||
<a class="" href="portal-social.html">Compose</a>
|
||||
<a class="" href="portal-social-calendar.html">Calendar</a>
|
||||
<a class="" href="portal-social-accounts.html">Accounts</a>
|
||||
<a class="" href="portal-social-ai.html">AI generator</a>
|
||||
</nav>
|
||||
</aside>
|
||||
<div class="portal-main">
|
||||
<div class="portal-topbar">
|
||||
<h1>UTM analytics</h1>
|
||||
<div class="portal-user">Signed in as <strong>Bill</strong> · <a href="portal-login.html">Sign out</a></div>
|
||||
</div>
|
||||
<div class="portal-content">
|
||||
<div class="proposal-note"><strong>UX note:</strong> Included with every client portal — leads by source/campaign over time.</div>
|
||||
|
||||
<div class="stat-row">
|
||||
<div class="stat-card"><div class="label">Leads (30d)</div><div class="value">42</div><div class="delta">+12% vs prior</div></div>
|
||||
<div class="stat-card"><div class="label">Top source</div><div class="value" style="font-size:18px;margin-top:10px">Google</div><div class="delta">18 leads</div></div>
|
||||
<div class="stat-card"><div class="label">Top campaign</div><div class="value" style="font-size:18px;margin-top:10px">spring-promo</div><div class="delta">11 leads</div></div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>Leads by week</h2></div>
|
||||
<div class="panel-b"><div class="chart-ph"><div class="bar" style="height:40%"></div><div class="bar" style="height:65%"></div><div class="bar" style="height:35%"></div><div class="bar" style="height:80%"></div><div class="bar" style="height:55%"></div><div class="bar" style="height:70%"></div><div class="bar" style="height:90%"></div></div></div>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>By source / campaign</h2></div>
|
||||
<div class="panel-b" style="padding:0">
|
||||
<table class="table">
|
||||
<thead><tr><th>Source</th><th>Campaign</th><th>Leads</th><th>Won</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>google</td><td>emergency</td><td>12</td><td>3</td></tr>
|
||||
<tr><td>facebook</td><td>spring-promo</td><td>11</td><td>2</td></tr>
|
||||
<tr><td>direct</td><td>(none)</td><td>9</td><td>4</td></tr>
|
||||
<tr><td>postcard</td><td>march-mailer</td><td>6</td><td>1</td></tr>
|
||||
<tr><td>yelp</td><td>profile</td><td>4</td><td>1</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<p class="aiml-site-credit">Made by <a href="https://aimloperations.com" rel="noopener noreferrer" target="_blank">AI ML Operations, LLC</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,68 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Blog editor · Portal · T.R.B. Painting</title>
|
||||
<link rel="stylesheet" href="assets/css/ux-hub.css">
|
||||
</head>
|
||||
<body class="portal theme-paint">
|
||||
<div class="proposal-banner">
|
||||
<div><span class="tag">Proposal mockup</span> T.R.B. Painting — UX examples (not production)</div>
|
||||
<div><a href="ux-gallery.html">All screens</a> · <a href="pricing.html">Pricing</a></div>
|
||||
</div>
|
||||
<div class="portal-shell">
|
||||
<aside class="portal-sidebar">
|
||||
<a class="portal-brand" href="portal-dashboard.html">T.R.B. Painting<span>Client portal</span></a>
|
||||
<nav class="portal-nav">
|
||||
<div class="nav-section">Overview</div>
|
||||
<a class="" href="portal-dashboard.html">Dashboard</a>
|
||||
<a class="" href="portal-leads.html">Leads</a>
|
||||
<a class="" href="portal-analytics.html">UTM analytics</a>
|
||||
<div class="nav-section">Email & SMS</div>
|
||||
<a class="" href="portal-contacts.html">Mailing list</a>
|
||||
<a class="" href="portal-campaign.html">Campaigns</a>
|
||||
<a class="" href="portal-campaign-report.html">Engagement</a>
|
||||
<div class="nav-section">Direct mail</div>
|
||||
<a class="" href="portal-postcard-designer.html">Postcard design</a>
|
||||
<a class="" href="portal-direct-mail.html">Mail campaigns</a>
|
||||
<div class="nav-section">Blog</div>
|
||||
<a class="active" href="portal-blog.html">Posts</a>
|
||||
<div class="nav-section">Payments</div>
|
||||
<a class="" href="portal-invoices.html">Invoices</a>
|
||||
<div class="nav-section">Social</div>
|
||||
<a class="" href="portal-social.html">Compose</a>
|
||||
<a class="" href="portal-social-calendar.html">Calendar</a>
|
||||
<a class="" href="portal-social-accounts.html">Accounts</a>
|
||||
<a class="" href="portal-social-ai.html">AI generator</a>
|
||||
</nav>
|
||||
</aside>
|
||||
<div class="portal-main">
|
||||
<div class="portal-topbar">
|
||||
<h1>Blog editor</h1>
|
||||
<div class="portal-user">Signed in as <strong>Bill</strong> · <a href="portal-login.html">Sign out</a></div>
|
||||
</div>
|
||||
<div class="portal-content">
|
||||
<div class="proposal-note"><strong>UX note:</strong> Create and edit posts; publish or keep as draft.</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>Edit post</h2>
|
||||
<div><button class="btn btn-sm btn-ghost" type="button">Save draft</button>
|
||||
<button class="btn btn-sm btn-primary" type="button">Publish</button></div>
|
||||
</div>
|
||||
<div class="panel-b form-grid">
|
||||
<div class="field"><label>Title</label><input value="Trim painting tips that last"></div>
|
||||
<div class="field"><label>Slug</label><input value="trim-painting-tips-that-last"></div>
|
||||
<div class="field"><label>Excerpt</label><textarea style="min-height:60px">Prep and cut-in habits that keep baseboards crisp.</textarea></div>
|
||||
<div class="field"><label>Body</label><textarea style="min-height:180px">Customers often wait too long. Here's what to watch for…
|
||||
|
||||
(Mock editor — production uses a rich text field.)</textarea></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<p class="aiml-site-credit">Made by <a href="https://aimloperations.com" rel="noopener noreferrer" target="_blank">AI ML Operations, LLC</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Blog list · Portal · T.R.B. Painting</title>
|
||||
<link rel="stylesheet" href="assets/css/ux-hub.css">
|
||||
</head>
|
||||
<body class="portal theme-paint">
|
||||
<div class="proposal-banner">
|
||||
<div><span class="tag">Proposal mockup</span> T.R.B. Painting — UX examples (not production)</div>
|
||||
<div><a href="ux-gallery.html">All screens</a> · <a href="pricing.html">Pricing</a></div>
|
||||
</div>
|
||||
<div class="portal-shell">
|
||||
<aside class="portal-sidebar">
|
||||
<a class="portal-brand" href="portal-dashboard.html">T.R.B. Painting<span>Client portal</span></a>
|
||||
<nav class="portal-nav">
|
||||
<div class="nav-section">Overview</div>
|
||||
<a class="" href="portal-dashboard.html">Dashboard</a>
|
||||
<a class="" href="portal-leads.html">Leads</a>
|
||||
<a class="" href="portal-analytics.html">UTM analytics</a>
|
||||
<div class="nav-section">Email & SMS</div>
|
||||
<a class="" href="portal-contacts.html">Mailing list</a>
|
||||
<a class="" href="portal-campaign.html">Campaigns</a>
|
||||
<a class="" href="portal-campaign-report.html">Engagement</a>
|
||||
<div class="nav-section">Direct mail</div>
|
||||
<a class="" href="portal-postcard-designer.html">Postcard design</a>
|
||||
<a class="" href="portal-direct-mail.html">Mail campaigns</a>
|
||||
<div class="nav-section">Blog</div>
|
||||
<a class="active" href="portal-blog.html">Posts</a>
|
||||
<div class="nav-section">Payments</div>
|
||||
<a class="" href="portal-invoices.html">Invoices</a>
|
||||
<div class="nav-section">Social</div>
|
||||
<a class="" href="portal-social.html">Compose</a>
|
||||
<a class="" href="portal-social-calendar.html">Calendar</a>
|
||||
<a class="" href="portal-social-accounts.html">Accounts</a>
|
||||
<a class="" href="portal-social-ai.html">AI generator</a>
|
||||
</nav>
|
||||
</aside>
|
||||
<div class="portal-main">
|
||||
<div class="portal-topbar">
|
||||
<h1>Blog list</h1>
|
||||
<div class="portal-user">Signed in as <strong>Bill</strong> · <a href="portal-login.html">Sign out</a></div>
|
||||
</div>
|
||||
<div class="portal-content">
|
||||
<div class="proposal-note"><strong>UX note:</strong> Client manages drafts and published posts.</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-h"><h2>Blog posts</h2><a class="btn btn-sm btn-primary" href="portal-blog-edit.html">New post</a></div>
|
||||
<div class="panel-b" style="padding:0">
|
||||
<table class="table"><thead><tr><th>Title</th><th>Date</th><th>Status</th></tr></thead><tbody><tr><td><a href="portal-blog-edit.html">Trim painting tips that last</a></td><td>Mar 10, 2026</td><td><span class="badge badge-won">Published</span></td></tr><tr><td><a href="portal-blog-edit.html">Cabinet paint vs refinish</a></td><td>Feb 20, 2026</td><td><span class="badge badge-draft">Draft</span></td></tr><tr><td><a href="portal-blog-edit.html">Choosing white without regret</a></td><td>Jan 8, 2026</td><td><span class="badge badge-draft">Draft</span></td></tr></tbody></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<p class="aiml-site-credit">Made by <a href="https://aimloperations.com" rel="noopener noreferrer" target="_blank">AI ML Operations, LLC</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||