diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..befb7d73 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,41 @@ +# Javascript Node CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-javascript/ for more details +# +version: 2 +jobs: + build: + docker: + # specify the version you desire here + - image: circleci/node:10.15 + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + # - image: circleci/mongo:3.4.4 + + working_directory: ~/repo + + steps: + - checkout + + # Download and cache dependencies + - restore_cache: + keys: + - v1-dependencies-{{ checksum "package.json" }} + # fallback to using the latest cache if no exact match is found + - v1-dependencies- + + - run: npm install + + - save_cache: + paths: + - node_modules + key: v1-dependencies-{{ checksum "package.json" }} + + - run: npm run init-config + + # run tests! + - run: npm test + + diff --git a/.gitignore b/.gitignore index 2f0fef82..a3c7a972 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ /node_modules -/public/components .idea/ .c9/ -/data/storage.json +/data/ /app/config/config.json -.DS_Store \ No newline at end of file +.DS_Store +public/css/app.css diff --git a/README.md b/README.md index 19abcf2e..d8657a65 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,14 @@ ## About -This is an ExpressJS-based application that provides a simple form for users to sign up to a Secret Santa mailing group. +This is an Express-based application that provides a simple form for users to sign up to a Secret Santa mailing group. The host can then login and send out the emails, one per person, telling each person who they need to buy a gift for. +Build Status: [![CircleCI](https://circleci.com/gh/cloakedninjas/secret-santa/tree/master.svg?style=shield)](https://circleci.com/gh/cloakedninjas/secret-santa/tree/master) + ## Installation - $ git clone https://github.com/cloakedninjas/secret-santa.git --depth 1 +`$ git clone https://github.com/cloakedninjas/secret-santa.git --depth 1` ## Usage @@ -16,8 +18,7 @@ admin password as well as the default secrets for Session and Cookie storage. Run the server using: - $ cd secret-santa - $ node index.js +`$ npm start` ## Config @@ -31,37 +32,27 @@ The password to access the admin page located at `/admin` **deadline** -Your chosen deadline, appear on the top left of the screen +Your chosen deadline, appears on the top left of the screen **spend-limit** -Your chosen purchase allowance, appear on the top left of the screen +Your chosen purchase allowance, appears on the top left of the screen **email-server** -Configure the email server to send out emails to the participants. Can be either an SMTP server or Mailgun (https://mailgun.com) - -If you use Mailgun, `api-key` and `domain` are required: +Currently only Send Grid (https://sendgrid.com/) is supported, sign up for a trial account to send free emails. +Then paste your API key into the config - "email-server": { - "type": "mailgun", - "api-key": "key-abc123def456", - "domain": "sandboxabc123def456.mailgun.org", - "from-address": "santa@example.com" - } - -If you choose SMTP, you need to pass in config options to Nodemailer (http://nodemailer.com) via `options`. Here is a sample config: - - "email-server": { - "type": "smtp", - "options": { - "service": "Gmail", - "auth": { - "user": "gmail.user@gmail.com", - "pass": "userpass" - } - } +``` +"email-server": { + "type": "sendgrid", + "from-address": "santa@example.com", + + "options": { + "api-key": "abc-123" } +} +``` **cookie-secret** @@ -69,4 +60,18 @@ Used for Express's cookie parser middleware **session-secret** -Used for Express's session middleware \ No newline at end of file +Used for Express's session middleware + +## Customizing + +All templates (including the email) are stored in `app/views`, and are fully customizable. + +- `layout.ejs` is the main template +- `index.ejs` is what users will see when they register + +## Other commands + +`npm run ` +- `test` runs tests +- `lint` runs eslint over code +- `css` build and minifies the CSS diff --git a/app/adapters/mailgun.js b/app/adapters/mailgun.js new file mode 100644 index 00000000..65b3dba3 --- /dev/null +++ b/app/adapters/mailgun.js @@ -0,0 +1 @@ +// todo diff --git a/app/adapters/send-grid.js b/app/adapters/send-grid.js new file mode 100644 index 00000000..b6e1cd2f --- /dev/null +++ b/app/adapters/send-grid.js @@ -0,0 +1,16 @@ +const sgMail = require('@sendgrid/mail'); + +module.exports = class SendGridAdapter { + constructor (opts, fromAddress) { + this.fromAddress = fromAddress; + sgMail.setApiKey(opts['api-key']); + } + + send (messages) { + messages.forEach((message) => { + message.from = this.fromAddress; + }); + + return sgMail.sendMultiple(messages); + } +}; diff --git a/app/adapters/send-grid.test.js b/app/adapters/send-grid.test.js new file mode 100644 index 00000000..b02729f7 --- /dev/null +++ b/app/adapters/send-grid.test.js @@ -0,0 +1,51 @@ +const sinon = require('sinon'); +const expect = require('chai').expect; +const sgMail = require('@sendgrid/mail'); +const SendGridAdapter = require('../adapters/send-grid'); + +describe('SendGridAdapter', () => { + let sandbox; + + beforeEach(() => { + sandbox = sinon.createSandbox(); + }); + + afterEach(() => { + sandbox.restore(); + }); + + describe('constructor()', () => { + it('should set the API key', () => { + const stub = sandbox.stub(sgMail, 'setApiKey'); + + new SendGridAdapter({ + 'api-key': 'test-123' + }, ''); + + expect(stub.calledWith('test-123')).to.equal(true); + }); + }); + + describe('send()', () => { + it('should send messages', () => { + const stub = sandbox.stub(sgMail, 'sendMultiple'); + + const adapter = new SendGridAdapter({ + 'api-key': 'test-123' + }, 'sender@test.com'); + + adapter.send([ + { + to: 'test@example.com' + } + ]); + + expect(stub.calledWith([ + { + to: 'test@example.com', + from: 'sender@test.com' + } + ])).to.equal(true); + }); + }); +}); diff --git a/app/config/default.json b/app/config/default.json index 540b00df..cf81260e 100644 --- a/app/config/default.json +++ b/app/config/default.json @@ -1,15 +1,18 @@ { "title": "Node Secret Santa", - "signup-password": false, "admin-password": "asda", "deadline": "Dec 5th", "spend-limit": "$50", "email-server": { - "type": "mailgun" + "type": "sendgrid", + "from-address": "santa@thenorthpole.com", + + "options": { + "api-key": "REPLACE_ME" + } }, "cookie-secret": "xxxdsfsdfyyyzzz111", "session-secret": "zzzxsdfsdfxxcccc222" - -} \ No newline at end of file +} diff --git a/app/controllers/admin.js b/app/controllers/admin.js new file mode 100644 index 00000000..f45c423d --- /dev/null +++ b/app/controllers/admin.js @@ -0,0 +1,31 @@ +const express = require('express'); +const app = require('../lib/app'); + +const router = new express.Router(); + +router.use(app.ensureLoggedIn); + +router.get('/', (req, res) => { + const storage = app.getStorage(); + + res.render('admin', { + subscribers: storage.subscribers, + alreadySent: app.haveEmailsAlreadySent() + }); +}); + +router.post('/create-send', (req, res) => { + const list = app.createAndSendEmails(); + res.render('admin-review-send', { + recipients: list + }); +}); + +router.post('/re-send', (req, res) => { + const list = app.resendRecipientList(); + res.render('admin-review-send', { + recipients: list + }); +}); + +module.exports = router; diff --git a/app/controllers/index.js b/app/controllers/index.js new file mode 100644 index 00000000..e52852ed --- /dev/null +++ b/app/controllers/index.js @@ -0,0 +1,42 @@ +const express = require('express'); +const app = require('../lib/app'); +const config = app.getConfig(); +const router = new express.Router(); + +router.get('/', function (req, res) { + res.render('index', { + title: config.title, + deadline: config.deadline, + spendLimit: config['spend-limit'] + }); +}); + +router.post('/save', function (req, res) { + app.addSubscriber({ + name: req.body.name, + email: req.body.email, + colour: req.body.colour, + animal: req.body.animal, + idea: req.body.idea + }); + + res.render('registered'); +}); + +router.get('/login', app.ensureLoggedIn, function (req, res) { + res.render('login'); +}); + +router.post('/login', app.ensureLoggedIn, function (req, res, next) { + if (req.body.password === config['admin-password']) { + app.initSession(req, res); + res.redirect('/admin'); + next(); + } else { + res.render('login', { + error: 'Incorrect password' + }); + } +}); + +module.exports = router; diff --git a/app/lib/app.js b/app/lib/app.js new file mode 100644 index 00000000..986111e5 --- /dev/null +++ b/app/lib/app.js @@ -0,0 +1,173 @@ +const fs = require('fs'); +const ejs = require('ejs'); +const SendGridAdapter = require('../adapters/send-grid'); + +class App { + constructor () { + this.config = require('../config/config'); + this.storageLocation = __dirname + '/../../data/storage.json'; + this.listLocation = __dirname + '/../../data/list.json'; + } + + getConfig () { + return this.config; + } + + getStorage () { + let db = fs.readFileSync(this.storageLocation); + return JSON.parse(db.toString()); + } + + addSubscriber (data) { + const storage = this.getStorage(); + storage.subscribers.push(data); + + fs.writeFileSync(this.storageLocation, JSON.stringify(storage)); + } + + haveEmailsAlreadySent () { + return fs.existsSync(this.listLocation); + } + + createAndSendEmails () { + const list = this.assignRecipients(); + const messages = this.composeEmails(list); + + return this.sendEmails(messages); + } + + resendRecipientList () { + const list = JSON.parse(fs.readFileSync(this.listLocation).toString()); + const messages = this.composeEmails(list); + + return this.sendEmails(messages); + } + + assignRecipients () { + const storage = this.getStorage(); + const subscribers = this.shuffle(storage.subscribers); + const list = []; + + for (let i = 0; i < subscribers.length; i++) { + let subscriber = subscribers[i]; + let recipient; + + if (i === subscribers.length - 1) { + recipient = subscribers[0]; + } else { + recipient = subscribers[i + 1]; + } + + list.push({ + person: subscriber.email, + recipient: recipient.email, + sent: false + }); + } + + fs.writeFileSync(this.listLocation, JSON.stringify(list)); + + return list; + } + + composeEmails (emailList) { + const subject = 'Your Secret Santa drawing'; + const messageBody = fs.readFileSync('app/views/email.ejs').toString(); + const subscribers = this.getStorage().subscribers; + const messages = []; + + for (let i = 0; i < emailList.length; i++) { + let senderEmail = emailList[i].person; + let recipientEmail = emailList[i].recipient; + let sender = this.getItemByEmail(subscribers, senderEmail); + let recipient = this.getItemByEmail(subscribers, recipientEmail); + + if (recipient) { + messages.push({ + to: senderEmail, + subject: subject, + html: ejs.render(messageBody, { + name: sender.name, + recipient: recipient.name, + colour: recipient.colour, + animal: recipient.animal, + idea: recipient.idea, + deadline: this.config.deadline, + spendLimit: this.config['spend-limit'] + }) + }); + } + } + + return messages; + } + + sendEmails (messages) { + const emailConfig = this.config['email-server']; + let adapter; + + if (emailConfig.type === 'sendgrid') { + adapter = new SendGridAdapter(emailConfig.options, emailConfig['from-address']); + } + + adapter.send(messages); + } + + /* + * Express middleware to check for session + */ + ensureLoggedIn (req, res, next) { + if (req.session.user && req.url === '/login') { + res.redirect('/admin'); + } else if (!req.session.user && req.url !== '/login') { + req.session.error = 'Access denied!'; + res.status(401); + res.render('login'); + } else { + next(); + } + } + + initSession (req) { + req.session.user = true; + } + + getItemByEmail (list, email) { + for (let i = 0; i < list.length; i++) { + if (list[i].email === email) { + return list[i]; + } + } + + return null; + } + + /** + * http://bost.ocks.org/mike/shuffle/ + * @param {Array} array + * @return {Array} + */ + shuffle (array) { + let counter = array.length; + let temp; + let index; + + // While there are elements in the array + while (counter > 0) { + // Pick a random index + index = Math.floor(Math.random() * counter); + + // Decrease counter by 1 + counter--; + + // And swap the last element with it + temp = array[counter]; + array[counter] = array[index]; + array[index] = temp; + } + + return array; + } +} + +module.exports = new App(); diff --git a/app/lib/app.test.js b/app/lib/app.test.js new file mode 100644 index 00000000..0e39362a --- /dev/null +++ b/app/lib/app.test.js @@ -0,0 +1,397 @@ +const fs = require('fs'); +const sinon = require('sinon'); +const expect = require('chai').expect; +const ejs = require('ejs'); +const app = require('./app'); +const SendGridAdapter = require('../adapters/send-grid'); + +describe('App', () => { + let sandbox; + + beforeEach(() => { + sandbox = sinon.createSandbox(); + }); + + afterEach(() => { + sandbox.restore(); + }); + + describe('ensureLoggedIn()', () => { + it('should redirect to admin if a user is present and /login is requested', () => { + let req = { + session: { + user: true + }, + url: '/login' + }; + + let res = { + redirect: (route) => { + expect(route).to.equal('/admin'); + } + }; + + app.ensureLoggedIn(req, res); + }); + + it('should issue a 401 when not logged in, then render login page', () => { + let req = { + session: { + user: null + }, + url: '/secret-page' + }; + + let res = { + status: (code) => { + expect(code).to.equal(401); + }, + render: (page) => { + expect(page).to.equal('login'); + } + }; + + app.ensureLoggedIn(req, res); + }); + + it('should continue to next middleware if authenticated', (done) => { + let req = { + session: { + user: true + }, + url: '/secret-page' + }; + + let next = () => { + done(); + }; + + app.ensureLoggedIn(req, null, next); + }); + }); + + describe('initSession()', () => { + it('should set the session var', () => { + let req = { + session: {} + }; + + app.initSession(req); + + expect(req.session.user).to.equal(true); + }); + }); + + describe('haveEmailsAlreadySent()', () => { + const dummyListLocation = './app/config/test-list.json'; + + before(() => { + app.listLocation = dummyListLocation; + }); + + after(() => { + fs.unlinkSync(dummyListLocation); + }); + + it('should return true if list exists', () => { + expect(app.haveEmailsAlreadySent()).to.equal(false); + + fs.writeFileSync(dummyListLocation, '{}'); + expect(app.haveEmailsAlreadySent()).to.equal(true); + }); + }); + + describe('createAndSendEmails()', () => { + it('should allocate and send emails', () => { + let assign = sandbox.stub(app, 'assignRecipients'); + let composeEmails = sandbox.stub(app, 'composeEmails'); + let sendEmails = sandbox.stub(app, 'sendEmails'); + let list = [ + { + person: 'alice@test.com', + recipient: 'bob@test.com' + }, { + person: 'bob@test.com', + recipient: 'alice@test.com' + } + ]; + let messages = [ + { + to: 'someone@test.com', + subject: 'Hello' + } + ]; + + assign.returns(list); + composeEmails.returns(messages); + + app.createAndSendEmails(); + + expect(composeEmails.calledWith(list)).to.equal(true, 'call composeEmails with list'); + expect(sendEmails.calledWith(messages)).to.equal(true, 'call sendEmails with messages'); + }); + }); + + describe('resendRecipientList()', () => { + const dummyListLocation = './app/config/test-list.json'; + + before(() => { + app.listLocation = dummyListLocation; + + let list = [ + { + person: 'alice@test.com', + recipient: 'bob@test.com' + }, { + person: 'bob@test.com', + recipient: 'alice@test.com' + } + ]; + + fs.writeFileSync(dummyListLocation, JSON.stringify(list)); + }); + + after(() => { + fs.unlinkSync(dummyListLocation); + }); + + it('should send emails from existing list', () => { + let composeEmails = sandbox.stub(app, 'composeEmails'); + let sendEmails = sandbox.stub(app, 'sendEmails'); + let list = [ + { + person: 'alice@test.com', + recipient: 'bob@test.com' + }, { + person: 'bob@test.com', + recipient: 'alice@test.com' + } + ]; + let messages = [ + { + to: 'someone@test.com', + subject: 'Hello' + } + ]; + + composeEmails.returns(messages); + + app.resendRecipientList(); + + expect(composeEmails.calledWith(list)).to.equal(true, 'call composeEmails with list'); + expect(sendEmails.calledWith(messages)).to.equal(true, 'call sendEmails with messages'); + }); + }); + + describe('assignRecipients()', () => { + const dummyListLocation = './app/config/test-list.json'; + + beforeEach(() => { + app.listLocation = dummyListLocation; + }); + + afterEach(() => { + fs.unlinkSync(dummyListLocation); + }); + + it('should shuffle provided users', () => { + sandbox.stub(app, 'getStorage').returns({ + subscribers: [ + {'name': 'Alice'}, + {'name': 'Bob'} + ] + }); + let shuffle = sandbox.stub(app, 'shuffle').returns([]); + + app.assignRecipients(); + + sinon.assert.calledWithMatch(shuffle, [ + {'name': 'Alice'}, + {'name': 'Bob'} + ]); + + expect(shuffle.called).to.equal(true, 'call shuffle'); + }); + + it('should output correct format to correct location', () => { + sandbox.stub(app, 'getStorage').returns({ + subscribers: [] + }); + + sandbox.stub(app, 'shuffle').returns([ + { + name: 'Alice', + email: 'alice@test.com' + }, { + name: 'Bob', + email: 'bob@test.com' + }, { + name: 'Charlie', + email: 'charlie@test.com' + } + ]); + + const result = app.assignRecipients(); + const list = JSON.parse(fs.readFileSync(dummyListLocation).toString()); + + expect(list).to.have.deep.members([ + { + person: 'alice@test.com', + recipient: 'bob@test.com', + sent: false + }, { + person: 'bob@test.com', + recipient: 'charlie@test.com', + sent: false + }, { + person: 'charlie@test.com', + recipient: 'alice@test.com', + sent: false + } + ]); + + expect(result).to.deep.equal(list, 'Rerturn value matches saved file'); + }); + }); + + describe('getItemByEmail()', () => { + it('should find items by email', () => { + const list = [ + { + name: 'Tim', + email: 'tim@test.com' + }, { + name: 'Jane', + email: 'jane@test.com' + } + ]; + + const result = app.getItemByEmail(list, 'jane@test.com'); + + expect(result).to.deep.equal({ + name: 'Jane', + email: 'jane@test.com' + }); + }); + + it('should return null if item is not found', () => { + const list = [ + { + name: 'Tim', + email: 'tim@test.com' + }, { + name: 'Jane', + email: 'jane@test.com' + } + ]; + + const result = app.getItemByEmail(list, 'daniel@test.com'); + + expect(result).to.equal(null); + }); + }); + + describe('composeEmails()', () => { + it('should compose an email to each subscriber', () => { + sandbox.stub(app, 'getStorage').returns({ + subscribers: [ + { + name: 'Alice S.', + email: 'alice@test.com', + colour: 'red', + animal: 'dog', + idea: 'Toys' + }, { + name: 'Bobby', + email: 'bob@test.com', + colour: 'green' + }, { + name: 'Charles', + email: 'charlie@test.com' + } + ] + }); + + const ejsRender = sandbox.spy(ejs, 'render'); + const emailTemplate = fs.readFileSync('app/views/email.ejs').toString(); + const result = app.composeEmails([ + { + person: 'alice@test.com', + recipient: 'bob@test.com' + }, { + person: 'bob@test.com', + recipient: 'charlie@test.com' + }, { + person: 'charlie@test.com', + recipient: 'alice@test.com' + } + ]); + + expect(ejsRender.calledWith(emailTemplate, sinon.match.any)).to.equal(true, 'call render with correct template'); + expect(ejsRender.callCount).to.equal(3, 'call render 3 times'); + expect(result.length).to.equal(3, 'return 3 messages'); + + expect(result[0].to).to.equal('alice@test.com'); + expect(result[0].subject).to.equal('Your Secret Santa drawing'); + expect(result[0].html).to.match(/Alice S., here is your Secret Santa drawing/); + expect(result[0].html).to.match(/You have been given Bobby/); + expect(result[0].html).to.match(/Their favourite colour is: green/); + + expect(result[1].to).to.equal('bob@test.com'); + expect(result[1].subject).to.equal('Your Secret Santa drawing'); + expect(result[1].html).to.match(/Bobby, here is your Secret Santa drawing/); + expect(result[1].html).to.match(/You have been given Charles/); + + expect(result[2].to).to.equal('charlie@test.com'); + expect(result[2].subject).to.equal('Your Secret Santa drawing'); + expect(result[2].html).to.match(/Charles, here is your Secret Santa drawing/); + expect(result[2].html).to.match(/You have been given Alice S./); + expect(result[2].html).to.match(/Their favourite colour is: red/); + expect(result[2].html).to.match(/Their favourite animal is: dog/); + expect(result[2].html).to.match(/They suggested: Toys as a potential gift./); + }); + }); + + describe('addSubscriber()', () => { + const originalStorageLocation = app.storageLocation; + const dummyStorageLocation = './data/test-storage.json'; + + before(() => { + app.storageLocation = dummyStorageLocation; + fs.writeFileSync(dummyStorageLocation, '{"subscribers":[]}'); + }); + + after(() => { + app.storageLocation = originalStorageLocation; + fs.unlinkSync(dummyStorageLocation); + }); + + it('should add a user to storage', () => { + app.addSubscriber({ + name: 'Leeroy Jenkins', + email: 'leeroy@example.net', + colour: 'red' + }); + + const storage = app.getStorage(); + expect(storage.subscribers.length).to.equal(1); + expect(storage.subscribers[0].name).to.equal('Leeroy Jenkins'); + expect(storage.subscribers[0].email).to.equal('leeroy@example.net'); + expect(storage.subscribers[0].colour).to.equal('red'); + }); + }); + + describe('sendEmails()', () => { + it('should pass through messages to the adapter', () => { + const stub = sandbox.stub(SendGridAdapter.prototype, 'send'); + + app.sendEmails([{ + to: 'test@example.com' + }]); + + expect(stub.calledWith([{ + to: 'test@example.com' + }])).to.equal(true); + }); + }); +}); diff --git a/app/lib/router.js b/app/lib/router.js new file mode 100644 index 00000000..92e1aae8 --- /dev/null +++ b/app/lib/router.js @@ -0,0 +1,34 @@ +const express = require('express'); +const engine = require('ejs-locals'); +const bodyParser = require('body-parser'); +const cookieParser = require('cookie-parser'); +const session = require('express-session'); +const secretSanta = require('../lib/app'); +const config = secretSanta.getConfig(); +const app = express(); + +const indexController = require('../controllers/index'); +const adminController = require('../controllers/admin'); + +app.engine('ejs', engine); +app.set('view engine', 'ejs'); +app.set('views', './app/views'); + +app.use(express.static('./public')); +app.use(bodyParser.urlencoded({extended: false})); +app.use(cookieParser(config['cookie-secret'])); + +app.use(session({ + secret: config['session-secret'], + resave: true, + saveUninitialized: false +})); + +app.use('/', indexController); +app.use('/admin', adminController); + +const port = process.env.PORT || 3000; + +const server = app.listen(port, process.env.IP, function () { + console.log('Listening on port %d', server.address().port); +}); diff --git a/app/lib/secret-santa.js b/app/lib/secret-santa.js deleted file mode 100644 index f4c55b71..00000000 --- a/app/lib/secret-santa.js +++ /dev/null @@ -1,390 +0,0 @@ -function SecretSanta() { - this.defaultConfigFile = __dirname + '/../config/default.json'; - this.configFile = __dirname + '/../config/config.json'; - this.databaseLocation = __dirname + '/../../data'; - this.database = this.databaseLocation + '/storage.json'; - this.mailTransport = null; -} - -SecretSanta.prototype.DB_KEY = 'subscribers'; -SecretSanta.prototype.SENT = 'sent'; - -SecretSanta.prototype.fetchConfig = function () { - return require(this.configFile); -}; - -SecretSanta.prototype.configExists = function () { - const fs = require('fs'); - - return fs.existsSync(this.configFile); -}; - -SecretSanta.prototype.runInstall = function () { - const prompt = require('prompt'); - const fs = require('fs'); - - console.log('Running installation...'); - - console.log('Creating storage...'); - - if (!fs.lstatSync(this.databaseLocation).isDirectory()) { - fs.mkdirSync(this.databaseLocation); - } - - fs.writeFileSync(this.database, '{}'); - - console.log('Config options required (Default values appear in brackets)'); - - prompt.message = '>'; - prompt.delimiter = ' '; - - prompt.start(); - - prompt.get([ - { - name: 'title', - description: 'Title text (Secret Santa)' - }, - { - name: 'admin-password', - description: 'Password to access admin area', - required: true - }, - { - name: 'signup-password', - description: 'Password for guests to sign up. Leave blank for no password' - }, - { - name: 'deadline', - description: 'The deadline for signing up' - }, - { - name: 'spend-limit', - description: 'The spend limit' - }, - { - name: 'email-type', - description: 'Which email service should be used? (smtp or mailgun)' - } - ], function (err, result) { - if (result['email-type'] === 'smtp') { - this.writeConfig(result); - console.log('Please manually enter SMTP details into app/config/config.json when done'); - } else { - prompt.get([ - { - name: 'api-key', - description: 'Mailgun API key' - } - ], function (err, mailgunResult) { - if (!err) { - this.writeConfig(result, mailgunResult); - } else { - console.error(err); - } - }.bind(this)); - } - }.bind(this)); -}; - -SecretSanta.prototype.writeConfig = function (mainConfig, emailConfig) { - const config = require(this.defaultConfigFile); - const fs = require('fs'); - const configFields = ['title', 'signup-password', 'admin-password', 'deadline', 'spend-limit']; - let configFieldName; - - for (const key in configFields) { - if (configFields.hasOwnProperty(key)) { - configFieldName = configFields[key]; - config[configFieldName] = mainConfig[configFieldName]; - } - } - - if (mainConfig['signup-password'] === '') { - config['signup-password'] = false; - } - - if (mainConfig['email-type'] === 'smtp') { - config['email-server'].type = 'smtp'; - } else { - config['email-server'].type = 'mailgun'; - config['email-server']['api-key'] = emailConfig['api-key']; - } - - config['cookie-secret'] = this.generateRandomPassword(); - config['session-secret'] = this.generateRandomPassword(); - - fs.writeFileSync(this.configFile, JSON.stringify(config)); - console.log('Config file created.'); -}; - -SecretSanta.prototype.ensureLoggedIn = function (req, res, next) { - if (req.session.user && req.url === '/login') { - res.redirect('/admin'); - } else if (!req.session.user && req.url !== '/login') { - req.session.error = 'Access denied!'; - res.status(401); - res.render('login'); - } else { - next(); - } -}; - -SecretSanta.prototype.initSession = function (req) { - req.session.user = true; -}; - -SecretSanta.prototype.getSubscribers = function () { - const jsonStore = require('json-store'); - const db = jsonStore(this.database); - - let current = db.get(this.DB_KEY); - - if (current === undefined) { - current = []; - } - - return current; -}; - -SecretSanta.prototype.haveEmailsAlreadySent = function () { - const jsonStore = require('json-store'); - const db = jsonStore(this.database); - - return !!db.get(this.SENT); -}; - -SecretSanta.prototype.markEmailsAsSent = function () { - const jsonStore = require('json-store'); - const db = jsonStore(this.database); - - db.set(this.SENT, true); -}; - -SecretSanta.prototype.addSubscriber = function (req) { - const jsonStore = require('json-store'); - const db = jsonStore(this.database); - const currentSubscribers = this.getSubscribers(); - - currentSubscribers.push({ - name: req.body.name, - email: req.body.email, - colour: req.body.colour, - animal: req.body.animal, - idea: req.body.idea - }); - db.set(this.DB_KEY, currentSubscribers); -}; - -SecretSanta.prototype.saveSubscribers = function (list) { - const jsonStore = require('json-store'); - const db = jsonStore(this.database); - - db.set(this.DB_KEY, list); -}; - - -SecretSanta.prototype.createAndSendEmails = function () { - const list = this.assignRecipients(); - - this.sendEmails(list); - - return list; -}; - -SecretSanta.prototype.assignRecipients = function () { - let subscribers = this.getSubscribers(); - let subscriber; - let recipient; - - subscribers = this.shuffle(subscribers); - - for (let i = 0; i < subscribers.length; i++) { - subscriber = subscribers[i]; - - if (i === subscribers.length - 1) { - recipient = subscribers[0]; - } else { - recipient = subscribers[i + 1]; - } - - subscriber.recipient = recipient.email; - subscriber.sent = false; - } - - this.saveSubscribers(subscribers); - - return subscribers; -}; - -SecretSanta.prototype.resendRecipientList = function () { - const list = this.getSubscribers(); - this.sendEmails(list); - - return list; -}; - -SecretSanta.prototype.sendEmails = function (recipientList) { - const ejs = require('ejs'); - - let messageBody = 'Hi <%= name %>!\n\n'; - messageBody += 'Here is your Secret Santa drawing:\n\n'; - messageBody += 'You have been given <%= recipient %>. They like <%=colour%> things and prefer <%=animal%>.\n'; - messageBody += 'They suggested: <%=idea%> as a potential gift.\n\n'; - messageBody += 'Remember the deadline is <%=deadline%> and the spend limit is <%=spendLimit%>\n\n'; - messageBody += 'Happy shopping, and have a Merry Christmas!!'; - - const subject = 'Your Secret Santa drawing'; - let subscriber; - let message; - let delay; - - this.markEmailsAsSent(); - - for (let i = 0; i < recipientList.length; i++) { - subscriber = recipientList[i]; - - if (subscriber.sent) { - continue; - } - - delay = 1000 * i; - - let recipient = this.findSubscriber(recipientList, subscriber.recipient); - - if (recipient) { - message = ejs.render(messageBody, { - name: subscriber.name, - recipient: recipient.name, - colour: recipient.colour, - animal: recipient.animal, - idea: recipient.idea, - deadline: this.fetchConfig()['deadline'], - spendLimit: this.fetchConfig()['spend-limit'] - }); - - setTimeout(this.sendEmail.bind(this, subscriber.email, subject, message), delay); - } - } -}; - -SecretSanta.prototype.sendEmail = function (to, subject, messageBody) { - let success = false; - const config = this.fetchConfig()['email-server']; - const subscribers = this.getSubscribers(); - const subscriber = this.findSubscriber(subscribers, to); - - if (config.type === 'mailgun') { - const mailgun = require('mailgun-js')({ - apiKey: config['api-key'], - domain: config.domain - }); - - mailgun.messages().send({ - from: 'Secret Santa <' + config['from-address'] + '>', - to: to, - subject: subject, - text: messageBody - }, function (err) { - if (err) { - console.error('Error sending to:' + to, err); - } else { - console.log('Email sent: ' + to); - } - success = !err; - }); - } else if (config.type === 'smtp') { - const nodemailer = require('nodemailer'); - - if (!this.mailTransport) { - this.mailTransport = nodemailer.createTransport(config['options']); - } - - this.mailTransport.sendMail({ - from: config['from-address'], - to: to, - subject: subject, - text: messageBody - }, function (error, info) { - if (error) { - console.error('Error sending to:' + to, error); - success = false; - } else { - console.log('Email sent: ' + info.response); - success = true; - } - }); - } else if (config.type === 'sendgrid') { - const sgMail = require('@sendgrid/mail'); - sgMail.setApiKey(config.options['api-key']); - - sgMail.send({ - to: to, - from: config['from-address'], - subject: subject, - text: messageBody - }); - - } else { - console.error('Unknown email server type:'); - } - - subscriber.sent = success; - this.saveSubscribers(subscribers); -}; - -/** - * http://bost.ocks.org/mike/shuffle/ - * @param {Array} array - * @return {Array} - */ -SecretSanta.prototype.shuffle = function (array) { - let counter = array.length; - let temp; - let index; - - // While there are elements in the array - while (counter > 0) { - // Pick a random index - index = Math.floor(Math.random() * counter); - - // Decrease counter by 1 - counter--; - - // And swap the last element with it - temp = array[counter]; - array[counter] = array[index]; - array[index] = temp; - } - - return array; -}; - -SecretSanta.prototype.generateRandomPassword = function (len) { - if (len === undefined) { - len = 16; - } - - const minCharCode = 65; - const maxCharCode = 90; - let password = ''; - let charCode; - let i; - - for (i = 0; i < len; i++) { - charCode = Math.floor(Math.random() * (maxCharCode - minCharCode + 1) + minCharCode); - password += String.fromCharCode(charCode); - } - - return password; -}; - -SecretSanta.prototype.findSubscriber = function (list, email) { - for (let i = 0; i < list.length; i++) { - if (list[i].email === email) { - return list[i]; - } - } -}; - -module.exports = new SecretSanta(); diff --git a/public/css/app.css b/app/scss/styles.scss similarity index 66% rename from public/css/app.css rename to app/scss/styles.scss index f01112d7..39c0b439 100644 --- a/public/css/app.css +++ b/app/scss/styles.scss @@ -1,10 +1,17 @@ +@import "foundation"; +@include foundation-everything; + body { background: #FBF0E3 url(/images/pusheen_tree.gif) bottom right no-repeat; color: #896857; + font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; + font-style: normal; + font-weight: normal; + line-height: 1.5; } article { - width: 960px; + max-width: 960px; margin: 0 auto; padding: 32px 0 0; } @@ -22,20 +29,20 @@ input[type=text], input[type=email] { margin: 0 0 24px; border: 2px #4D2A0A solid; border-radius: 5px; -} -input[type=text]:focus, input[type=email]:focus { - border-color: #4D2A0A; - box-shadow: 0 0 5px #4D2A0A; + &:focus { + border-color: #4D2A0A; + box-shadow: 0 0 5px #4D2A0A; + } } -input[type=submit] { +.button { background: #C74E45; border-radius: 5px; -} -.button:hover { - background: #0C1C50; + &:hover { + background: #0C1C50; + } } ::-webkit-input-placeholder { @@ -56,4 +63,4 @@ input[type=submit] { :-ms-input-placeholder { color: #896857; opacity: 0.8; -} \ No newline at end of file +} diff --git a/app/views/admin-review-send.ejs b/app/views/admin-review-send.ejs index 4b74c556..ebd17ddf 100644 --- a/app/views/admin-review-send.ejs +++ b/app/views/admin-review-send.ejs @@ -3,16 +3,4 @@

Emails have been sent! Hope you get something good!

- - -
-

Re-send failed

-

Click the following button to attempt re-send to any failed the emails!

- - -
- +Back diff --git a/app/views/admin.ejs b/app/views/admin.ejs index 840a50f9..fd9237ba 100644 --- a/app/views/admin.ejs +++ b/app/views/admin.ejs @@ -15,17 +15,17 @@

Run

-

Click the following button to send out the email!

+

Click the following button to re-send emails!

<% if (alreadySent) { %>
-

Re-send only failed

+

Regenerate list and send again

-

Click the following button to attempt re-send to any failed the emails!

+

This will re-shuffle the list of people and send new emails out

-<% } %> \ No newline at end of file +<% } %> diff --git a/app/views/email.ejs b/app/views/email.ejs new file mode 100644 index 00000000..3b41cb4a --- /dev/null +++ b/app/views/email.ejs @@ -0,0 +1,17 @@ +

<%= name %>, here is your Secret Santa drawing

+

You have been given <%= recipient %>

+<% if (colour || animal) { %> + +<% } %> +<% if (idea) { %> +

They suggested: <%= idea %> as a potential gift.

+<% } %> +

Remember the deadline is <%= deadline %> and the spend limit is <%= spendLimit %>

+

Happy shopping, and have a Merry Christmas!!'

diff --git a/app/views/index.ejs b/app/views/index.ejs index 321bd7eb..7eabf181 100644 --- a/app/views/index.ejs +++ b/app/views/index.ejs @@ -1,37 +1,31 @@ <% layout('layout'); %>

Welcome to <%= title %>

-
-
-
-
- -
+ +
+
+ +
+
+ +
+
+ +
-
- -
- -
- -
- -
- -
+
+ +
+
+ +
+
+ +
-
- -
- -
- -
- -
-
-

The deadline is : <%= deadline %>

-

The spending limit is : <%= spendLimit %>

+
+

The deadline is : <%= deadline %>

+

The spending limit is : <%= spendLimit %>

+
-
diff --git a/app/views/layout.ejs b/app/views/layout.ejs index 5ceef2ba..4d9f67cc 100644 --- a/app/views/layout.ejs +++ b/app/views/layout.ejs @@ -4,7 +4,6 @@ Secret Santa - @@ -15,4 +14,4 @@ <%- body %> - \ No newline at end of file + diff --git a/index.js b/index.js index 0a68e581..2e2e32d6 100644 --- a/index.js +++ b/index.js @@ -1,84 +1,27 @@ -const express = require('express'); -const app = express(); -const engine = require('ejs-locals'); -const bodyParser = require('body-parser'); -const cookieParser = require('cookie-parser'); -const session = require('express-session'); -const secretSanta = require('./app/lib/secret-santa'); +const fs = require('fs'); +const chalk = require('chalk'); -if (!secretSanta.configExists()) { - console.warn('No config detected...'); - secretSanta.runInstall(); -} else { - app.engine('ejs', engine); - app.set('view engine', 'ejs'); - app.set('views', __dirname + '/app/views'); - - app.use(express.static(__dirname + '/public')); - app.use(bodyParser.urlencoded({extended: false})); - app.use(cookieParser(secretSanta.fetchConfig()['cookie-secret'])); - app.use(session({ - secret: secretSanta.fetchConfig()['session-secret'], - resave: true, - saveUninitialized: false - })); - - // routes - - app.get('/', function (req, res) { - res.render('index', { - title: secretSanta.fetchConfig()['title'], - deadline: secretSanta.fetchConfig()['deadline'], - spendLimit: secretSanta.fetchConfig()['spend-limit'] - }); - }); - - app.post('/save', function (req, res) { - secretSanta.addSubscriber(req); +const defaultConfigFile = 'app/config/default.json'; +const configFile = 'app/config/config.json'; +const storageFile = 'data/storage.json'; - res.render('registered'); - }); +const args = process.argv.slice(2); +const initConfig = args[0] === '--init-config'; - app.get('/login', secretSanta.ensureLoggedIn, function (req, res) { - res.render('login'); - }); +if (!fs.existsSync(configFile) || initConfig) { + // copy config + fs.copyFileSync(defaultConfigFile, configFile); - app.post('/login', secretSanta.ensureLoggedIn, function (req, res, next) { - if (req.body.password === secretSanta.fetchConfig()['admin-password']) { - secretSanta.initSession(req, res); - res.redirect('/admin'); - next(); - } else { - res.render('login', { - error: 'Incorrect password' - }); - } - }); - - app.get('/admin', secretSanta.ensureLoggedIn, function (req, res) { - res.render('admin', { - subscribers: secretSanta.getSubscribers(), - alreadySent: secretSanta.haveEmailsAlreadySent() - }); - }); - - app.post('/admin/create-send', secretSanta.ensureLoggedIn, function (req, res) { - const list = secretSanta.createAndSendEmails(); - res.render('admin-review-send', { - recipients: list - }); - }); - - app.post('/admin/re-send', secretSanta.ensureLoggedIn, function (req, res) { - const list = secretSanta.resendRecipientList(); - res.render('admin-review-send', { - recipients: list - }); - }); + // create storage + fs.writeFileSync(storageFile, JSON.stringify({ + subscribers: [] + })); - const port = process.env.PORT || 3000; + if (!initConfig) { + console.warn(chalk.red('No config detected...')); + console.log('Modify app/config/config.json as needed'); + } - const server = app.listen(port, process.env.IP, function () { - console.log('Listening on port %d', server.address().port); - }); +} else { + require('./app/lib/router'); } diff --git a/package-lock.json b/package-lock.json index 9581f7da..8374f0c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "secret-santa", - "version": "2.2.0", + "version": "3.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -52,6 +52,41 @@ "@sendgrid/helpers": "^6.3.0" } }, + "@sinonjs/commons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.3.0.tgz", + "integrity": "sha512-j4ZwhaHmwsCb4DlDOIWnI5YyKDNMoNThsmwEpfHx6a1EpsGZ9qYLxP++LMlmBRjtGptGHFsGItJ768snllFWpA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/formatio": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", + "integrity": "sha512-vdjoYLDptCgvtJs57ULshak3iJe4NW3sJ3g36xVDGff5AE8P30S6A093EIEPjdi2noGhfuNOEkbxt3J3awFW1w==", + "dev": true, + "requires": { + "@sinonjs/samsam": "2.1.0" + }, + "dependencies": { + "@sinonjs/samsam": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.0.tgz", + "integrity": "sha512-5x2kFgJYupaF1ns/RmharQ90lQkd2ELS8A9X0ymkAAdemYHGtI2KiUHG8nX2WU0T1qgnOU5YMqnBM2V7NUanNw==", + "dev": true, + "requires": { + "array-from": "^2.1.1" + } + } + } + }, + "@sinonjs/samsam": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.2.tgz", + "integrity": "sha512-ZwTHAlC9akprWDinwEPD4kOuwaYZlyMwVJIANsKNC3QVp0AHB04m7RnB4eqeWfgmxw8MGTzS9uMaw93Z3QcZbw==", + "dev": true + }, "@types/caseless": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz", @@ -86,6 +121,11 @@ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-Set5ZdrAaKI/qHdFlVMgm/GsAv/wkXhSTuZFkJ+JI7HK+wIkIlOaUXSXieIvJ0+OvGIqtREFoE+NHJtEq0gtEw==" }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, "accepts": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", @@ -110,14 +150,6 @@ "acorn": "^5.0.3" } }, - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, "ajv": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", @@ -136,6 +168,11 @@ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, "ansi-escapes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", @@ -145,8 +182,7 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { "version": "3.2.1", @@ -156,6 +192,20 @@ "color-convert": "^1.9.0" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -165,11 +215,22 @@ "sprintf-js": "~1.0.2" } }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", + "dev": true + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -204,15 +265,16 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, - "ast-types": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.5.tgz", - "integrity": "sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw==" + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" }, "asynckit": { "version": "0.4.0", @@ -242,6 +304,14 @@ "tweetnacl": "^0.14.3" } }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "~2.0.0" + } + }, "body-parser": { "version": "1.18.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", @@ -268,6 +338,17 @@ "concat-map": "0.0.1" } }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -288,11 +369,39 @@ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", "dev": true }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, "chalk": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", @@ -309,6 +418,12 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -330,10 +445,53 @@ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", "dev": true }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "color-convert": { "version": "1.9.3", @@ -348,11 +506,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "colors": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.2.tgz", - "integrity": "sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ==" - }, "combined-stream": { "version": "1.0.6", "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", @@ -361,11 +514,22 @@ "delayed-stream": "~1.0.0" } }, + "commander": { + "version": "2.15.1", + "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, "content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", @@ -418,10 +582,13 @@ "which": "^1.2.9" } }, - "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=" + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } }, "dashdash": { "version": "1.14.1", @@ -431,11 +598,6 @@ "assert-plus": "^1.0.0" } }, - "data-uri-to-buffer": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", - "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==" - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -444,38 +606,31 @@ "ms": "2.0.0" } }, - "deep-equal": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz", - "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0=" + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true }, "deepmerge": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" }, - "degenerator": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", - "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", - "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", @@ -496,6 +651,11 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -506,6 +666,12 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, "doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -554,17 +720,12 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, - "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "es6-promise": "^4.0.3" + "is-arrayish": "^0.2.1" } }, "escape-html": { @@ -577,25 +738,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, "eslint": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.5.0.tgz", @@ -718,12 +860,14 @@ "estraverse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true }, "etag": { "version": "1.8.1", @@ -883,11 +1027,6 @@ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" - }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", @@ -901,7 +1040,8 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true }, "figures": { "version": "2.0.0", @@ -922,11 +1062,6 @@ "object-assign": "^4.0.1" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, "finalhandler": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", @@ -948,6 +1083,15 @@ } } }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, "flat-cache": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", @@ -980,6 +1124,11 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "foundation-sites": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/foundation-sites/-/foundation-sites-6.5.1.tgz", + "integrity": "sha512-Z+FiBvogwIDjRlefJ5pYkVcmsGx3pbndRJ80+OvPvI9UwfKCif6YtOyTxpCjUoS3XBlOms5vYonfnasp2V2wZw==" + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -990,26 +1139,15 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - } + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "functional-red-black-tree": { @@ -1018,19 +1156,78 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "get-uri": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.2.tgz", - "integrity": "sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw==", + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "requires": { - "data-uri-to-buffer": "1", - "debug": "2", - "extend": "3", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "2" + "globule": "^1.0.0" } }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -1072,10 +1269,25 @@ "pinkie-promise": "^2.0.0" } }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "har-schema": { @@ -1105,11 +1317,42 @@ } } }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + }, "http-errors": { "version": "1.6.3", "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -1121,25 +1364,6 @@ "statuses": ">= 1.4.0 < 2" } }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -1150,35 +1374,6 @@ "sshpk": "^1.7.0" } }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "requires": { - "agent-base": "^4.1.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", - "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=" - }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -1199,10 +1394,18 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "inflection": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", - "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=" + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } }, "inflight": { "version": "1.0.6", @@ -1239,21 +1442,41 @@ "through": "^2.3.6" } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ipaddr.js": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-path-cwd": { "version": "1.0.0", @@ -1291,32 +1514,37 @@ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", "dev": true }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "js-base64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.0.tgz", + "integrity": "sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1354,11 +1582,6 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "json-store": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-store/-/json-store-1.0.0.tgz", - "integrity": "sha512-MKNpMHeOSZnNUXQpkpts5Fo9iANN9OJa6zwVT0qJx7ZRhHrOPu95z73RllgJINx7czRkYnMoLTGf2OR/ybm25g==" - }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -1375,68 +1598,126 @@ "verror": "1.10.0" } }, + "just-extend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-3.0.0.tgz", + "integrity": "sha512-Fu3T6pKBuxjWT/p4DkqGHFRsysc8OauWr4ZRTY9dIx07Y9O0RkoR5jcv28aeD1vuAwhm3nLkDurwLXoALp4DpQ==", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" } }, + "load-json-file": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, "lodash": { "version": "4.17.10", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==" + }, + "lolex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-3.0.0.tgz", + "integrity": "sha512-hcnW80h3j2lbUfFdMArd5UPA/vxZJ+G8vobd+wg3nVEQA0EigStbYcrG030FJxL6xiDDPEkoMatV9xIh5OecQQ==", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, - "mailgun-js": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.21.0.tgz", - "integrity": "sha512-hqw0jL+GABT61jy3ZpfaLZXGGB2SvTJ9oMM3KwLpdf0WlwAETkjRipQvLiQj/MUNLOT9/bz2O4K+7c1Mt376fw==", - "requires": { - "async": "^2.6.1", - "debug": "~3.1.0", - "form-data": "^2.3.2", - "inflection": "~1.12.0", - "is-stream": "^1.1.0", - "path-proxy": "~1.0.0", - "promisify-call": "^2.0.2", - "proxy-agent": "^3.0.3", - "tsscmp": "^1.0.6" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "^4.17.10" - } - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, + "meow": { + "version": "3.7.0", + "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -1492,6 +1773,59 @@ "minimist": "0.0.8" } }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -1500,7 +1834,13 @@ "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz", + "integrity": "sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw==" }, "natural-compare": { "version": "1.4.0", @@ -1508,31 +1848,179 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "ncp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz", - "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=" - }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, - "netmask": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", - "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=" - }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "nodemailer": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.7.0.tgz", - "integrity": "sha512-IludxDypFpYw4xpzKdMAozBSkzKHmNBvGanUREjJItgJ2NYcK/s8+PggVhj7c2yGFQykKsnnmv1+Aqo0ZfjHmw==" + "nise": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.6.tgz", + "integrity": "sha512-1GedetLKzmqmgwabuMSqPsT7oumdR77SBpDfNNJhADRIeA3LN/2RVqR4fFqwvzhAqcTef6PPCzQwITE/YQ8S8A==", + "dev": true, + "requires": { + "@sinonjs/formatio": "3.0.0", + "just-extend": "^3.0.0", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0", + "text-encoding": "^0.6.4" + }, + "dependencies": { + "lolex": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", + "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + } + } + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + } + } + }, + "node-sass": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz", + "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==", + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash.assign": "^4.2.0", + "lodash.clonedeep": "^4.3.2", + "lodash.mergewith": "^4.6.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.10.0", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.9.0", @@ -1542,8 +2030,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "on-finished": { "version": "2.3.0", @@ -1579,6 +2066,7 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.4", @@ -1588,52 +2076,39 @@ "wordwrap": "~1.0.0" } }, + "os-homedir": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, - "pac-proxy-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz", - "integrity": "sha512-AOUX9jES/EkQX2zRz0AW7lSx9jD//hQS8wFXBvcnd/J2Py9KaMJMqV/LPqJssj1tgGufotb2mmopGPR15ODv1Q==", + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", - "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, - "pac-resolver": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", - "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" + "error-ex": "^1.2.0" } }, "parseurl": { @@ -1641,6 +2116,14 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -1658,26 +2141,27 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, - "path-proxy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz", - "integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=", - "requires": { - "inflection": "~1.3.0" - }, - "dependencies": { - "inflection": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz", - "integrity": "sha1-y9Fg2p91sUw8xjV41POWeEvzAU4=" - } - } - }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -1686,29 +2170,21 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { "pinkie": "^2.0.0" } }, - "pkginfo": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz", - "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=" - }, "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", @@ -1718,7 +2194,8 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true }, "process-nextick-args": { "version": "2.0.0", @@ -1731,27 +2208,6 @@ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", "dev": true }, - "promisify-call": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/promisify-call/-/promisify-call-2.0.4.tgz", - "integrity": "sha1-1IwtRWUszM1SgB3ey9UzptS9X7o=", - "requires": { - "with-callback": "^1.0.2" - } - }, - "prompt": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz", - "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=", - "requires": { - "colors": "^1.1.2", - "pkginfo": "0.x.x", - "read": "1.0.x", - "revalidator": "0.1.x", - "utile": "0.3.x", - "winston": "2.1.x" - } - }, "proxy-addr": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", @@ -1761,41 +2217,6 @@ "ipaddr.js": "1.8.0" } }, - "proxy-agent": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.0.3.tgz", - "integrity": "sha512-PXVVVuH9tiQuxQltFJVSnXWuDtNr+8aNBP6XVDDCDiUuDN8eRCm+ii4/mFWmXWEA0w8jjJSlePa4LXlM4jIzNA==", - "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "lru-cache": "^4.1.2", - "pac-proxy-agent": "^3.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "debug": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", - "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" - }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -1837,12 +2258,23 @@ "unpipe": "1.0.0" } }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "mute-stream": "~0.0.4" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -1874,12 +2306,29 @@ } } }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, "regexpp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.0.tgz", "integrity": "sha512-g2FAVtR8Uh8GO1Nv5wpxW7VFVwHcCEr4wyA8/MHiRkO8uHoR5ntAA8Uq3P1vvMTX/BeQiRVSpDGLd+Wn5HNOTA==", "dev": true }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -1914,6 +2363,16 @@ } } }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, "require-uncached": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", @@ -1940,11 +2399,6 @@ "signal-exit": "^3.0.2" } }, - "revalidator": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=" - }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", @@ -1981,11 +2435,40 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, "semver": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" }, "send": { "version": "0.16.2", @@ -2025,6 +2508,11 @@ "send": "0.16.2" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -2048,8 +2536,24 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "sinon": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.1.1.tgz", + "integrity": "sha512-iYagtjLVt1vN3zZY7D8oH7dkjNJEjLjyuzy8daX5+3bbQl8gaohrheB9VfH1O3L6LKuue5WTJvFluHiuZ9y3nQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.2.0", + "@sinonjs/formatio": "^3.0.0", + "@sinonjs/samsam": "^2.1.2", + "diff": "^3.5.0", + "lodash.get": "^4.4.2", + "lolex": "^3.0.0", + "nise": "^1.4.6", + "supports-color": "^5.5.0", + "type-detect": "^4.0.8" + } }, "slice-ansi": { "version": "1.0.0", @@ -2060,34 +2564,33 @@ "is-fullwidth-code-point": "^2.0.0" } }, - "smart-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz", - "integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==" - }, - "socks": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.2.1.tgz", - "integrity": "sha512-0GabKw7n9mI46vcNrVfs0o6XzWzjVa3h6GaSo2UPxtWAROXUWavfJWh1M4PR5tnE0dcnQXZIDFP4yrAysLze/w==", + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.0.1" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "socks-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz", - "integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==", + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "agent-base": "~4.2.0", - "socks": "~2.2.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true + "spdx-license-ids": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", + "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==" }, "sprintf-js": { "version": "1.0.3", @@ -2111,40 +2614,52 @@ "tweetnacl": "~0.14.0" } }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "requires": { + "readable-stream": "^2.0.1" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -2173,6 +2688,22 @@ "string-width": "^2.1.1" } }, + "tar": { + "version": "2.2.1", + "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "text-encoding": { + "version": "0.6.4", + "resolved": "http://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=", + "dev": true + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -2185,11 +2716,6 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "thunkify": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", - "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=" - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -2215,17 +2741,25 @@ } } }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "requires": { + "glob": "^7.1.2" + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", "dev": true }, - "tsscmp": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", - "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==" - }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -2243,10 +2777,17 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, "requires": { "prelude-ls": "~1.1.2" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, "type-is": { "version": "1.6.16", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", @@ -2282,19 +2823,6 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "utile": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz", - "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=", - "requires": { - "async": "~0.9.0", - "deep-equal": "~0.2.1", - "i": "0.3.x", - "mkdirp": "0.x.x", - "ncp": "1.0.x", - "rimraf": "2.x.x" - } - }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -2305,6 +2833,15 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -2324,52 +2861,71 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } }, - "winston": { - "version": "2.1.1", - "resolved": "http://registry.npmjs.org/winston/-/winston-2.1.1.tgz", - "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=", - "requires": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "pkginfo": "0.3.x", - "stack-trace": "0.0.x" + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { - "async": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=" + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=" + "string-width": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } }, - "pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=" + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } } } }, - "with-callback": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/with-callback/-/with-callback-1.0.2.tgz", - "integrity": "sha1-oJYpuakgAo1yFAT7Q1vc/1yRvCE=" - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -2384,15 +2940,88 @@ "mkdirp": "^0.5.1" } }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + } + } } } } diff --git a/package.json b/package.json index 38c0ced0..4d44379d 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,14 @@ { "name": "secret-santa", - "version": "2.2.0", + "version": "3.0.0", "description": "A web-based secret santa application to collect participants, shuffle and email each user with their chosen secret santa", "main": "", "scripts": { - "lint": "eslint index.js app/**/*.js" + "start": "npm run css; node index.js", + "css": "node-sass app/scss/styles.scss public/css/app.css --include-path node_modules/foundation-sites/scss --output-style compressed", + "test": "mocha app/**/*.test.js", + "lint": "eslint index.js app/**/*.js", + "init-config": "node index.js --init-config" }, "author": { "name": "Daniel Jackson", @@ -18,18 +22,20 @@ "dependencies": { "@sendgrid/mail": "^6.3.1", "body-parser": "^1.18.3", + "chalk": "^2.4.1", "cookie-parser": "^1.4.3", "ejs": "^2.6.1", "ejs-locals": "^1.0.2", "express": "^4.16.3", "express-session": "^1.15.6", - "json-store": "^1.0.0", - "mailgun-js": "^0.21.0", - "nodemailer": "^4.7.0", - "prompt": "^1.0.0" + "foundation-sites": "^6.5.1", + "node-sass": "^4.11.0" }, "devDependencies": { + "chai": "^4.2.0", "eslint": "^5.5.0", - "eslint-config-google": "^0.10.0" + "eslint-config-google": "^0.10.0", + "mocha": "^5.2.0", + "sinon": "^7.1.1" } } diff --git a/public/css/foundation.css b/public/css/foundation.css deleted file mode 100644 index 837fbe3d..00000000 --- a/public/css/foundation.css +++ /dev/null @@ -1,6579 +0,0 @@ -meta.foundation-version { - font-family: "/5.5.3/"; } - -meta.foundation-mq-small { - font-family: "/only screen/"; - width: 0; } - -meta.foundation-mq-small-only { - font-family: "/only screen and (max-width: 40em)/"; - width: 0; } - -meta.foundation-mq-medium { - font-family: "/only screen and (min-width:40.0625em)/"; - width: 40.0625em; } - -meta.foundation-mq-medium-only { - font-family: "/only screen and (min-width:40.0625em) and (max-width:64em)/"; - width: 40.0625em; } - -meta.foundation-mq-large { - font-family: "/only screen and (min-width:64.0625em)/"; - width: 64.0625em; } - -meta.foundation-mq-large-only { - font-family: "/only screen and (min-width:64.0625em) and (max-width:90em)/"; - width: 64.0625em; } - -meta.foundation-mq-xlarge { - font-family: "/only screen and (min-width:90.0625em)/"; - width: 90.0625em; } - -meta.foundation-mq-xlarge-only { - font-family: "/only screen and (min-width:90.0625em) and (max-width:120em)/"; - width: 90.0625em; } - -meta.foundation-mq-xxlarge { - font-family: "/only screen and (min-width:120.0625em)/"; - width: 120.0625em; } - -meta.foundation-data-attribute-namespace { - font-family: false; } - -html, body { - height: 100%; } - -*, -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -html, -body { - font-size: 100%; } - -body { - background: #fff; - color: #222; - cursor: auto; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-style: normal; - font-weight: normal; - line-height: 1.5; - margin: 0; - padding: 0; - position: relative; } - -a:hover { - cursor: pointer; } - -img { - max-width: 100%; - height: auto; } - -img { - -ms-interpolation-mode: bicubic; } - -#map_canvas img, -#map_canvas embed, -#map_canvas object, -.map_canvas img, -.map_canvas embed, -.map_canvas object, -.mqa-display img, -.mqa-display embed, -.mqa-display object { - max-width: none !important; } - -.left { - float: left !important; } - -.right { - float: right !important; } - -.clearfix:before, .clearfix:after { - content: " "; - display: table; } -.clearfix:after { - clear: both; } - -.hide { - display: none; } - -.invisible { - visibility: hidden; } - -.antialiased { - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -img { - display: inline-block; - vertical-align: middle; } - -textarea { - height: auto; - min-height: 50px; } - -select { - width: 100%; } - -.row { - margin: 0 auto; - max-width: 62.5rem; - width: 100%; } - .row:before, .row:after { - content: " "; - display: table; } - .row:after { - clear: both; } - .row.collapse > .column, - .row.collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.collapse .row { - margin-left: 0; - margin-right: 0; } - .row .row { - margin: 0 -0.9375rem; - max-width: none; - width: auto; } - .row .row:before, .row .row:after { - content: " "; - display: table; } - .row .row:after { - clear: both; } - .row .row.collapse { - margin: 0; - max-width: none; - width: auto; } - .row .row.collapse:before, .row .row.collapse:after { - content: " "; - display: table; } - .row .row.collapse:after { - clear: both; } - -.column, -.columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - width: 100%; - float: left; } - -.column + .column:last-child, -.columns + .column:last-child, .column + -.columns:last-child, -.columns + -.columns:last-child { - float: right; } -.column + .column.end, -.columns + .column.end, .column + -.columns.end, -.columns + -.columns.end { - float: left; } - -@media only screen { - .small-push-0 { - position: relative; - left: 0; - right: auto; } - - .small-pull-0 { - position: relative; - right: 0; - left: auto; } - - .small-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .small-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .small-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .small-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .small-push-3 { - position: relative; - left: 25%; - right: auto; } - - .small-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .small-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .small-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .small-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .small-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .small-push-6 { - position: relative; - left: 50%; - right: auto; } - - .small-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .small-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .small-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .small-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .small-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .small-push-9 { - position: relative; - left: 75%; - right: auto; } - - .small-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .small-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .small-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .small-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .small-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, - .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .small-1 { - width: 8.33333%; } - - .small-2 { - width: 16.66667%; } - - .small-3 { - width: 25%; } - - .small-4 { - width: 33.33333%; } - - .small-5 { - width: 41.66667%; } - - .small-6 { - width: 50%; } - - .small-7 { - width: 58.33333%; } - - .small-8 { - width: 66.66667%; } - - .small-9 { - width: 75%; } - - .small-10 { - width: 83.33333%; } - - .small-11 { - width: 91.66667%; } - - .small-12 { - width: 100%; } - - .small-offset-0 { - margin-left: 0 !important; } - - .small-offset-1 { - margin-left: 8.33333% !important; } - - .small-offset-2 { - margin-left: 16.66667% !important; } - - .small-offset-3 { - margin-left: 25% !important; } - - .small-offset-4 { - margin-left: 33.33333% !important; } - - .small-offset-5 { - margin-left: 41.66667% !important; } - - .small-offset-6 { - margin-left: 50% !important; } - - .small-offset-7 { - margin-left: 58.33333% !important; } - - .small-offset-8 { - margin-left: 66.66667% !important; } - - .small-offset-9 { - margin-left: 75% !important; } - - .small-offset-10 { - margin-left: 83.33333% !important; } - - .small-offset-11 { - margin-left: 91.66667% !important; } - - .small-reset-order { - float: left; - left: auto; - margin-left: 0; - margin-right: 0; - right: auto; } - - .column.small-centered, - .columns.small-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.small-uncentered, - .columns.small-uncentered { - float: left; - margin-left: 0; - margin-right: 0; } - - .column.small-centered:last-child, - .columns.small-centered:last-child { - float: none; } - - .column.small-uncentered:last-child, - .columns.small-uncentered:last-child { - float: left; } - - .column.small-uncentered.opposite, - .columns.small-uncentered.opposite { - float: right; } - - .row.small-collapse > .column, - .row.small-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.small-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.small-uncollapse > .column, - .row.small-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } } -@media only screen and (min-width: 40.0625em) { - .medium-push-0 { - position: relative; - left: 0; - right: auto; } - - .medium-pull-0 { - position: relative; - right: 0; - left: auto; } - - .medium-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .medium-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .medium-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .medium-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .medium-push-3 { - position: relative; - left: 25%; - right: auto; } - - .medium-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .medium-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .medium-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .medium-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .medium-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .medium-push-6 { - position: relative; - left: 50%; - right: auto; } - - .medium-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .medium-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .medium-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .medium-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .medium-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .medium-push-9 { - position: relative; - left: 75%; - right: auto; } - - .medium-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .medium-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .medium-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .medium-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .medium-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, - .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .medium-1 { - width: 8.33333%; } - - .medium-2 { - width: 16.66667%; } - - .medium-3 { - width: 25%; } - - .medium-4 { - width: 33.33333%; } - - .medium-5 { - width: 41.66667%; } - - .medium-6 { - width: 50%; } - - .medium-7 { - width: 58.33333%; } - - .medium-8 { - width: 66.66667%; } - - .medium-9 { - width: 75%; } - - .medium-10 { - width: 83.33333%; } - - .medium-11 { - width: 91.66667%; } - - .medium-12 { - width: 100%; } - - .medium-offset-0 { - margin-left: 0 !important; } - - .medium-offset-1 { - margin-left: 8.33333% !important; } - - .medium-offset-2 { - margin-left: 16.66667% !important; } - - .medium-offset-3 { - margin-left: 25% !important; } - - .medium-offset-4 { - margin-left: 33.33333% !important; } - - .medium-offset-5 { - margin-left: 41.66667% !important; } - - .medium-offset-6 { - margin-left: 50% !important; } - - .medium-offset-7 { - margin-left: 58.33333% !important; } - - .medium-offset-8 { - margin-left: 66.66667% !important; } - - .medium-offset-9 { - margin-left: 75% !important; } - - .medium-offset-10 { - margin-left: 83.33333% !important; } - - .medium-offset-11 { - margin-left: 91.66667% !important; } - - .medium-reset-order { - float: left; - left: auto; - margin-left: 0; - margin-right: 0; - right: auto; } - - .column.medium-centered, - .columns.medium-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.medium-uncentered, - .columns.medium-uncentered { - float: left; - margin-left: 0; - margin-right: 0; } - - .column.medium-centered:last-child, - .columns.medium-centered:last-child { - float: none; } - - .column.medium-uncentered:last-child, - .columns.medium-uncentered:last-child { - float: left; } - - .column.medium-uncentered.opposite, - .columns.medium-uncentered.opposite { - float: right; } - - .row.medium-collapse > .column, - .row.medium-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.medium-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.medium-uncollapse > .column, - .row.medium-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .push-0 { - position: relative; - left: 0; - right: auto; } - - .pull-0 { - position: relative; - right: 0; - left: auto; } - - .push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .push-3 { - position: relative; - left: 25%; - right: auto; } - - .pull-3 { - position: relative; - right: 25%; - left: auto; } - - .push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .push-6 { - position: relative; - left: 50%; - right: auto; } - - .pull-6 { - position: relative; - right: 50%; - left: auto; } - - .push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .push-9 { - position: relative; - left: 75%; - right: auto; } - - .pull-9 { - position: relative; - right: 75%; - left: auto; } - - .push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .pull-11 { - position: relative; - right: 91.66667%; - left: auto; } } -@media only screen and (min-width: 64.0625em) { - .large-push-0 { - position: relative; - left: 0; - right: auto; } - - .large-pull-0 { - position: relative; - right: 0; - left: auto; } - - .large-push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .large-pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .large-push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .large-pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .large-push-3 { - position: relative; - left: 25%; - right: auto; } - - .large-pull-3 { - position: relative; - right: 25%; - left: auto; } - - .large-push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .large-pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .large-push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .large-pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .large-push-6 { - position: relative; - left: 50%; - right: auto; } - - .large-pull-6 { - position: relative; - right: 50%; - left: auto; } - - .large-push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .large-pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .large-push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .large-pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .large-push-9 { - position: relative; - left: 75%; - right: auto; } - - .large-pull-9 { - position: relative; - right: 75%; - left: auto; } - - .large-push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .large-pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .large-push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .large-pull-11 { - position: relative; - right: 91.66667%; - left: auto; } - - .column, - .columns { - position: relative; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .large-1 { - width: 8.33333%; } - - .large-2 { - width: 16.66667%; } - - .large-3 { - width: 25%; } - - .large-4 { - width: 33.33333%; } - - .large-5 { - width: 41.66667%; } - - .large-6 { - width: 50%; } - - .large-7 { - width: 58.33333%; } - - .large-8 { - width: 66.66667%; } - - .large-9 { - width: 75%; } - - .large-10 { - width: 83.33333%; } - - .large-11 { - width: 91.66667%; } - - .large-12 { - width: 100%; } - - .large-offset-0 { - margin-left: 0 !important; } - - .large-offset-1 { - margin-left: 8.33333% !important; } - - .large-offset-2 { - margin-left: 16.66667% !important; } - - .large-offset-3 { - margin-left: 25% !important; } - - .large-offset-4 { - margin-left: 33.33333% !important; } - - .large-offset-5 { - margin-left: 41.66667% !important; } - - .large-offset-6 { - margin-left: 50% !important; } - - .large-offset-7 { - margin-left: 58.33333% !important; } - - .large-offset-8 { - margin-left: 66.66667% !important; } - - .large-offset-9 { - margin-left: 75% !important; } - - .large-offset-10 { - margin-left: 83.33333% !important; } - - .large-offset-11 { - margin-left: 91.66667% !important; } - - .large-reset-order { - float: left; - left: auto; - margin-left: 0; - margin-right: 0; - right: auto; } - - .column.large-centered, - .columns.large-centered { - margin-left: auto; - margin-right: auto; - float: none; } - - .column.large-uncentered, - .columns.large-uncentered { - float: left; - margin-left: 0; - margin-right: 0; } - - .column.large-centered:last-child, - .columns.large-centered:last-child { - float: none; } - - .column.large-uncentered:last-child, - .columns.large-uncentered:last-child { - float: left; } - - .column.large-uncentered.opposite, - .columns.large-uncentered.opposite { - float: right; } - - .row.large-collapse > .column, - .row.large-collapse > .columns { - padding-left: 0; - padding-right: 0; } - .row.large-collapse .row { - margin-left: 0; - margin-right: 0; } - .row.large-uncollapse > .column, - .row.large-uncollapse > .columns { - padding-left: 0.9375rem; - padding-right: 0.9375rem; - float: left; } - - .push-0 { - position: relative; - left: 0; - right: auto; } - - .pull-0 { - position: relative; - right: 0; - left: auto; } - - .push-1 { - position: relative; - left: 8.33333%; - right: auto; } - - .pull-1 { - position: relative; - right: 8.33333%; - left: auto; } - - .push-2 { - position: relative; - left: 16.66667%; - right: auto; } - - .pull-2 { - position: relative; - right: 16.66667%; - left: auto; } - - .push-3 { - position: relative; - left: 25%; - right: auto; } - - .pull-3 { - position: relative; - right: 25%; - left: auto; } - - .push-4 { - position: relative; - left: 33.33333%; - right: auto; } - - .pull-4 { - position: relative; - right: 33.33333%; - left: auto; } - - .push-5 { - position: relative; - left: 41.66667%; - right: auto; } - - .pull-5 { - position: relative; - right: 41.66667%; - left: auto; } - - .push-6 { - position: relative; - left: 50%; - right: auto; } - - .pull-6 { - position: relative; - right: 50%; - left: auto; } - - .push-7 { - position: relative; - left: 58.33333%; - right: auto; } - - .pull-7 { - position: relative; - right: 58.33333%; - left: auto; } - - .push-8 { - position: relative; - left: 66.66667%; - right: auto; } - - .pull-8 { - position: relative; - right: 66.66667%; - left: auto; } - - .push-9 { - position: relative; - left: 75%; - right: auto; } - - .pull-9 { - position: relative; - right: 75%; - left: auto; } - - .push-10 { - position: relative; - left: 83.33333%; - right: auto; } - - .pull-10 { - position: relative; - right: 83.33333%; - left: auto; } - - .push-11 { - position: relative; - left: 91.66667%; - right: auto; } - - .pull-11 { - position: relative; - right: 91.66667%; - left: auto; } } -button, .button { - -webkit-appearance: none; - -moz-appearance: none; - border-radius: 0; - border-style: solid; - border-width: 0; - cursor: pointer; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-weight: normal; - line-height: normal; - margin: 0 0 1.25rem; - position: relative; - text-align: center; - text-decoration: none; - display: inline-block; - padding: 1rem 2rem 1.0625rem 2rem; - font-size: 1rem; - background-color: #008CBA; - border-color: #007095; - color: #FFFFFF; - transition: background-color 300ms ease-out; } - button:hover, button:focus, .button:hover, .button:focus { - background-color: #007095; } - button:hover, button:focus, .button:hover, .button:focus { - color: #FFFFFF; } - button.secondary, .button.secondary { - background-color: #e7e7e7; - border-color: #b9b9b9; - color: #333333; } - button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus { - background-color: #b9b9b9; } - button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus { - color: #333333; } - button.success, .button.success { - background-color: #43AC6A; - border-color: #368a55; - color: #FFFFFF; } - button.success:hover, button.success:focus, .button.success:hover, .button.success:focus { - background-color: #368a55; } - button.success:hover, button.success:focus, .button.success:hover, .button.success:focus { - color: #FFFFFF; } - button.alert, .button.alert { - background-color: #f04124; - border-color: #cf2a0e; - color: #FFFFFF; } - button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus { - background-color: #cf2a0e; } - button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus { - color: #FFFFFF; } - button.warning, .button.warning { - background-color: #f08a24; - border-color: #cf6e0e; - color: #FFFFFF; } - button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus { - background-color: #cf6e0e; } - button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus { - color: #FFFFFF; } - button.info, .button.info { - background-color: #a0d3e8; - border-color: #61b6d9; - color: #333333; } - button.info:hover, button.info:focus, .button.info:hover, .button.info:focus { - background-color: #61b6d9; } - button.info:hover, button.info:focus, .button.info:hover, .button.info:focus { - color: #FFFFFF; } - button.large, .button.large { - padding: 1.125rem 2.25rem 1.1875rem 2.25rem; - font-size: 1.25rem; } - button.small, .button.small { - padding: 0.875rem 1.75rem 0.9375rem 1.75rem; - font-size: 0.8125rem; } - button.tiny, .button.tiny { - padding: 0.625rem 1.25rem 0.6875rem 1.25rem; - font-size: 0.6875rem; } - button.expand, .button.expand { - padding: 1rem 2rem 1.0625rem 2rem; - font-size: 1rem; - padding-bottom: 1.0625rem; - padding-top: 1rem; - padding-left: 1rem; - padding-right: 1rem; - width: 100%; } - button.left-align, .button.left-align { - text-align: left; - text-indent: 0.75rem; } - button.right-align, .button.right-align { - text-align: right; - padding-right: 0.75rem; } - button.radius, .button.radius { - border-radius: 3px; } - button.round, .button.round { - border-radius: 1000px; } - button.disabled, button[disabled], .button.disabled, .button[disabled] { - background-color: #008CBA; - border-color: #007095; - color: #FFFFFF; - box-shadow: none; - cursor: default; - opacity: 0.7; } - button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { - background-color: #007095; } - button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { - color: #FFFFFF; } - button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus { - background-color: #008CBA; } - button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary { - background-color: #e7e7e7; - border-color: #b9b9b9; - color: #333333; - box-shadow: none; - cursor: default; - opacity: 0.7; } - button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { - background-color: #b9b9b9; } - button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { - color: #333333; } - button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus { - background-color: #e7e7e7; } - button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success { - background-color: #43AC6A; - border-color: #368a55; - color: #FFFFFF; - box-shadow: none; - cursor: default; - opacity: 0.7; } - button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { - background-color: #368a55; } - button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { - color: #FFFFFF; } - button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus { - background-color: #43AC6A; } - button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert { - background-color: #f04124; - border-color: #cf2a0e; - color: #FFFFFF; - box-shadow: none; - cursor: default; - opacity: 0.7; } - button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { - background-color: #cf2a0e; } - button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { - color: #FFFFFF; } - button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus { - background-color: #f04124; } - button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning { - background-color: #f08a24; - border-color: #cf6e0e; - color: #FFFFFF; - box-shadow: none; - cursor: default; - opacity: 0.7; } - button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { - background-color: #cf6e0e; } - button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { - color: #FFFFFF; } - button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus { - background-color: #f08a24; } - button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info { - background-color: #a0d3e8; - border-color: #61b6d9; - color: #333333; - box-shadow: none; - cursor: default; - opacity: 0.7; } - button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { - background-color: #61b6d9; } - button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { - color: #FFFFFF; } - button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus { - background-color: #a0d3e8; } - -button::-moz-focus-inner { - border: 0; - padding: 0; } - -@media only screen and (min-width: 40.0625em) { - button, .button { - display: inline-block; } } -/* Standard Forms */ -form { - margin: 0 0 1rem; } - -/* Using forms within rows, we need to set some defaults */ -form .row .row { - margin: 0 -0.5rem; } - form .row .row .column, - form .row .row .columns { - padding: 0 0.5rem; } - form .row .row.collapse { - margin: 0; } - form .row .row.collapse .column, - form .row .row.collapse .columns { - padding: 0; } - form .row .row.collapse input { - -webkit-border-bottom-right-radius: 0; - -webkit-border-top-right-radius: 0; - border-bottom-right-radius: 0; - border-top-right-radius: 0; } -form .row input.column, -form .row input.columns, -form .row textarea.column, -form .row textarea.columns { - padding-left: 0.5rem; } - -/* Label Styles */ -label { - color: #4d4d4d; - cursor: pointer; - display: block; - font-size: 0.875rem; - font-weight: normal; - line-height: 1.5; - margin-bottom: 0; - /* Styles for required inputs */ } - label.right { - float: none !important; - text-align: right; } - label.inline { - margin: 0 0 1rem 0; - padding: 0.5625rem 0; } - label small { - text-transform: capitalize; - color: #676767; } - -/* Attach elements to the beginning or end of an input */ -.prefix, -.postfix { - border-style: solid; - border-width: 1px; - display: block; - font-size: 0.875rem; - height: 2.3125rem; - line-height: 2.3125rem; - overflow: visible; - padding-bottom: 0; - padding-top: 0; - position: relative; - text-align: center; - width: 100%; - z-index: 2; } - -/* Adjust padding, alignment and radius if pre/post element is a button */ -.postfix.button { - border: none; - padding-left: 0; - padding-right: 0; - padding-bottom: 0; - padding-top: 0; - text-align: center; } - -.prefix.button { - border: none; - padding-left: 0; - padding-right: 0; - padding-bottom: 0; - padding-top: 0; - text-align: center; } - -.prefix.button.radius { - border-radius: 0; - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - -.postfix.button.radius { - border-radius: 0; - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - -.prefix.button.round { - border-radius: 0; - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } - -.postfix.button.round { - border-radius: 0; - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } - -/* Separate prefix and postfix styles when on span or label so buttons keep their own */ -span.prefix, label.prefix { - background: #f2f2f2; - border-right: none; - color: #333333; - border-color: #cccccc; } - -span.postfix, label.postfix { - background: #f2f2f2; - border-left: none; - color: #333333; - border-color: #cccccc; } - -/* We use this to get basic styling on all basic form elements */ -input:not([type]), input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea { - -webkit-appearance: none; - -moz-appearance: none; - border-radius: 0; - background-color: #FFFFFF; - border-style: solid; - border-width: 1px; - border-color: #cccccc; - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - color: rgba(0, 0, 0, 0.75); - display: block; - font-family: inherit; - font-size: 0.875rem; - height: 2.3125rem; - margin: 0 0 1rem 0; - padding: 0.5rem; - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: border-color 0.15s linear, background 0.15s linear; - -moz-transition: border-color 0.15s linear, background 0.15s linear; - -ms-transition: border-color 0.15s linear, background 0.15s linear; - -o-transition: border-color 0.15s linear, background 0.15s linear; - transition: border-color 0.15s linear, background 0.15s linear; } - input:not([type]):focus, input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus, textarea:focus { - background: #fafafa; - border-color: #999999; - outline: none; } - input:not([type]):disabled, input[type="text"]:disabled, input[type="password"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="month"]:disabled, input[type="week"]:disabled, input[type="email"]:disabled, input[type="number"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="color"]:disabled, textarea:disabled { - background-color: #DDDDDD; - cursor: default; } - input:not([type])[disabled], input:not([type])[readonly], fieldset[disabled] input:not([type]), input[type="text"][disabled], input[type="text"][readonly], fieldset[disabled] input[type="text"], input[type="password"][disabled], input[type="password"][readonly], fieldset[disabled] input[type="password"], input[type="date"][disabled], input[type="date"][readonly], fieldset[disabled] input[type="date"], input[type="datetime"][disabled], input[type="datetime"][readonly], fieldset[disabled] input[type="datetime"], input[type="datetime-local"][disabled], input[type="datetime-local"][readonly], fieldset[disabled] input[type="datetime-local"], input[type="month"][disabled], input[type="month"][readonly], fieldset[disabled] input[type="month"], input[type="week"][disabled], input[type="week"][readonly], fieldset[disabled] input[type="week"], input[type="email"][disabled], input[type="email"][readonly], fieldset[disabled] input[type="email"], input[type="number"][disabled], input[type="number"][readonly], fieldset[disabled] input[type="number"], input[type="search"][disabled], input[type="search"][readonly], fieldset[disabled] input[type="search"], input[type="tel"][disabled], input[type="tel"][readonly], fieldset[disabled] input[type="tel"], input[type="time"][disabled], input[type="time"][readonly], fieldset[disabled] input[type="time"], input[type="url"][disabled], input[type="url"][readonly], fieldset[disabled] input[type="url"], input[type="color"][disabled], input[type="color"][readonly], fieldset[disabled] input[type="color"], textarea[disabled], textarea[readonly], fieldset[disabled] textarea { - background-color: #DDDDDD; - cursor: default; } - input:not([type]).radius, input[type="text"].radius, input[type="password"].radius, input[type="date"].radius, input[type="datetime"].radius, input[type="datetime-local"].radius, input[type="month"].radius, input[type="week"].radius, input[type="email"].radius, input[type="number"].radius, input[type="search"].radius, input[type="tel"].radius, input[type="time"].radius, input[type="url"].radius, input[type="color"].radius, textarea.radius { - border-radius: 3px; } - -form .row .prefix-radius.row.collapse input, -form .row .prefix-radius.row.collapse textarea, -form .row .prefix-radius.row.collapse select, -form .row .prefix-radius.row.collapse button { - border-radius: 0; - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } -form .row .prefix-radius.row.collapse .prefix { - border-radius: 0; - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } -form .row .postfix-radius.row.collapse input, -form .row .postfix-radius.row.collapse textarea, -form .row .postfix-radius.row.collapse select, -form .row .postfix-radius.row.collapse button { - border-radius: 0; - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } -form .row .postfix-radius.row.collapse .postfix { - border-radius: 0; - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } -form .row .prefix-round.row.collapse input, -form .row .prefix-round.row.collapse textarea, -form .row .prefix-round.row.collapse select, -form .row .prefix-round.row.collapse button { - border-radius: 0; - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } -form .row .prefix-round.row.collapse .prefix { - border-radius: 0; - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } -form .row .postfix-round.row.collapse input, -form .row .postfix-round.row.collapse textarea, -form .row .postfix-round.row.collapse select, -form .row .postfix-round.row.collapse button { - border-radius: 0; - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } -form .row .postfix-round.row.collapse .postfix { - border-radius: 0; - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } - -input[type="submit"] { - -webkit-appearance: none; - -moz-appearance: none; - border-radius: 0; } - -/* Respect enforced amount of rows for textarea */ -textarea[rows] { - height: auto; } - -/* Not allow resize out of parent */ -textarea { - max-width: 100%; } - -::-webkit-input-placeholder { - color: #666666; } - -:-moz-placeholder { - /* Firefox 18- */ - color: #666666; } - -::-moz-placeholder { - /* Firefox 19+ */ - color: #666666; } - -:-ms-input-placeholder { - color: #666666; } - -/* Add height value for select elements to match text input height */ -select { - -webkit-appearance: none !important; - -moz-appearance: none !important; - background-color: #FAFAFA; - border-radius: 0; - background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+"); - background-position: 100% center; - background-repeat: no-repeat; - border-style: solid; - border-width: 1px; - border-color: #cccccc; - color: rgba(0, 0, 0, 0.75); - font-family: inherit; - font-size: 0.875rem; - line-height: normal; - padding: 0.5rem; - border-radius: 0; - height: 2.3125rem; } - select::-ms-expand { - display: none; } - select.radius { - border-radius: 3px; } - select:focus { - background-color: #f3f3f3; - border-color: #999999; } - select:disabled { - background-color: #DDDDDD; - cursor: default; } - select[multiple] { - height: auto; } - -/* Adjust margin for form elements below */ -input[type="file"], -input[type="checkbox"], -input[type="radio"], -select { - margin: 0 0 1rem 0; } - -input[type="checkbox"] + label, -input[type="radio"] + label { - display: inline-block; - margin-left: 0.5rem; - margin-right: 1rem; - margin-bottom: 0; - vertical-align: baseline; } - -/* Normalize file input width */ -input[type="file"] { - width: 100%; } - -/* HTML5 Number spinners settings */ -/* We add basic fieldset styling */ -fieldset { - border: 1px solid #DDDDDD; - margin: 1.125rem 0; - padding: 1.25rem; } - fieldset legend { - font-weight: bold; - margin: 0; - margin-left: -0.1875rem; - padding: 0 0.1875rem; } - -/* Error Handling */ -[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error { - display: block; - font-size: 0.75rem; - font-style: italic; - font-weight: normal; - margin-bottom: 1rem; - margin-top: -1px; - padding: 0.375rem 0.5625rem 0.5625rem; - background: #f04124; - color: #FFFFFF; } -[data-abide] span.error, [data-abide] small.error { - display: none; } - -span.error, small.error { - display: block; - font-size: 0.75rem; - font-style: italic; - font-weight: normal; - margin-bottom: 1rem; - margin-top: -1px; - padding: 0.375rem 0.5625rem 0.5625rem; - background: #f04124; - color: #FFFFFF; } - -.error input, -.error textarea, -.error select { - margin-bottom: 0; } -.error input[type="checkbox"], -.error input[type="radio"] { - margin-bottom: 1rem; } -.error label, -.error label.error { - color: #f04124; } -.error small.error { - display: block; - font-size: 0.75rem; - font-style: italic; - font-weight: normal; - margin-bottom: 1rem; - margin-top: -1px; - padding: 0.375rem 0.5625rem 0.5625rem; - background: #f04124; - color: #FFFFFF; } -.error > label > small { - background: transparent; - color: #676767; - display: inline; - font-size: 60%; - font-style: normal; - margin: 0; - padding: 0; - text-transform: capitalize; } -.error span.error-message { - display: block; } - -input.error, -textarea.error, -select.error { - margin-bottom: 0; } - -label.error { - color: #f04124; } - -meta.foundation-mq-topbar { - font-family: "/only screen and (min-width:40.0625em)/"; - width: 40.0625em; } - -/* Wrapped around .top-bar to contain to grid width */ -.contain-to-grid { - width: 100%; - background: #333333; } - .contain-to-grid .top-bar { - margin-bottom: 0; } - -.fixed { - position: fixed; - top: 0; - width: 100%; - z-index: 99; - left: 0; } - .fixed.expanded:not(.top-bar) { - height: auto; - max-height: 100%; - overflow-y: auto; - width: 100%; } - .fixed.expanded:not(.top-bar) .title-area { - position: fixed; - width: 100%; - z-index: 99; } - .fixed.expanded:not(.top-bar) .top-bar-section { - margin-top: 2.8125rem; - z-index: 98; } - -.top-bar { - background: #333333; - height: 2.8125rem; - line-height: 2.8125rem; - margin-bottom: 0; - overflow: hidden; - position: relative; } - .top-bar ul { - list-style: none; - margin-bottom: 0; } - .top-bar .row { - max-width: none; } - .top-bar form, - .top-bar input, - .top-bar select { - margin-bottom: 0; } - .top-bar input, - .top-bar select { - font-size: 0.75rem; - height: 1.75rem; - padding-bottom: .35rem; - padding-top: .35rem; } - .top-bar .button, .top-bar button { - font-size: 0.75rem; - margin-bottom: 0; - padding-bottom: 0.4125rem; - padding-top: 0.4125rem; } - @media only screen and (max-width: 40em) { - .top-bar .button, .top-bar button { - position: relative; - top: -1px; } } - .top-bar .title-area { - margin: 0; - position: relative; } - .top-bar .name { - font-size: 16px; - height: 2.8125rem; - margin: 0; } - .top-bar .name h1, .top-bar .name h2, .top-bar .name h3, .top-bar .name h4, .top-bar .name p, .top-bar .name span { - font-size: 1.0625rem; - line-height: 2.8125rem; - margin: 0; } - .top-bar .name h1 a, .top-bar .name h2 a, .top-bar .name h3 a, .top-bar .name h4 a, .top-bar .name p a, .top-bar .name span a { - color: #FFFFFF; - display: block; - font-weight: normal; - padding: 0 0.9375rem; - width: 75%; } - .top-bar .toggle-topbar { - position: absolute; - right: 0; - top: 0; } - .top-bar .toggle-topbar a { - color: #FFFFFF; - display: block; - font-size: 0.8125rem; - font-weight: bold; - height: 2.8125rem; - line-height: 2.8125rem; - padding: 0 0.9375rem; - position: relative; - text-transform: uppercase; } - .top-bar .toggle-topbar.menu-icon { - margin-top: -16px; - top: 50%; } - .top-bar .toggle-topbar.menu-icon a { - color: #FFFFFF; - height: 34px; - line-height: 33px; - padding: 0 2.5rem 0 0.9375rem; - position: relative; } - .top-bar .toggle-topbar.menu-icon a span::after { - content: ""; - display: block; - height: 0; - position: absolute; - margin-top: -8px; - top: 50%; - right: 0.9375rem; - box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF; - width: 16px; } - .top-bar .toggle-topbar.menu-icon a span:hover:after { - box-shadow: 0 0 0 1px "", 0 7px 0 1px "", 0 14px 0 1px ""; } - .top-bar.expanded { - background: transparent; - height: auto; } - .top-bar.expanded .title-area { - background: #333333; } - .top-bar.expanded .toggle-topbar a { - color: #888888; } - .top-bar.expanded .toggle-topbar a span::after { - box-shadow: 0 0 0 1px #888888, 0 7px 0 1px #888888, 0 14px 0 1px #888888; } - @media screen and (-webkit-min-device-pixel-ratio: 0) { - .top-bar.expanded .top-bar-section .has-dropdown.moved > .dropdown, - .top-bar.expanded .top-bar-section .dropdown { - clip: initial; } - .top-bar.expanded .top-bar-section .has-dropdown:not(.moved) > ul { - padding: 0; } } - -.top-bar-section { - left: 0; - position: relative; - width: auto; - transition: left 300ms ease-out; } - .top-bar-section ul { - display: block; - font-size: 16px; - height: auto; - margin: 0; - padding: 0; - width: 100%; } - .top-bar-section .divider, - .top-bar-section [role="separator"] { - border-top: solid 1px #1a1a1a; - clear: both; - height: 1px; - width: 100%; } - .top-bar-section ul li { - background: #333333; } - .top-bar-section ul li > a { - color: #FFFFFF; - display: block; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 0.8125rem; - font-weight: normal; - padding-left: 0.9375rem; - padding: 12px 0 12px 0.9375rem; - text-transform: none; - width: 100%; } - .top-bar-section ul li > a.button { - font-size: 0.8125rem; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - background-color: #008CBA; - border-color: #007095; - color: #FFFFFF; } - .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus { - background-color: #007095; } - .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus { - color: #FFFFFF; } - .top-bar-section ul li > a.button.secondary { - background-color: #e7e7e7; - border-color: #b9b9b9; - color: #333333; } - .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus { - background-color: #b9b9b9; } - .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus { - color: #333333; } - .top-bar-section ul li > a.button.success { - background-color: #43AC6A; - border-color: #368a55; - color: #FFFFFF; } - .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus { - background-color: #368a55; } - .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus { - color: #FFFFFF; } - .top-bar-section ul li > a.button.alert { - background-color: #f04124; - border-color: #cf2a0e; - color: #FFFFFF; } - .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus { - background-color: #cf2a0e; } - .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus { - color: #FFFFFF; } - .top-bar-section ul li > a.button.warning { - background-color: #f08a24; - border-color: #cf6e0e; - color: #FFFFFF; } - .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus { - background-color: #cf6e0e; } - .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus { - color: #FFFFFF; } - .top-bar-section ul li > a.button.info { - background-color: #a0d3e8; - border-color: #61b6d9; - color: #333333; } - .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus { - background-color: #61b6d9; } - .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus { - color: #FFFFFF; } - .top-bar-section ul li > button { - font-size: 0.8125rem; - padding-left: 0.9375rem; - padding-right: 0.9375rem; - background-color: #008CBA; - border-color: #007095; - color: #FFFFFF; } - .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus { - background-color: #007095; } - .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus { - color: #FFFFFF; } - .top-bar-section ul li > button.secondary { - background-color: #e7e7e7; - border-color: #b9b9b9; - color: #333333; } - .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus { - background-color: #b9b9b9; } - .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus { - color: #333333; } - .top-bar-section ul li > button.success { - background-color: #43AC6A; - border-color: #368a55; - color: #FFFFFF; } - .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus { - background-color: #368a55; } - .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus { - color: #FFFFFF; } - .top-bar-section ul li > button.alert { - background-color: #f04124; - border-color: #cf2a0e; - color: #FFFFFF; } - .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus { - background-color: #cf2a0e; } - .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus { - color: #FFFFFF; } - .top-bar-section ul li > button.warning { - background-color: #f08a24; - border-color: #cf6e0e; - color: #FFFFFF; } - .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus { - background-color: #cf6e0e; } - .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus { - color: #FFFFFF; } - .top-bar-section ul li > button.info { - background-color: #a0d3e8; - border-color: #61b6d9; - color: #333333; } - .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus { - background-color: #61b6d9; } - .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus { - color: #FFFFFF; } - .top-bar-section ul li:hover:not(.has-form) > a { - background-color: #555555; - color: #FFFFFF; - background: #222222; } - .top-bar-section ul li.active > a { - background: #008CBA; - color: #FFFFFF; } - .top-bar-section ul li.active > a:hover { - background: #0078a0; - color: #FFFFFF; } - .top-bar-section .has-form { - padding: 0.9375rem; } - .top-bar-section .has-dropdown { - position: relative; } - .top-bar-section .has-dropdown > a:after { - border: inset 5px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: transparent transparent transparent rgba(255, 255, 255, 0.4); - border-left-style: solid; - margin-right: 0.9375rem; - margin-top: -4.5px; - position: absolute; - top: 50%; - right: 0; } - .top-bar-section .has-dropdown.moved { - position: static; } - .top-bar-section .has-dropdown.moved > .dropdown { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - display: block; - position: absolute !important; - width: 100%; } - .top-bar-section .has-dropdown.moved > a:after { - display: none; } - .top-bar-section .dropdown { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; - display: block; - padding: 0; - position: absolute; - top: 0; - z-index: 99; - left: 100%; } - .top-bar-section .dropdown li { - height: auto; - width: 100%; } - .top-bar-section .dropdown li a { - font-weight: normal; - padding: 8px 0.9375rem; } - .top-bar-section .dropdown li a.parent-link { - font-weight: normal; } - .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link { - margin-bottom: 0; - margin-top: 0; - font-size: 1.125rem; } - .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a { - color: #FFFFFF; - display: block; } - .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover { - background: none; } - .top-bar-section .dropdown li.has-form { - padding: 8px 0.9375rem; } - .top-bar-section .dropdown li .button, - .top-bar-section .dropdown li button { - top: auto; } - .top-bar-section .dropdown label { - color: #777777; - font-size: 0.625rem; - font-weight: bold; - margin-bottom: 0; - padding: 8px 0.9375rem 2px; - text-transform: uppercase; } - -.js-generated { - display: block; } - -@media only screen and (min-width: 40.0625em) { - .top-bar { - background: #333333; - overflow: visible; } - .top-bar:before, .top-bar:after { - content: " "; - display: table; } - .top-bar:after { - clear: both; } - .top-bar .toggle-topbar { - display: none; } - .top-bar .title-area { - float: left; } - .top-bar .name h1 a, - .top-bar .name h2 a, - .top-bar .name h3 a, - .top-bar .name h4 a, - .top-bar .name h5 a, - .top-bar .name h6 a { - width: auto; } - .top-bar input, - .top-bar select, - .top-bar .button, - .top-bar button { - font-size: 0.875rem; - height: 1.75rem; - position: relative; - top: 0.53125rem; } - .top-bar .has-form > .button, - .top-bar .has-form > button { - font-size: 0.875rem; - height: 1.75rem; - position: relative; - top: 0.53125rem; } - .top-bar.expanded { - background: #333333; } - - .contain-to-grid .top-bar { - margin: 0 auto; - margin-bottom: 0; - max-width: 62.5rem; } - - .top-bar-section { - transition: none 0 0; - left: 0 !important; } - .top-bar-section ul { - display: inline; - height: auto !important; - width: auto; } - .top-bar-section ul li { - float: left; } - .top-bar-section ul li .js-generated { - display: none; } - .top-bar-section li.hover > a:not(.button) { - background-color: #555555; - background: #222222; - color: #FFFFFF; } - .top-bar-section li:not(.has-form) a:not(.button) { - background: #333333; - line-height: 2.8125rem; - padding: 0 0.9375rem; } - .top-bar-section li:not(.has-form) a:not(.button):hover { - background-color: #555555; - background: #222222; } - .top-bar-section li.active:not(.has-form) a:not(.button) { - background: #008CBA; - color: #FFFFFF; - line-height: 2.8125rem; - padding: 0 0.9375rem; } - .top-bar-section li.active:not(.has-form) a:not(.button):hover { - background: #0078a0; - color: #FFFFFF; } - .top-bar-section .has-dropdown > a { - padding-right: 2.1875rem !important; } - .top-bar-section .has-dropdown > a:after { - border: inset 5px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: rgba(255, 255, 255, 0.4) transparent transparent transparent; - border-top-style: solid; - margin-top: -2.5px; - top: 1.40625rem; } - .top-bar-section .has-dropdown.moved { - position: relative; } - .top-bar-section .has-dropdown.moved > .dropdown { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; - display: block; } - .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - display: block; - position: absolute !important; } - .top-bar-section .has-dropdown > a:focus + .dropdown { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - display: block; - position: absolute !important; } - .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after { - border: none; - content: "\00bb"; - top: 0.1875rem; - right: 5px; } - .top-bar-section .dropdown { - left: 0; - background: transparent; - min-width: 100%; - top: auto; } - .top-bar-section .dropdown li a { - background: #333333; - color: #FFFFFF; - line-height: 2.8125rem; - padding: 12px 0.9375rem; - white-space: nowrap; } - .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) { - background: #333333; - color: #FFFFFF; } - .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) { - background-color: #555555; - color: #FFFFFF; - background: #222222; } - .top-bar-section .dropdown li label { - background: #333333; - white-space: nowrap; } - .top-bar-section .dropdown li .dropdown { - left: 100%; - top: 0; } - .top-bar-section > ul > .divider, - .top-bar-section > ul > [role="separator"] { - border-right: solid 1px #4e4e4e; - border-bottom: none; - border-top: none; - clear: none; - height: 2.8125rem; - width: 0; } - .top-bar-section .has-form { - background: #333333; - height: 2.8125rem; - padding: 0 0.9375rem; } - .top-bar-section .right li .dropdown { - left: auto; - right: 0; } - .top-bar-section .right li .dropdown li .dropdown { - right: 100%; } - .top-bar-section .left li .dropdown { - right: auto; - left: 0; } - .top-bar-section .left li .dropdown li .dropdown { - left: 100%; } - - .no-js .top-bar-section ul li:hover > a { - background-color: #555555; - background: #222222; - color: #FFFFFF; } - .no-js .top-bar-section ul li:active > a { - background: #008CBA; - color: #FFFFFF; } - .no-js .top-bar-section .has-dropdown:hover > .dropdown { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - display: block; - position: absolute !important; } - .no-js .top-bar-section .has-dropdown > a:focus + .dropdown { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; - display: block; - position: absolute !important; } } -.breadcrumbs { - border-style: solid; - border-width: 1px; - display: block; - list-style: none; - margin-left: 0; - overflow: hidden; - padding: 0.5625rem 0.875rem 0.5625rem; - background-color: #f4f4f4; - border-color: gainsboro; - border-radius: 3px; } - .breadcrumbs > * { - color: #008CBA; - float: left; - font-size: 0.6875rem; - line-height: 0.6875rem; - margin: 0; - text-transform: uppercase; } - .breadcrumbs > *:hover a, .breadcrumbs > *:focus a { - text-decoration: underline; } - .breadcrumbs > * a { - color: #008CBA; } - .breadcrumbs > *.current { - color: #333333; - cursor: default; } - .breadcrumbs > *.current a { - color: #333333; - cursor: default; } - .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a { - text-decoration: none; } - .breadcrumbs > *.unavailable { - color: #999999; } - .breadcrumbs > *.unavailable a { - color: #999999; } - .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus, - .breadcrumbs > *.unavailable a:focus { - color: #999999; - cursor: not-allowed; - text-decoration: none; } - .breadcrumbs > *:before { - color: #AAAAAA; - content: "/"; - margin: 0 0.75rem; - position: relative; - top: 1px; } - .breadcrumbs > *:first-child:before { - content: " "; - margin: 0; } - -/* Accessibility - hides the forward slash */ -[aria-label="breadcrumbs"] [aria-hidden="true"]:after { - content: "/"; } - -.alert-box { - border-style: solid; - border-width: 1px; - display: block; - font-size: 0.8125rem; - font-weight: normal; - margin-bottom: 1.25rem; - padding: 0.875rem 1.5rem 0.875rem 0.875rem; - position: relative; - transition: opacity 300ms ease-out; - background-color: #008CBA; - border-color: #0078a0; - color: #FFFFFF; } - .alert-box .close { - right: 0.25rem; - background: inherit; - color: #333333; - font-size: 1.375rem; - line-height: .9; - margin-top: -0.6875rem; - opacity: 0.3; - padding: 0 6px 4px; - position: absolute; - top: 50%; } - .alert-box .close:hover, .alert-box .close:focus { - opacity: 0.5; } - .alert-box.radius { - border-radius: 3px; } - .alert-box.round { - border-radius: 1000px; } - .alert-box.success { - background-color: #43AC6A; - border-color: #3a945b; - color: #FFFFFF; } - .alert-box.alert { - background-color: #f04124; - border-color: #de2d0f; - color: #FFFFFF; } - .alert-box.secondary { - background-color: #e7e7e7; - border-color: #c7c7c7; - color: #4f4f4f; } - .alert-box.warning { - background-color: #f08a24; - border-color: #de770f; - color: #FFFFFF; } - .alert-box.info { - background-color: #a0d3e8; - border-color: #74bfdd; - color: #4f4f4f; } - .alert-box.alert-close { - opacity: 0; } - -.inline-list { - list-style: none; - margin-top: 0; - margin-bottom: 1.0625rem; - margin-left: -1.375rem; - margin-right: 0; - overflow: hidden; - padding: 0; } - .inline-list > li { - display: block; - float: left; - list-style: none; - margin-left: 1.375rem; } - .inline-list > li > * { - display: block; } - -.button-group { - list-style: none; - margin: 0; - left: 0; } - .button-group:before, .button-group:after { - content: " "; - display: table; } - .button-group:after { - clear: both; } - .button-group.even-2 li { - display: inline-block; - margin: 0 -2px; - width: 50%; } - .button-group.even-2 li > button, .button-group.even-2 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button { - border-left: 0; } - .button-group.even-2 li button, .button-group.even-2 li .button { - width: 100%; } - .button-group.even-3 li { - display: inline-block; - margin: 0 -2px; - width: 33.33333%; } - .button-group.even-3 li > button, .button-group.even-3 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button { - border-left: 0; } - .button-group.even-3 li button, .button-group.even-3 li .button { - width: 100%; } - .button-group.even-4 li { - display: inline-block; - margin: 0 -2px; - width: 25%; } - .button-group.even-4 li > button, .button-group.even-4 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button { - border-left: 0; } - .button-group.even-4 li button, .button-group.even-4 li .button { - width: 100%; } - .button-group.even-5 li { - display: inline-block; - margin: 0 -2px; - width: 20%; } - .button-group.even-5 li > button, .button-group.even-5 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button { - border-left: 0; } - .button-group.even-5 li button, .button-group.even-5 li .button { - width: 100%; } - .button-group.even-6 li { - display: inline-block; - margin: 0 -2px; - width: 16.66667%; } - .button-group.even-6 li > button, .button-group.even-6 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button { - border-left: 0; } - .button-group.even-6 li button, .button-group.even-6 li .button { - width: 100%; } - .button-group.even-7 li { - display: inline-block; - margin: 0 -2px; - width: 14.28571%; } - .button-group.even-7 li > button, .button-group.even-7 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button { - border-left: 0; } - .button-group.even-7 li button, .button-group.even-7 li .button { - width: 100%; } - .button-group.even-8 li { - display: inline-block; - margin: 0 -2px; - width: 12.5%; } - .button-group.even-8 li > button, .button-group.even-8 li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button { - border-left: 0; } - .button-group.even-8 li button, .button-group.even-8 li .button { - width: 100%; } - .button-group > li { - display: inline-block; - margin: 0 -2px; } - .button-group > li > button, .button-group > li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group > li:first-child button, .button-group > li:first-child .button { - border-left: 0; } - .button-group.stack > li { - display: block; - margin: 0; - float: none; } - .button-group.stack > li > button, .button-group.stack > li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button { - border-left: 0; } - .button-group.stack > li > button, .button-group.stack > li .button { - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0; - border-top: 1px solid; - display: block; - margin: 0; } - .button-group.stack > li > button { - width: 100%; } - .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button { - border-top: 0; } - .button-group.stack-for-small > li { - display: inline-block; - margin: 0 -2px; } - .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { - border-left: 0; } - @media only screen and (max-width: 40em) { - .button-group.stack-for-small > li { - display: block; - margin: 0; - width: 100%; } - .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { - border-left: 0; } - .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button { - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0; - border-top: 1px solid; - display: block; - margin: 0; } - .button-group.stack-for-small > li > button { - width: 100%; } - .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button { - border-top: 0; } } - .button-group.radius > * { - display: inline-block; - margin: 0 -2px; } - .button-group.radius > * > button, .button-group.radius > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button { - border-left: 0; } - .button-group.radius > *, - .button-group.radius > * > a, - .button-group.radius > * > button, - .button-group.radius > * > .button { - border-radius: 0; } - .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button { - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button { - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - .button-group.radius.stack > * { - display: block; - margin: 0; } - .button-group.radius.stack > * > button, .button-group.radius.stack > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button { - border-left: 0; } - .button-group.radius.stack > * > button, .button-group.radius.stack > * .button { - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0; - border-top: 1px solid; - display: block; - margin: 0; } - .button-group.radius.stack > * > button { - width: 100%; } - .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button { - border-top: 0; } - .button-group.radius.stack > *, - .button-group.radius.stack > * > a, - .button-group.radius.stack > * > button, - .button-group.radius.stack > * > .button { - border-radius: 0; } - .button-group.radius.stack > *:first-child, .button-group.radius.stack > *:first-child > a, .button-group.radius.stack > *:first-child > button, .button-group.radius.stack > *:first-child > .button { - -webkit-top-left-radius: 3px; - -webkit-top-right-radius: 3px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; } - .button-group.radius.stack > *:last-child, .button-group.radius.stack > *:last-child > a, .button-group.radius.stack > *:last-child > button, .button-group.radius.stack > *:last-child > .button { - -webkit-bottom-left-radius: 3px; - -webkit-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; } - @media only screen and (min-width: 40.0625em) { - .button-group.radius.stack-for-small > * { - display: inline-block; - margin: 0 -2px; } - .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { - border-left: 0; } - .button-group.radius.stack-for-small > *, - .button-group.radius.stack-for-small > * > a, - .button-group.radius.stack-for-small > * > button, - .button-group.radius.stack-for-small > * > .button { - border-radius: 0; } - .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button { - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button { - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } } - @media only screen and (max-width: 40em) { - .button-group.radius.stack-for-small > * { - display: block; - margin: 0; } - .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { - border-left: 0; } - .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button { - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0; - border-top: 1px solid; - display: block; - margin: 0; } - .button-group.radius.stack-for-small > * > button { - width: 100%; } - .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button { - border-top: 0; } - .button-group.radius.stack-for-small > *, - .button-group.radius.stack-for-small > * > a, - .button-group.radius.stack-for-small > * > button, - .button-group.radius.stack-for-small > * > .button { - border-radius: 0; } - .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button { - -webkit-top-left-radius: 3px; - -webkit-top-right-radius: 3px; - border-top-left-radius: 3px; - border-top-right-radius: 3px; } - .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button { - -webkit-bottom-left-radius: 3px; - -webkit-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; } } - .button-group.round > * { - display: inline-block; - margin: 0 -2px; } - .button-group.round > * > button, .button-group.round > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.round > *:first-child button, .button-group.round > *:first-child .button { - border-left: 0; } - .button-group.round > *, - .button-group.round > * > a, - .button-group.round > * > button, - .button-group.round > * > .button { - border-radius: 0; } - .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button { - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } - .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button { - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } - .button-group.round.stack > * { - display: block; - margin: 0; } - .button-group.round.stack > * > button, .button-group.round.stack > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button { - border-left: 0; } - .button-group.round.stack > * > button, .button-group.round.stack > * .button { - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0; - border-top: 1px solid; - display: block; - margin: 0; } - .button-group.round.stack > * > button { - width: 100%; } - .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button { - border-top: 0; } - .button-group.round.stack > *, - .button-group.round.stack > * > a, - .button-group.round.stack > * > button, - .button-group.round.stack > * > .button { - border-radius: 0; } - .button-group.round.stack > *:first-child, .button-group.round.stack > *:first-child > a, .button-group.round.stack > *:first-child > button, .button-group.round.stack > *:first-child > .button { - -webkit-top-left-radius: 1rem; - -webkit-top-right-radius: 1rem; - border-top-left-radius: 1rem; - border-top-right-radius: 1rem; } - .button-group.round.stack > *:last-child, .button-group.round.stack > *:last-child > a, .button-group.round.stack > *:last-child > button, .button-group.round.stack > *:last-child > .button { - -webkit-bottom-left-radius: 1rem; - -webkit-bottom-right-radius: 1rem; - border-bottom-left-radius: 1rem; - border-bottom-right-radius: 1rem; } - @media only screen and (min-width: 40.0625em) { - .button-group.round.stack-for-small > * { - display: inline-block; - margin: 0 -2px; } - .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { - border-left: 0; } - .button-group.round.stack-for-small > *, - .button-group.round.stack-for-small > * > a, - .button-group.round.stack-for-small > * > button, - .button-group.round.stack-for-small > * > .button { - border-radius: 0; } - .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button { - -webkit-border-bottom-left-radius: 1000px; - -webkit-border-top-left-radius: 1000px; - border-bottom-left-radius: 1000px; - border-top-left-radius: 1000px; } - .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button { - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } } - @media only screen and (max-width: 40em) { - .button-group.round.stack-for-small > * { - display: block; - margin: 0; } - .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { - border-left: 1px solid; - border-color: rgba(255, 255, 255, 0.5); } - .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { - border-left: 0; } - .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button { - border-color: rgba(255, 255, 255, 0.5); - border-left-width: 0; - border-top: 1px solid; - display: block; - margin: 0; } - .button-group.round.stack-for-small > * > button { - width: 100%; } - .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button { - border-top: 0; } - .button-group.round.stack-for-small > *, - .button-group.round.stack-for-small > * > a, - .button-group.round.stack-for-small > * > button, - .button-group.round.stack-for-small > * > .button { - border-radius: 0; } - .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button { - -webkit-top-left-radius: 1rem; - -webkit-top-right-radius: 1rem; - border-top-left-radius: 1rem; - border-top-right-radius: 1rem; } - .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button { - -webkit-bottom-left-radius: 1rem; - -webkit-bottom-right-radius: 1rem; - border-bottom-left-radius: 1rem; - border-bottom-right-radius: 1rem; } } - -.button-bar:before, .button-bar:after { - content: " "; - display: table; } -.button-bar:after { - clear: both; } -.button-bar .button-group { - float: left; - margin-right: 0.625rem; } - .button-bar .button-group div { - overflow: hidden; } - -/* Panels */ -.panel { - border-style: solid; - border-width: 1px; - border-color: #d8d8d8; - margin-bottom: 1.25rem; - padding: 1.25rem; - background: #f2f2f2; - color: #333333; } - .panel > :first-child { - margin-top: 0; } - .panel > :last-child { - margin-bottom: 0; } - .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p, .panel li, .panel dl { - color: #333333; } - .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 { - line-height: 1; - margin-bottom: 0.625rem; } - .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader { - line-height: 1.4; } - .panel.callout { - border-style: solid; - border-width: 1px; - border-color: #d8d8d8; - margin-bottom: 1.25rem; - padding: 1.25rem; - background: #ecfaff; - color: #333333; } - .panel.callout > :first-child { - margin-top: 0; } - .panel.callout > :last-child { - margin-bottom: 0; } - .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p, .panel.callout li, .panel.callout dl { - color: #333333; } - .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 { - line-height: 1; - margin-bottom: 0.625rem; } - .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader { - line-height: 1.4; } - .panel.callout a:not(.button) { - color: #008CBA; } - .panel.callout a:not(.button):hover, .panel.callout a:not(.button):focus { - color: #0078a0; } - .panel.radius { - border-radius: 3px; } - -.dropdown.button, button.dropdown { - position: relative; - padding-right: 3.5625rem; } - .dropdown.button::after, button.dropdown::after { - border-color: #FFFFFF transparent transparent transparent; - border-style: solid; - content: ""; - display: block; - height: 0; - position: absolute; - top: 50%; - width: 0; } - .dropdown.button::after, button.dropdown::after { - border-width: 0.375rem; - right: 1.40625rem; - margin-top: -0.15625rem; } - .dropdown.button::after, button.dropdown::after { - border-color: #FFFFFF transparent transparent transparent; } - .dropdown.button.tiny, button.dropdown.tiny { - padding-right: 2.625rem; } - .dropdown.button.tiny:after, button.dropdown.tiny:after { - border-width: 0.375rem; - right: 1.125rem; - margin-top: -0.125rem; } - .dropdown.button.tiny::after, button.dropdown.tiny::after { - border-color: #FFFFFF transparent transparent transparent; } - .dropdown.button.small, button.dropdown.small { - padding-right: 3.0625rem; } - .dropdown.button.small::after, button.dropdown.small::after { - border-width: 0.4375rem; - right: 1.3125rem; - margin-top: -0.15625rem; } - .dropdown.button.small::after, button.dropdown.small::after { - border-color: #FFFFFF transparent transparent transparent; } - .dropdown.button.large, button.dropdown.large { - padding-right: 3.625rem; } - .dropdown.button.large::after, button.dropdown.large::after { - border-width: 0.3125rem; - right: 1.71875rem; - margin-top: -0.15625rem; } - .dropdown.button.large::after, button.dropdown.large::after { - border-color: #FFFFFF transparent transparent transparent; } - .dropdown.button.secondary:after, button.dropdown.secondary:after { - border-color: #333333 transparent transparent transparent; } - -/* Image Thumbnails */ -.th { - border: solid 4px #FFFFFF; - box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2); - display: inline-block; - line-height: 0; - max-width: 100%; - transition: all 200ms ease-out; } - .th:hover, .th:focus { - box-shadow: 0 0 6px 1px rgba(0, 140, 186, 0.5); } - .th.radius { - border-radius: 3px; } - -/* Pricing Tables */ -.pricing-table { - border: solid 1px #DDDDDD; - margin-left: 0; - margin-bottom: 1.25rem; } - .pricing-table * { - list-style: none; - line-height: 1; } - .pricing-table .title { - background-color: #333333; - color: #EEEEEE; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 1rem; - font-weight: normal; - padding: 0.9375rem 1.25rem; - text-align: center; } - .pricing-table .price { - background-color: #F6F6F6; - color: #333333; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 2rem; - font-weight: normal; - padding: 0.9375rem 1.25rem; - text-align: center; } - .pricing-table .description { - background-color: #FFFFFF; - border-bottom: dotted 1px #DDDDDD; - color: #777777; - font-size: 0.75rem; - font-weight: normal; - line-height: 1.4; - padding: 0.9375rem; - text-align: center; } - .pricing-table .bullet-item { - background-color: #FFFFFF; - border-bottom: dotted 1px #DDDDDD; - color: #333333; - font-size: 0.875rem; - font-weight: normal; - padding: 0.9375rem; - text-align: center; } - .pricing-table .cta-button { - background-color: #FFFFFF; - padding: 1.25rem 1.25rem 0; - text-align: center; } - -@-webkit-keyframes rotate { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); } - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); } } -@keyframes rotate { - from { - -webkit-transform: rotate(0deg); - -moz-transform: rotate(0deg); - -ms-transform: rotate(0deg); - transform: rotate(0deg); } - to { - -webkit-transform: rotate(360deg); - -moz-transform: rotate(360deg); - -ms-transform: rotate(360deg); - transform: rotate(360deg); } } -/* Orbit Graceful Loading */ -.slideshow-wrapper { - position: relative; } - .slideshow-wrapper ul { - list-style-type: none; - margin: 0; } - .slideshow-wrapper ul li, - .slideshow-wrapper ul li .orbit-caption { - display: none; } - .slideshow-wrapper ul li:first-child { - display: block; } - .slideshow-wrapper .orbit-container { - background-color: transparent; } - .slideshow-wrapper .orbit-container li { - display: block; } - .slideshow-wrapper .orbit-container li .orbit-caption { - display: block; } - .slideshow-wrapper .orbit-container .orbit-bullets li { - display: inline-block; } - .slideshow-wrapper .preloader { - border-radius: 1000px; - animation-duration: 1.5s; - animation-iteration-count: infinite; - animation-name: rotate; - animation-timing-function: linear; - border-color: #555555 #FFFFFF; - border: solid 3px; - display: block; - height: 40px; - left: 50%; - margin-left: -20px; - margin-top: -20px; - position: absolute; - top: 50%; - width: 40px; } - -.orbit-container { - background: none; - overflow: hidden; - position: relative; - width: 100%; } - .orbit-container .orbit-slides-container { - list-style: none; - margin: 0; - padding: 0; - position: relative; - -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -ms-transform: translateZ(0); - -o-transform: translateZ(0); - transform: translateZ(0); } - .orbit-container .orbit-slides-container img { - display: block; - max-width: 100%; } - .orbit-container .orbit-slides-container > * { - position: absolute; - top: 0; - width: 100%; - margin-left: 100%; } - .orbit-container .orbit-slides-container > *:first-child { - margin-left: 0; } - .orbit-container .orbit-slides-container > * .orbit-caption { - bottom: 0; - position: absolute; - background-color: rgba(51, 51, 51, 0.8); - color: #FFFFFF; - font-size: 0.875rem; - padding: 0.625rem 0.875rem; - width: 100%; } - .orbit-container .orbit-slide-number { - left: 10px; - background: transparent; - color: #FFFFFF; - font-size: 12px; - position: absolute; - top: 10px; - z-index: 10; } - .orbit-container .orbit-slide-number span { - font-weight: 700; - padding: 0.3125rem; } - .orbit-container .orbit-timer { - position: absolute; - top: 12px; - right: 10px; - height: 6px; - width: 100px; - z-index: 10; } - .orbit-container .orbit-timer .orbit-progress { - height: 3px; - background-color: rgba(255, 255, 255, 0.3); - display: block; - width: 0; - position: relative; - right: 20px; - top: 5px; } - .orbit-container .orbit-timer > span { - border: solid 4px #FFFFFF; - border-bottom: none; - border-top: none; - display: none; - height: 14px; - position: absolute; - top: 0; - width: 11px; - right: 0; } - .orbit-container .orbit-timer.paused > span { - top: 0; - width: 11px; - height: 14px; - border: inset 8px; - border-left-style: solid; - border-color: transparent; - border-left-color: #FFFFFF; - right: -4px; } - .orbit-container .orbit-timer.paused > span.dark { - border-left-color: #333333; } - .orbit-container:hover .orbit-timer > span { - display: block; } - .orbit-container .orbit-prev, - .orbit-container .orbit-next { - background-color: transparent; - color: white; - height: 60px; - line-height: 50px; - margin-top: -25px; - position: absolute; - text-indent: -9999px !important; - top: 45%; - width: 36px; - z-index: 10; } - .orbit-container .orbit-prev:hover, - .orbit-container .orbit-next:hover { - background-color: rgba(0, 0, 0, 0.3); } - .orbit-container .orbit-prev > span, - .orbit-container .orbit-next > span { - border: inset 10px; - display: block; - height: 0; - margin-top: -10px; - position: absolute; - top: 50%; - width: 0; } - .orbit-container .orbit-prev { - left: 0; } - .orbit-container .orbit-prev > span { - border-right-style: solid; - border-color: transparent; - border-right-color: #FFFFFF; } - .orbit-container .orbit-prev:hover > span { - border-right-color: #FFFFFF; } - .orbit-container .orbit-next { - right: 0; } - .orbit-container .orbit-next > span { - border-color: transparent; - border-left-style: solid; - border-left-color: #FFFFFF; - left: 50%; - margin-left: -4px; } - .orbit-container .orbit-next:hover > span { - border-left-color: #FFFFFF; } - -.orbit-bullets-container { - text-align: center; } - -.orbit-bullets { - display: block; - float: none; - margin: 0 auto 30px auto; - overflow: hidden; - position: relative; - text-align: center; - top: 10px; } - .orbit-bullets li { - background: #CCCCCC; - cursor: pointer; - display: inline-block; - float: none; - height: 0.5625rem; - margin-right: 6px; - width: 0.5625rem; - border-radius: 1000px; } - .orbit-bullets li.active { - background: #999999; } - .orbit-bullets li:last-child { - margin-right: 0; } - -.touch .orbit-container .orbit-prev, -.touch .orbit-container .orbit-next { - display: none; } -.touch .orbit-bullets { - display: none; } - -@media only screen and (min-width: 40.0625em) { - .touch .orbit-container .orbit-prev, - .touch .orbit-container .orbit-next { - display: inherit; } - .touch .orbit-bullets { - display: block; } } -@media only screen and (max-width: 40em) { - .orbit-stack-on-small .orbit-slides-container { - height: auto !important; } - .orbit-stack-on-small .orbit-slides-container > * { - margin: 0 !important; - opacity: 1 !important; - position: relative; } - .orbit-stack-on-small .orbit-slide-number { - display: none; } - - .orbit-timer { - display: none; } - - .orbit-next, .orbit-prev { - display: none; } - - .orbit-bullets { - display: none; } } -[data-magellan-expedition], [data-magellan-expedition-clone] { - background: #FFFFFF; - min-width: 100%; - padding: 10px; - z-index: 50; } - [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav { - margin-bottom: 0; } - [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd { - margin-bottom: 0; } - [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a { - line-height: 1.8em; } - -.icon-bar { - display: inline-block; - font-size: 0; - width: 100%; - background: #333333; } - .icon-bar > * { - display: block; - float: left; - font-size: 1rem; - margin: 0 auto; - padding: 1.25rem; - text-align: center; - width: 25%; } - .icon-bar > * i, .icon-bar > * img { - display: block; - margin: 0 auto; } - .icon-bar > * i + label, .icon-bar > * img + label { - margin-top: .0625rem; } - .icon-bar > * i { - font-size: 1.875rem; - vertical-align: middle; } - .icon-bar > * img { - height: 1.875rem; - width: 1.875rem; } - .icon-bar.label-right > * i, .icon-bar.label-right > * img { - display: inline-block; - margin: 0 .0625rem 0 0; } - .icon-bar.label-right > * i + label, .icon-bar.label-right > * img + label { - margin-top: 0; } - .icon-bar.label-right > * label { - display: inline-block; } - .icon-bar.vertical.label-right > * { - text-align: left; } - .icon-bar.vertical, .icon-bar.small-vertical { - height: 100%; - width: auto; } - .icon-bar.vertical .item, .icon-bar.small-vertical .item { - float: none; - margin: auto; - width: auto; } - @media only screen and (min-width: 40.0625em) { - .icon-bar.medium-vertical { - height: 100%; - width: auto; } - .icon-bar.medium-vertical .item { - float: none; - margin: auto; - width: auto; } } - @media only screen and (min-width: 64.0625em) { - .icon-bar.large-vertical { - height: 100%; - width: auto; } - .icon-bar.large-vertical .item { - float: none; - margin: auto; - width: auto; } } - .icon-bar > * { - font-size: 1rem; - padding: 1.25rem; } - .icon-bar > * i + label, .icon-bar > * img + label { - margin-top: .0625rem; - font-size: 1rem; } - .icon-bar > * i { - font-size: 1.875rem; } - .icon-bar > * img { - height: 1.875rem; - width: 1.875rem; } - .icon-bar > * label { - color: #FFFFFF; } - .icon-bar > * i { - color: #FFFFFF; } - .icon-bar > a:hover { - background: #008CBA; } - .icon-bar > a:hover label { - color: #FFFFFF; } - .icon-bar > a:hover i { - color: #FFFFFF; } - .icon-bar > a.active { - background: #008CBA; } - .icon-bar > a.active label { - color: #FFFFFF; } - .icon-bar > a.active i { - color: #FFFFFF; } - .icon-bar .item.disabled { - cursor: not-allowed; - opacity: 0.7; - pointer-events: none; } - .icon-bar .item.disabled > * { - opacity: 0.7; - cursor: not-allowed; } - .icon-bar.two-up .item { - width: 50%; } - .icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item { - width: auto; } - @media only screen and (min-width: 40.0625em) { - .icon-bar.two-up.medium-vertical .item { - width: auto; } } - @media only screen and (min-width: 64.0625em) { - .icon-bar.two-up.large-vertical .item { - width: auto; } } - .icon-bar.three-up .item { - width: 33.3333%; } - .icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item { - width: auto; } - @media only screen and (min-width: 40.0625em) { - .icon-bar.three-up.medium-vertical .item { - width: auto; } } - @media only screen and (min-width: 64.0625em) { - .icon-bar.three-up.large-vertical .item { - width: auto; } } - .icon-bar.four-up .item { - width: 25%; } - .icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item { - width: auto; } - @media only screen and (min-width: 40.0625em) { - .icon-bar.four-up.medium-vertical .item { - width: auto; } } - @media only screen and (min-width: 64.0625em) { - .icon-bar.four-up.large-vertical .item { - width: auto; } } - .icon-bar.five-up .item { - width: 20%; } - .icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item { - width: auto; } - @media only screen and (min-width: 40.0625em) { - .icon-bar.five-up.medium-vertical .item { - width: auto; } } - @media only screen and (min-width: 64.0625em) { - .icon-bar.five-up.large-vertical .item { - width: auto; } } - .icon-bar.six-up .item { - width: 16.66667%; } - .icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item { - width: auto; } - @media only screen and (min-width: 40.0625em) { - .icon-bar.six-up.medium-vertical .item { - width: auto; } } - @media only screen and (min-width: 64.0625em) { - .icon-bar.six-up.large-vertical .item { - width: auto; } } - .icon-bar.seven-up .item { - width: 14.28571%; } - .icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item { - width: auto; } - @media only screen and (min-width: 40.0625em) { - .icon-bar.seven-up.medium-vertical .item { - width: auto; } } - @media only screen and (min-width: 64.0625em) { - .icon-bar.seven-up.large-vertical .item { - width: auto; } } - .icon-bar.eight-up .item { - width: 12.5%; } - .icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item { - width: auto; } - @media only screen and (min-width: 40.0625em) { - .icon-bar.eight-up.medium-vertical .item { - width: auto; } } - @media only screen and (min-width: 64.0625em) { - .icon-bar.eight-up.large-vertical .item { - width: auto; } } - -.icon-bar.two-up .item { - width: 50%; } -.icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.0625em) { - .icon-bar.two-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.0625em) { - .icon-bar.two-up.large-vertical .item { - width: auto; } } -.icon-bar.three-up .item { - width: 33.3333%; } -.icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.0625em) { - .icon-bar.three-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.0625em) { - .icon-bar.three-up.large-vertical .item { - width: auto; } } -.icon-bar.four-up .item { - width: 25%; } -.icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.0625em) { - .icon-bar.four-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.0625em) { - .icon-bar.four-up.large-vertical .item { - width: auto; } } -.icon-bar.five-up .item { - width: 20%; } -.icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.0625em) { - .icon-bar.five-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.0625em) { - .icon-bar.five-up.large-vertical .item { - width: auto; } } -.icon-bar.six-up .item { - width: 16.66667%; } -.icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.0625em) { - .icon-bar.six-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.0625em) { - .icon-bar.six-up.large-vertical .item { - width: auto; } } -.icon-bar.seven-up .item { - width: 14.28571%; } -.icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.0625em) { - .icon-bar.seven-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.0625em) { - .icon-bar.seven-up.large-vertical .item { - width: auto; } } -.icon-bar.eight-up .item { - width: 12.5%; } -.icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item { - width: auto; } -@media only screen and (min-width: 40.0625em) { - .icon-bar.eight-up.medium-vertical .item { - width: auto; } } -@media only screen and (min-width: 64.0625em) { - .icon-bar.eight-up.large-vertical .item { - width: auto; } } - -.tabs { - margin-bottom: 0 !important; - margin-left: 0; } - .tabs:before, .tabs:after { - content: " "; - display: table; } - .tabs:after { - clear: both; } - .tabs dd, - .tabs .tab-title { - float: left; - list-style: none; - margin-bottom: 0 !important; - position: relative; } - .tabs dd > a, - .tabs .tab-title > a { - display: block; - background-color: #EFEFEF; - color: #222222; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 1rem; - padding: 1rem 2rem; } - .tabs dd > a:hover, - .tabs .tab-title > a:hover { - background-color: #e1e1e1; } - .tabs dd.active > a, - .tabs .tab-title.active > a { - background-color: #FFFFFF; - color: #222222; } - .tabs.radius dd:first-child a, - .tabs.radius .tab:first-child a { - -webkit-border-bottom-left-radius: 3px; - -webkit-border-top-left-radius: 3px; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; } - .tabs.radius dd:last-child a, - .tabs.radius .tab:last-child a { - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - .tabs.vertical dd, - .tabs.vertical .tab-title { - position: inherit; - float: none; - display: block; - top: auto; } - -.tabs-content { - margin-bottom: 1.5rem; - width: 100%; } - .tabs-content:before, .tabs-content:after { - content: " "; - display: table; } - .tabs-content:after { - clear: both; } - .tabs-content > .content { - display: none; - float: left; - padding: 0.9375rem 0; - width: 100%; } - .tabs-content > .content.active { - display: block; - float: none; } - .tabs-content > .content.contained { - padding: 0.9375rem; } - .tabs-content.vertical { - display: block; } - .tabs-content.vertical > .content { - padding: 0 0.9375rem; } - -@media only screen and (min-width: 40.0625em) { - .tabs.vertical { - float: left; - margin: 0; - margin-bottom: 1.25rem !important; - max-width: 20%; - width: 20%; } - - .tabs-content.vertical { - float: left; - margin-left: -1px; - max-width: 80%; - padding-left: 1rem; - width: 80%; } } -.no-js .tabs-content > .content { - display: block; - float: none; } - -ul.pagination { - display: block; - margin-left: -0.3125rem; - min-height: 1.5rem; } - ul.pagination li { - color: #222222; - font-size: 0.875rem; - height: 1.5rem; - margin-left: 0.3125rem; } - ul.pagination li a, ul.pagination li button { - border-radius: 3px; - transition: background-color 300ms ease-out; - background: none; - color: #999999; - display: block; - font-size: 1em; - font-weight: normal; - line-height: inherit; - padding: 0.0625rem 0.625rem 0.0625rem; } - ul.pagination li:hover a, - ul.pagination li a:focus, ul.pagination li:hover button, - ul.pagination li button:focus { - background: #e6e6e6; } - ul.pagination li.unavailable a, ul.pagination li.unavailable button { - cursor: default; - color: #999999; - pointer-events: none; } - ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus, ul.pagination li.unavailable:hover button, ul.pagination li.unavailable button:focus { - background: transparent; } - ul.pagination li.current a, ul.pagination li.current button { - background: #008CBA; - color: #FFFFFF; - cursor: default; - font-weight: bold; } - ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus { - background: #008CBA; } - ul.pagination li { - display: block; - float: left; } - -/* Pagination centred wrapper */ -.pagination-centered { - text-align: center; } - .pagination-centered ul.pagination li { - display: inline-block; - float: none; } - -.side-nav { - display: block; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - list-style-position: outside; - list-style-type: none; - margin: 0; - padding: 0.875rem 0; } - .side-nav li { - font-size: 0.875rem; - font-weight: normal; - margin: 0 0 0.4375rem 0; } - .side-nav li a:not(.button) { - color: #008CBA; - display: block; - margin: 0; - padding: 0.4375rem 0.875rem; } - .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus { - background: rgba(0, 0, 0, 0.025); - color: #1cc7ff; } - .side-nav li a:not(.button):active { - color: #1cc7ff; } - .side-nav li.active > a:first-child:not(.button) { - color: #1cc7ff; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-weight: normal; } - .side-nav li.divider { - border-top: 1px solid; - height: 0; - list-style: none; - padding: 0; - border-top-color: #e6e6e6; } - .side-nav li.heading { - color: #008CBA; - font-size: 0.875rem; - font-weight: bold; - text-transform: uppercase; } - -.accordion { - margin-bottom: 0; - margin-left: 0; } - .accordion:before, .accordion:after { - content: " "; - display: table; } - .accordion:after { - clear: both; } - .accordion .accordion-navigation, .accordion dd { - display: block; - margin-bottom: 0 !important; } - .accordion .accordion-navigation.active > a, .accordion dd.active > a { - background: #e8e8e8; - color: #222222; } - .accordion .accordion-navigation > a, .accordion dd > a { - background: #EFEFEF; - color: #222222; - display: block; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 1rem; - padding: 1rem; } - .accordion .accordion-navigation > a:hover, .accordion dd > a:hover { - background: #e3e3e3; } - .accordion .accordion-navigation > .content, .accordion dd > .content { - display: none; - padding: 0.9375rem; } - .accordion .accordion-navigation > .content.active, .accordion dd > .content.active { - background: #FFFFFF; - display: block; } - -.text-left { - text-align: left !important; } - -.text-right { - text-align: right !important; } - -.text-center { - text-align: center !important; } - -.text-justify { - text-align: justify !important; } - -@media only screen and (max-width: 40em) { - .small-only-text-left { - text-align: left !important; } - - .small-only-text-right { - text-align: right !important; } - - .small-only-text-center { - text-align: center !important; } - - .small-only-text-justify { - text-align: justify !important; } } -@media only screen { - .small-text-left { - text-align: left !important; } - - .small-text-right { - text-align: right !important; } - - .small-text-center { - text-align: center !important; } - - .small-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 40.0625em) and (max-width: 64em) { - .medium-only-text-left { - text-align: left !important; } - - .medium-only-text-right { - text-align: right !important; } - - .medium-only-text-center { - text-align: center !important; } - - .medium-only-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 40.0625em) { - .medium-text-left { - text-align: left !important; } - - .medium-text-right { - text-align: right !important; } - - .medium-text-center { - text-align: center !important; } - - .medium-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 64.0625em) and (max-width: 90em) { - .large-only-text-left { - text-align: left !important; } - - .large-only-text-right { - text-align: right !important; } - - .large-only-text-center { - text-align: center !important; } - - .large-only-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 64.0625em) { - .large-text-left { - text-align: left !important; } - - .large-text-right { - text-align: right !important; } - - .large-text-center { - text-align: center !important; } - - .large-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 90.0625em) and (max-width: 120em) { - .xlarge-only-text-left { - text-align: left !important; } - - .xlarge-only-text-right { - text-align: right !important; } - - .xlarge-only-text-center { - text-align: center !important; } - - .xlarge-only-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 90.0625em) { - .xlarge-text-left { - text-align: left !important; } - - .xlarge-text-right { - text-align: right !important; } - - .xlarge-text-center { - text-align: center !important; } - - .xlarge-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 120.0625em) and (max-width: 6249999.9375em) { - .xxlarge-only-text-left { - text-align: left !important; } - - .xxlarge-only-text-right { - text-align: right !important; } - - .xxlarge-only-text-center { - text-align: center !important; } - - .xxlarge-only-text-justify { - text-align: justify !important; } } -@media only screen and (min-width: 120.0625em) { - .xxlarge-text-left { - text-align: left !important; } - - .xxlarge-text-right { - text-align: right !important; } - - .xxlarge-text-center { - text-align: center !important; } - - .xxlarge-text-justify { - text-align: justify !important; } } -/* Typography resets */ -div, -dl, -dt, -dd, -ul, -ol, -li, -h1, -h2, -h3, -h4, -h5, -h6, -pre, -form, -p, -blockquote, -th, -td { - margin: 0; - padding: 0; } - -/* Default Link Styles */ -a { - color: #008CBA; - line-height: inherit; - text-decoration: none; } - a:hover, a:focus { - color: #0078a0; } - a img { - border: none; } - -/* Default paragraph styles */ -p { - font-family: inherit; - font-size: 1rem; - font-weight: normal; - line-height: 1.6; - margin-bottom: 1.25rem; - text-rendering: optimizeLegibility; } - p.lead { - font-size: 1.21875rem; - line-height: 1.6; } - p aside { - font-size: 0.875rem; - font-style: italic; - line-height: 1.35; } - -/* Default header styles */ -h1, h2, h3, h4, h5, h6 { - color: #222222; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-style: normal; - font-weight: normal; - line-height: 1.4; - margin-bottom: 0.5rem; - margin-top: 0.2rem; - text-rendering: optimizeLegibility; } - h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { - color: #6f6f6f; - font-size: 60%; - line-height: 0; } - -h1 { - font-size: 2.125rem; } - -h2 { - font-size: 1.6875rem; } - -h3 { - font-size: 1.375rem; } - -h4 { - font-size: 1.125rem; } - -h5 { - font-size: 1.125rem; } - -h6 { - font-size: 1rem; } - -.subheader { - line-height: 1.4; - color: #6f6f6f; - font-weight: normal; - margin-top: 0.2rem; - margin-bottom: 0.5rem; } - -hr { - border: solid #DDDDDD; - border-width: 1px 0 0; - clear: both; - height: 0; - margin: 1.25rem 0 1.1875rem; } - -/* Helpful Typography Defaults */ -em, -i { - font-style: italic; - line-height: inherit; } - -strong, -b { - font-weight: bold; - line-height: inherit; } - -small { - font-size: 60%; - line-height: inherit; } - -code { - background-color: #f8f8f8; - border-color: #dfdfdf; - border-style: solid; - border-width: 1px; - color: #333333; - font-family: Consolas, "Liberation Mono", Courier, monospace; - font-weight: normal; - padding: 0.125rem 0.3125rem 0.0625rem; } - -/* Lists */ -ul, -ol, -dl { - font-family: inherit; - font-size: 1rem; - line-height: 1.6; - list-style-position: outside; - margin-bottom: 1.25rem; } - -ul { - margin-left: 1.1rem; } - -/* Unordered Lists */ -ul li ul, -ul li ol { - margin-left: 1.25rem; - margin-bottom: 0; } -ul.square li ul, ul.circle li ul, ul.disc li ul { - list-style: inherit; } -ul.square { - list-style-type: square; - margin-left: 1.1rem; } -ul.circle { - list-style-type: circle; - margin-left: 1.1rem; } -ul.disc { - list-style-type: disc; - margin-left: 1.1rem; } - -/* Ordered Lists */ -ol { - margin-left: 1.4rem; } - ol li ul, - ol li ol { - margin-left: 1.25rem; - margin-bottom: 0; } - -.no-bullet { - list-style-type: none; - margin-left: 0; } - .no-bullet li ul, - .no-bullet li ol { - margin-left: 1.25rem; - margin-bottom: 0; - list-style: none; } - -/* Definition Lists */ -dl dt { - margin-bottom: 0.3rem; - font-weight: bold; } -dl dd { - margin-bottom: 0.75rem; } - -/* Abbreviations */ -abbr, -acronym { - text-transform: uppercase; - font-size: 90%; - color: #222; - cursor: help; } - -abbr { - text-transform: none; } - abbr[title] { - border-bottom: 1px dotted #DDDDDD; } - -/* Blockquotes */ -blockquote { - margin: 0 0 1.25rem; - padding: 0.5625rem 1.25rem 0 1.1875rem; - border-left: 1px solid #DDDDDD; } - blockquote cite { - display: block; - font-size: 0.8125rem; - color: #555555; } - blockquote cite:before { - content: "\2014 \0020"; } - blockquote cite a, - blockquote cite a:visited { - color: #555555; } - -blockquote, -blockquote p { - line-height: 1.6; - color: #6f6f6f; } - -/* Microformats */ -.vcard { - display: inline-block; - margin: 0 0 1.25rem 0; - border: 1px solid #DDDDDD; - padding: 0.625rem 0.75rem; } - .vcard li { - margin: 0; - display: block; } - .vcard .fn { - font-weight: bold; - font-size: 0.9375rem; } - -.vevent .summary { - font-weight: bold; } -.vevent abbr { - cursor: default; - text-decoration: none; - font-weight: bold; - border: none; - padding: 0 0.0625rem; } - -@media only screen and (min-width: 40.0625em) { - h1, h2, h3, h4, h5, h6 { - line-height: 1.4; } - - h1 { - font-size: 2.75rem; } - - h2 { - font-size: 2.3125rem; } - - h3 { - font-size: 1.6875rem; } - - h4 { - font-size: 1.4375rem; } - - h5 { - font-size: 1.125rem; } - - h6 { - font-size: 1rem; } } -/* - * Print styles. - * - * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/ - * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com) -*/ -@media print { - * { - background: transparent !important; - color: #000000 !important; - /* Black prints faster: h5bp.com/s */ - box-shadow: none !important; - text-shadow: none !important; } - - a, - a:visited { - text-decoration: underline; } - - a[href]:after { - content: " (" attr(href) ")"; } - - abbr[title]:after { - content: " (" attr(title) ")"; } - - .ir a:after, - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; } - - pre, - blockquote { - border: 1px solid #999999; - page-break-inside: avoid; } - - thead { - display: table-header-group; - /* h5bp.com/t */ } - - tr, - img { - page-break-inside: avoid; } - - img { - max-width: 100% !important; } - - @page { - margin: 0.34in; } - p, - h2, - h3 { - orphans: 3; - widows: 3; } - - h2, - h3 { - page-break-after: avoid; } } -.split.button { - position: relative; - padding-right: 5.0625rem; } - .split.button span { - display: block; - height: 100%; - position: absolute; - right: 0; - top: 0; - border-left: solid 1px; } - .split.button span:after { - position: absolute; - content: ""; - width: 0; - height: 0; - display: block; - border-style: inset; - top: 50%; - left: 50%; } - .split.button span:active { - background-color: rgba(0, 0, 0, 0.1); } - .split.button span { - border-left-color: rgba(255, 255, 255, 0.5); } - .split.button span { - width: 3.09375rem; } - .split.button span:after { - border-top-style: solid; - border-width: 0.375rem; - margin-left: -0.375rem; - top: 48%; } - .split.button span:after { - border-color: #FFFFFF transparent transparent transparent; } - .split.button.secondary span { - border-left-color: rgba(255, 255, 255, 0.5); } - .split.button.secondary span:after { - border-color: #FFFFFF transparent transparent transparent; } - .split.button.alert span { - border-left-color: rgba(255, 255, 255, 0.5); } - .split.button.success span { - border-left-color: rgba(255, 255, 255, 0.5); } - .split.button.tiny { - padding-right: 3.75rem; } - .split.button.tiny span { - width: 2.25rem; } - .split.button.tiny span:after { - border-top-style: solid; - border-width: 0.375rem; - margin-left: -0.375rem; - top: 48%; } - .split.button.small { - padding-right: 4.375rem; } - .split.button.small span { - width: 2.625rem; } - .split.button.small span:after { - border-top-style: solid; - border-width: 0.4375rem; - margin-left: -0.375rem; - top: 48%; } - .split.button.large { - padding-right: 5.5rem; } - .split.button.large span { - width: 3.4375rem; } - .split.button.large span:after { - border-top-style: solid; - border-width: 0.3125rem; - margin-left: -0.375rem; - top: 48%; } - .split.button.expand { - padding-left: 2rem; } - .split.button.secondary span:after { - border-color: #333333 transparent transparent transparent; } - .split.button.radius span { - -webkit-border-bottom-right-radius: 3px; - -webkit-border-top-right-radius: 3px; - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; } - .split.button.round span { - -webkit-border-bottom-right-radius: 1000px; - -webkit-border-top-right-radius: 1000px; - border-bottom-right-radius: 1000px; - border-top-right-radius: 1000px; } - .split.button.no-pip span:before { - border-style: none; } - .split.button.no-pip span:after { - border-style: none; } - .split.button.no-pip span > i { - display: block; - left: 50%; - margin-left: -0.28889em; - margin-top: -0.48889em; - position: absolute; - top: 50%; } - -.reveal-modal-bg { - background: #000000; - background: rgba(0, 0, 0, 0.45); - bottom: 0; - display: none; - left: 0; - position: fixed; - right: 0; - top: 0; - z-index: 1004; - left: 0; } - -.reveal-modal { - border-radius: 3px; - display: none; - position: absolute; - top: 0; - visibility: hidden; - width: 100%; - z-index: 1005; - left: 0; - background-color: #FFFFFF; - padding: 1.875rem; - border: solid 1px #666666; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); } - @media only screen and (max-width: 40em) { - .reveal-modal { - min-height: 100vh; } } - .reveal-modal .column, .reveal-modal .columns { - min-width: 0; } - .reveal-modal > :first-child { - margin-top: 0; } - .reveal-modal > :last-child { - margin-bottom: 0; } - @media only screen and (min-width: 40.0625em) { - .reveal-modal { - left: 0; - margin: 0 auto; - max-width: 62.5rem; - right: 0; - width: 80%; } } - @media only screen and (min-width: 40.0625em) { - .reveal-modal { - top: 6.25rem; } } - .reveal-modal.radius { - box-shadow: none; - border-radius: 3px; } - .reveal-modal.round { - box-shadow: none; - border-radius: 1000px; } - .reveal-modal.collapse { - padding: 0; - box-shadow: none; } - @media only screen and (min-width: 40.0625em) { - .reveal-modal.tiny { - left: 0; - margin: 0 auto; - max-width: 62.5rem; - right: 0; - width: 30%; } } - @media only screen and (min-width: 40.0625em) { - .reveal-modal.small { - left: 0; - margin: 0 auto; - max-width: 62.5rem; - right: 0; - width: 40%; } } - @media only screen and (min-width: 40.0625em) { - .reveal-modal.medium { - left: 0; - margin: 0 auto; - max-width: 62.5rem; - right: 0; - width: 60%; } } - @media only screen and (min-width: 40.0625em) { - .reveal-modal.large { - left: 0; - margin: 0 auto; - max-width: 62.5rem; - right: 0; - width: 70%; } } - @media only screen and (min-width: 40.0625em) { - .reveal-modal.xlarge { - left: 0; - margin: 0 auto; - max-width: 62.5rem; - right: 0; - width: 95%; } } - .reveal-modal.full { - height: 100vh; - height: 100%; - left: 0; - margin-left: 0 !important; - max-width: none !important; - min-height: 100vh; - top: 0; } - @media only screen and (min-width: 40.0625em) { - .reveal-modal.full { - left: 0; - margin: 0 auto; - max-width: 62.5rem; - right: 0; - width: 100%; } } - .reveal-modal.toback { - z-index: 1003; } - .reveal-modal .close-reveal-modal { - color: #AAAAAA; - cursor: pointer; - font-size: 2.5rem; - font-weight: bold; - line-height: 1; - position: absolute; - top: 0.625rem; - right: 1.375rem; } - -/* Tooltips */ -.has-tip { - border-bottom: dotted 1px #CCCCCC; - color: #333333; - cursor: help; - font-weight: bold; } - .has-tip:hover, .has-tip:focus { - border-bottom: dotted 1px #003f54; - color: #008CBA; } - .has-tip.tip-left, .has-tip.tip-right { - float: none !important; } - -.tooltip { - background: #333333; - color: #FFFFFF; - display: none; - font-size: 0.875rem; - font-weight: normal; - line-height: 1.3; - max-width: 300px; - padding: 0.75rem; - position: absolute; - width: 100%; - z-index: 1006; - left: 50%; } - .tooltip > .nub { - border: solid 5px; - border-color: transparent transparent #333333 transparent; - display: block; - height: 0; - pointer-events: none; - position: absolute; - top: -10px; - width: 0; - left: 5px; } - .tooltip > .nub.rtl { - left: auto; - right: 5px; } - .tooltip.radius { - border-radius: 3px; } - .tooltip.round { - border-radius: 1000px; } - .tooltip.round > .nub { - left: 2rem; } - .tooltip.opened { - border-bottom: dotted 1px #003f54 !important; - color: #008CBA !important; } - -.tap-to-close { - color: #777777; - display: block; - font-size: 0.625rem; - font-weight: normal; } - -@media only screen { - .tooltip > .nub { - border-color: transparent transparent #333333 transparent; - top: -10px; } - .tooltip.tip-top > .nub { - border-color: #333333 transparent transparent transparent; - bottom: -10px; - top: auto; } - .tooltip.tip-left, .tooltip.tip-right { - float: none !important; } - .tooltip.tip-left > .nub { - border-color: transparent transparent transparent #333333; - left: auto; - margin-top: -5px; - right: -10px; - top: 50%; } - .tooltip.tip-right > .nub { - border-color: transparent #333333 transparent transparent; - left: -10px; - margin-top: -5px; - right: auto; - top: 50%; } } -/* Clearing Styles */ -.clearing-thumbs, [data-clearing] { - list-style: none; - margin-left: 0; - margin-bottom: 0; } - .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after { - content: " "; - display: table; } - .clearing-thumbs:after, [data-clearing]:after { - clear: both; } - .clearing-thumbs li, [data-clearing] li { - float: left; - margin-right: 10px; } - .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li { - margin-right: 0; } - -.clearing-blackout { - background: #333333; - height: 100%; - position: fixed; - top: 0; - width: 100%; - z-index: 998; - left: 0; } - .clearing-blackout .clearing-close { - display: block; } - -.clearing-container { - height: 100%; - margin: 0; - overflow: hidden; - position: relative; - z-index: 998; } - -.clearing-touch-label { - color: #AAAAAA; - font-size: .6em; - left: 50%; - position: absolute; - top: 50%; } - -.visible-img { - height: 95%; - position: relative; } - .visible-img img { - position: absolute; - left: 50%; - top: 50%; - -webkit-transform: translateY(-50%) translateX(-50%); - -moz-transform: translateY(-50%) translateX(-50%); - -ms-transform: translateY(-50%) translateX(-50%); - -o-transform: translateY(-50%) translateX(-50%); - transform: translateY(-50%) translateX(-50%); - max-height: 100%; - max-width: 100%; } - -.clearing-caption { - background: #333333; - bottom: 0; - color: #CCCCCC; - font-size: 0.875em; - line-height: 1.3; - margin-bottom: 0; - padding: 10px 30px 20px; - position: absolute; - text-align: center; - width: 100%; - left: 0; } - -.clearing-close { - color: #CCCCCC; - display: none; - font-size: 30px; - line-height: 1; - padding-left: 20px; - padding-top: 10px; - z-index: 999; } - .clearing-close:hover, .clearing-close:focus { - color: #CCCCCC; } - -.clearing-assembled .clearing-container { - height: 100%; } - .clearing-assembled .clearing-container .carousel > ul { - display: none; } - -.clearing-feature li { - display: none; } - .clearing-feature li.clearing-featured-img { - display: block; } - -@media only screen and (min-width: 40.0625em) { - .clearing-main-prev, - .clearing-main-next { - height: 100%; - position: absolute; - top: 0; - width: 40px; } - .clearing-main-prev > span, - .clearing-main-next > span { - border: solid 12px; - display: block; - height: 0; - position: absolute; - top: 50%; - width: 0; } - .clearing-main-prev > span:hover, - .clearing-main-next > span:hover { - opacity: .8; } - - .clearing-main-prev { - left: 0; } - .clearing-main-prev > span { - left: 5px; - border-color: transparent; - border-right-color: #CCCCCC; } - - .clearing-main-next { - right: 0; } - .clearing-main-next > span { - border-color: transparent; - border-left-color: #CCCCCC; } - - .clearing-main-prev.disabled, - .clearing-main-next.disabled { - opacity: .3; } - - .clearing-assembled .clearing-container .carousel { - background: rgba(51, 51, 51, 0.8); - height: 120px; - margin-top: 10px; - text-align: center; } - .clearing-assembled .clearing-container .carousel > ul { - display: inline-block; - z-index: 999; - height: 100%; - position: relative; - float: none; } - .clearing-assembled .clearing-container .carousel > ul li { - clear: none; - cursor: pointer; - display: block; - float: left; - margin-right: 0; - min-height: inherit; - opacity: .4; - overflow: hidden; - padding: 0; - position: relative; - width: 120px; } - .clearing-assembled .clearing-container .carousel > ul li.fix-height img { - height: 100%; - max-width: none; } - .clearing-assembled .clearing-container .carousel > ul li a.th { - border: none; - box-shadow: none; - display: block; } - .clearing-assembled .clearing-container .carousel > ul li img { - cursor: pointer !important; - width: 100% !important; } - .clearing-assembled .clearing-container .carousel > ul li.visible { - opacity: 1; } - .clearing-assembled .clearing-container .carousel > ul li:hover { - opacity: .8; } - .clearing-assembled .clearing-container .visible-img { - background: #333333; - height: 85%; - overflow: hidden; } - - .clearing-close { - padding-left: 0; - padding-top: 0; - position: absolute; - top: 10px; - right: 20px; } } -/* Progress Bar */ -.progress { - background-color: #F6F6F6; - border: 1px solid white; - height: 1.5625rem; - margin-bottom: 0.625rem; - padding: 0.125rem; } - .progress .meter { - background: #008CBA; - display: block; - height: 100%; - float: left; - width: 0%; } - .progress .meter.secondary { - background: #e7e7e7; - display: block; - height: 100%; - float: left; - width: 0%; } - .progress .meter.success { - background: #43AC6A; - display: block; - height: 100%; - float: left; - width: 0%; } - .progress .meter.alert { - background: #f04124; - display: block; - height: 100%; - float: left; - width: 0%; } - .progress.secondary .meter { - background: #e7e7e7; - display: block; - height: 100%; - float: left; - width: 0%; } - .progress.success .meter { - background: #43AC6A; - display: block; - height: 100%; - float: left; - width: 0%; } - .progress.alert .meter { - background: #f04124; - display: block; - height: 100%; - float: left; - width: 0%; } - .progress.radius { - border-radius: 3px; } - .progress.radius .meter { - border-radius: 2px; } - .progress.round { - border-radius: 1000px; } - .progress.round .meter { - border-radius: 999px; } - -.sub-nav { - display: block; - margin: -0.25rem 0 1.125rem; - overflow: hidden; - padding-top: 0.25rem; - width: auto; } - .sub-nav dt { - text-transform: uppercase; } - .sub-nav dt, - .sub-nav dd, - .sub-nav li { - color: #999999; - float: left; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-size: 0.875rem; - font-weight: normal; - margin-left: 1rem; - margin-bottom: 0; } - .sub-nav dt a, - .sub-nav dd a, - .sub-nav li a { - color: #999999; - padding: 0.1875rem 1rem; - text-decoration: none; } - .sub-nav dt a:hover, - .sub-nav dd a:hover, - .sub-nav li a:hover { - color: #737373; } - .sub-nav dt.active a, - .sub-nav dd.active a, - .sub-nav li.active a { - border-radius: 3px; - background: #008CBA; - color: #FFFFFF; - cursor: default; - font-weight: normal; - padding: 0.1875rem 1rem; } - .sub-nav dt.active a:hover, - .sub-nav dd.active a:hover, - .sub-nav li.active a:hover { - background: #0078a0; } - -/* Foundation Joyride */ -.joyride-list { - display: none; } - -/* Default styles for the container */ -.joyride-tip-guide { - background: #333333; - color: #FFFFFF; - display: none; - font-family: inherit; - font-weight: normal; - position: absolute; - top: 0; - width: 95%; - z-index: 103; - left: 2.5%; } - -.lt-ie9 .joyride-tip-guide { - margin-left: -400px; - max-width: 800px; - left: 50%; } - -.joyride-content-wrapper { - padding: 1.125rem 1.25rem 1.5rem; - width: 100%; } - .joyride-content-wrapper .button { - margin-bottom: 0 !important; } - .joyride-content-wrapper .joyride-prev-tip { - margin-right: 10px; } - -/* Add a little css triangle pip, older browser just miss out on the fanciness of it */ -.joyride-tip-guide .joyride-nub { - border: 10px solid #333333; - display: block; - height: 0; - position: absolute; - width: 0; - left: 22px; } - .joyride-tip-guide .joyride-nub.top { - border-color: #333333; - border-top-color: transparent !important; - border-top-style: solid; - border-left-color: transparent !important; - border-right-color: transparent !important; - top: -20px; } - .joyride-tip-guide .joyride-nub.bottom { - border-color: #333333 !important; - border-bottom-color: transparent !important; - border-bottom-style: solid; - border-left-color: transparent !important; - border-right-color: transparent !important; - bottom: -20px; } - .joyride-tip-guide .joyride-nub.right { - right: -20px; } - .joyride-tip-guide .joyride-nub.left { - left: -20px; } - -/* Typography */ -.joyride-tip-guide h1, -.joyride-tip-guide h2, -.joyride-tip-guide h3, -.joyride-tip-guide h4, -.joyride-tip-guide h5, -.joyride-tip-guide h6 { - color: #FFFFFF; - font-weight: bold; - line-height: 1.25; - margin: 0; } - -.joyride-tip-guide p { - font-size: 0.875rem; - line-height: 1.3; - margin: 0 0 1.125rem 0; } - -.joyride-timer-indicator-wrap { - border: solid 1px #555555; - bottom: 1rem; - height: 3px; - position: absolute; - width: 50px; - right: 1.0625rem; } - -.joyride-timer-indicator { - background: #666666; - display: block; - height: inherit; - width: 0; } - -.joyride-close-tip { - color: #777777 !important; - font-size: 24px; - font-weight: normal; - line-height: .5 !important; - position: absolute; - text-decoration: none; - top: 10px; - right: 12px; } - .joyride-close-tip:hover, .joyride-close-tip:focus { - color: #EEEEEE !important; } - -.joyride-modal-bg { - background: rgba(0, 0, 0, 0.5); - cursor: pointer; - display: none; - height: 100%; - position: fixed; - top: 0; - width: 100%; - z-index: 100; - left: 0; } - -.joyride-expose-wrapper { - background-color: #FFFFFF; - border-radius: 3px; - box-shadow: 0 0 15px #FFFFFF; - position: absolute; - z-index: 102; } - -.joyride-expose-cover { - background: transparent; - border-radius: 3px; - left: 0; - position: absolute; - top: 0; - z-index: 9999; } - -/* Styles for screens that are at least 768px; */ -@media only screen { - .joyride-tip-guide { - width: 300px; - left: inherit; } - .joyride-tip-guide .joyride-nub.bottom { - border-color: #333333 !important; - border-bottom-color: transparent !important; - border-left-color: transparent !important; - border-right-color: transparent !important; - bottom: -20px; } - .joyride-tip-guide .joyride-nub.right { - border-color: #333333 !important; - border-right-color: transparent !important; - border-bottom-color: transparent !important; - border-top-color: transparent !important; - left: auto; - right: -20px; - top: 22px; } - .joyride-tip-guide .joyride-nub.left { - border-color: #333333 !important; - border-bottom-color: transparent !important; - border-left-color: transparent !important; - border-top-color: transparent !important; - left: -20px; - right: auto; - top: 22px; } } -.label { - display: inline-block; - font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif; - font-weight: normal; - line-height: 1; - margin-bottom: auto; - position: relative; - text-align: center; - text-decoration: none; - white-space: nowrap; - padding: 0.25rem 0.5rem 0.25rem; - font-size: 0.6875rem; - background-color: #008CBA; - color: #FFFFFF; } - .label.radius { - border-radius: 3px; } - .label.round { - border-radius: 1000px; } - .label.alert { - background-color: #f04124; - color: #FFFFFF; } - .label.warning { - background-color: #f08a24; - color: #FFFFFF; } - .label.success { - background-color: #43AC6A; - color: #FFFFFF; } - .label.secondary { - background-color: #e7e7e7; - color: #333333; } - .label.info { - background-color: #a0d3e8; - color: #333333; } - -.off-canvas-wrap { - -webkit-backface-visibility: hidden; - position: relative; - width: 100%; - overflow: hidden; } - .off-canvas-wrap.move-right, .off-canvas-wrap.move-left, .off-canvas-wrap.move-bottom, .off-canvas-wrap.move-top { - min-height: 100%; - -webkit-overflow-scrolling: touch; } - -.inner-wrap { - position: relative; - width: 100%; - -webkit-transition: -webkit-transform 500ms ease; - -moz-transition: -moz-transform 500ms ease; - -ms-transition: -ms-transform 500ms ease; - -o-transition: -o-transform 500ms ease; - transition: transform 500ms ease; } - .inner-wrap:before, .inner-wrap:after { - content: " "; - display: table; } - .inner-wrap:after { - clear: both; } - -.tab-bar { - -webkit-backface-visibility: hidden; - background: #333333; - color: #FFFFFF; - height: 2.8125rem; - line-height: 2.8125rem; - position: relative; } - .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 { - color: #FFFFFF; - font-weight: bold; - line-height: 2.8125rem; - margin: 0; } - .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 { - font-size: 1.125rem; } - -.left-small { - height: 2.8125rem; - position: absolute; - top: 0; - width: 2.8125rem; - border-right: solid 1px #1a1a1a; - left: 0; } - -.right-small { - height: 2.8125rem; - position: absolute; - top: 0; - width: 2.8125rem; - border-left: solid 1px #1a1a1a; - right: 0; } - -.tab-bar-section { - height: 2.8125rem; - padding: 0 0.625rem; - position: absolute; - text-align: center; - top: 0; } - .tab-bar-section.left { - text-align: left; } - .tab-bar-section.right { - text-align: right; } - .tab-bar-section.left { - left: 0; - right: 2.8125rem; } - .tab-bar-section.right { - left: 2.8125rem; - right: 0; } - .tab-bar-section.middle { - left: 2.8125rem; - right: 2.8125rem; } - -.tab-bar .menu-icon { - color: #FFFFFF; - display: block; - height: 2.8125rem; - padding: 0; - position: relative; - text-indent: 2.1875rem; - transform: translate3d(0, 0, 0); - width: 2.8125rem; } - .tab-bar .menu-icon span::after { - content: ""; - display: block; - height: 0; - position: absolute; - top: 50%; - margin-top: -0.5rem; - left: 0.90625rem; - box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF; - width: 1rem; } - .tab-bar .menu-icon span:hover:after { - box-shadow: 0 0 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; } - -.left-off-canvas-menu { - -webkit-backface-visibility: hidden; - background: #333333; - bottom: 0; - box-sizing: content-box; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - overflow-x: hidden; - overflow-y: auto; - position: absolute; - transition: transform 500ms ease 0s; - width: 15.625rem; - z-index: 1001; - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - -ms-transform: translate(-100%, 0); - -o-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - top: 0; } - .left-off-canvas-menu * { - -webkit-backface-visibility: hidden; } - -.right-off-canvas-menu { - -webkit-backface-visibility: hidden; - background: #333333; - bottom: 0; - box-sizing: content-box; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - overflow-x: hidden; - overflow-y: auto; - position: absolute; - transition: transform 500ms ease 0s; - width: 15.625rem; - z-index: 1001; - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - -ms-transform: translate(100%, 0); - -o-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - right: 0; - top: 0; } - .right-off-canvas-menu * { - -webkit-backface-visibility: hidden; } - -.top-off-canvas-menu { - -webkit-backface-visibility: hidden; - background: #333333; - bottom: 0; - box-sizing: content-box; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - overflow-x: hidden; - overflow-y: auto; - position: absolute; - transition: transform 500ms ease 0s; - width: 15.625rem; - z-index: 1001; - -webkit-transform: translate3d(0, -100%, 0); - -moz-transform: translate3d(0, -100%, 0); - -ms-transform: translate(0, -100%); - -o-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - top: 0; - width: 100%; - height: 18.75rem; } - .top-off-canvas-menu * { - -webkit-backface-visibility: hidden; } - -.bottom-off-canvas-menu { - -webkit-backface-visibility: hidden; - background: #333333; - bottom: 0; - box-sizing: content-box; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - overflow-x: hidden; - overflow-y: auto; - position: absolute; - transition: transform 500ms ease 0s; - width: 15.625rem; - z-index: 1001; - -webkit-transform: translate3d(0, 100%, 0); - -moz-transform: translate3d(0, 100%, 0); - -ms-transform: translate(0, 100%); - -o-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - bottom: 0; - width: 100%; - height: 18.75rem; } - .bottom-off-canvas-menu * { - -webkit-backface-visibility: hidden; } - -ul.off-canvas-list { - list-style-type: none; - margin: 0; - padding: 0; } - ul.off-canvas-list li label { - background: #444444; - border-bottom: none; - border-top: 1px solid #5e5e5e; - color: #999999; - display: block; - font-size: 0.75rem; - font-weight: bold; - margin: 0; - padding: 0.3rem 0.9375rem; - text-transform: uppercase; } - ul.off-canvas-list li a { - border-bottom: 1px solid #262626; - color: rgba(255, 255, 255, 0.7); - display: block; - padding: 0.66667rem; - transition: background 300ms ease; } - ul.off-canvas-list li a:hover { - background: #242424; } - ul.off-canvas-list li a:active { - background: #242424; } - -.move-right > .inner-wrap { - -webkit-transform: translate3d(15.625rem, 0, 0); - -moz-transform: translate3d(15.625rem, 0, 0); - -ms-transform: translate(15.625rem, 0); - -o-transform: translate3d(15.625rem, 0, 0); - transform: translate3d(15.625rem, 0, 0); } -.move-right .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .move-right .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.move-left > .inner-wrap { - -webkit-transform: translate3d(-15.625rem, 0, 0); - -moz-transform: translate3d(-15.625rem, 0, 0); - -ms-transform: translate(-15.625rem, 0); - -o-transform: translate3d(-15.625rem, 0, 0); - transform: translate3d(-15.625rem, 0, 0); } -.move-left .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .move-left .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.move-top > .inner-wrap { - -webkit-transform: translate3d(0, -18.75rem, 0); - -moz-transform: translate3d(0, -18.75rem, 0); - -ms-transform: translate(0, -18.75rem); - -o-transform: translate3d(0, -18.75rem, 0); - transform: translate3d(0, -18.75rem, 0); } -.move-top .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .move-top .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.move-bottom > .inner-wrap { - -webkit-transform: translate3d(0, 18.75rem, 0); - -moz-transform: translate3d(0, 18.75rem, 0); - -ms-transform: translate(0, 18.75rem); - -o-transform: translate3d(0, 18.75rem, 0); - transform: translate3d(0, 18.75rem, 0); } -.move-bottom .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .move-bottom .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu, -.offcanvas-overlap .top-off-canvas-menu, .offcanvas-overlap .bottom-off-canvas-menu { - -ms-transform: none; - -webkit-transform: none; - -moz-transform: none; - -o-transform: none; - transform: none; - z-index: 1003; } -.offcanvas-overlap .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .offcanvas-overlap .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.offcanvas-overlap-left .right-off-canvas-menu { - -ms-transform: none; - -webkit-transform: none; - -moz-transform: none; - -o-transform: none; - transform: none; - z-index: 1003; } -.offcanvas-overlap-left .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .offcanvas-overlap-left .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.offcanvas-overlap-right .left-off-canvas-menu { - -ms-transform: none; - -webkit-transform: none; - -moz-transform: none; - -o-transform: none; - transform: none; - z-index: 1003; } -.offcanvas-overlap-right .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .offcanvas-overlap-right .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.offcanvas-overlap-top .bottom-off-canvas-menu { - -ms-transform: none; - -webkit-transform: none; - -moz-transform: none; - -o-transform: none; - transform: none; - z-index: 1003; } -.offcanvas-overlap-top .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .offcanvas-overlap-top .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.offcanvas-overlap-bottom .top-off-canvas-menu { - -ms-transform: none; - -webkit-transform: none; - -moz-transform: none; - -o-transform: none; - transform: none; - z-index: 1003; } -.offcanvas-overlap-bottom .exit-off-canvas { - -webkit-backface-visibility: hidden; - box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5); - cursor: pointer; - transition: background 300ms ease; - -webkit-tap-highlight-color: transparent; - background: rgba(255, 255, 255, 0.2); - bottom: 0; - display: block; - left: 0; - position: absolute; - right: 0; - top: 0; - z-index: 1002; } - @media only screen and (min-width: 40.0625em) { - .offcanvas-overlap-bottom .exit-off-canvas:hover { - background: rgba(255, 255, 255, 0.05); } } - -.no-csstransforms .left-off-canvas-menu { - left: -15.625rem; } -.no-csstransforms .right-off-canvas-menu { - right: -15.625rem; } -.no-csstransforms .top-off-canvas-menu { - top: -18.75rem; } -.no-csstransforms .bottom-off-canvas-menu { - bottom: -18.75rem; } -.no-csstransforms .move-left > .inner-wrap { - right: 15.625rem; } -.no-csstransforms .move-right > .inner-wrap { - left: 15.625rem; } -.no-csstransforms .move-top > .inner-wrap { - right: 18.75rem; } -.no-csstransforms .move-bottom > .inner-wrap { - left: 18.75rem; } - -.left-submenu { - -webkit-backface-visibility: hidden; - -webkit-overflow-scrolling: touch; - background: #333333; - bottom: 0; - box-sizing: content-box; - margin: 0; - overflow-x: hidden; - overflow-y: auto; - position: absolute; - top: 0; - width: 15.625rem; - height: 18.75rem; - z-index: 1002; - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - -ms-transform: translate(-100%, 0); - -o-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - -webkit-transition: -webkit-transform 500ms ease; - -moz-transition: -moz-transform 500ms ease; - -ms-transition: -ms-transform 500ms ease; - -o-transition: -o-transform 500ms ease; - transition: transform 500ms ease; } - .left-submenu * { - -webkit-backface-visibility: hidden; } - .left-submenu .back > a { - background: #444; - border-bottom: none; - border-top: 1px solid #5e5e5e; - color: #999999; - font-weight: bold; - padding: 0.3rem 0.9375rem; - text-transform: uppercase; - margin: 0; } - .left-submenu .back > a:hover { - background: #303030; - border-bottom: none; - border-top: 1px solid #5e5e5e; } - .left-submenu .back > a:before { - content: "\AB"; - margin-right: .5rem; - display: inline; } - .left-submenu.move-right, .left-submenu.offcanvas-overlap-right, .left-submenu.offcanvas-overlap { - -webkit-transform: translate3d(0%, 0, 0); - -moz-transform: translate3d(0%, 0, 0); - -ms-transform: translate(0%, 0); - -o-transform: translate3d(0%, 0, 0); - transform: translate3d(0%, 0, 0); } - -.right-submenu { - -webkit-backface-visibility: hidden; - -webkit-overflow-scrolling: touch; - background: #333333; - bottom: 0; - box-sizing: content-box; - margin: 0; - overflow-x: hidden; - overflow-y: auto; - position: absolute; - top: 0; - width: 15.625rem; - height: 18.75rem; - z-index: 1002; - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - -ms-transform: translate(100%, 0); - -o-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - right: 0; - -webkit-transition: -webkit-transform 500ms ease; - -moz-transition: -moz-transform 500ms ease; - -ms-transition: -ms-transform 500ms ease; - -o-transition: -o-transform 500ms ease; - transition: transform 500ms ease; } - .right-submenu * { - -webkit-backface-visibility: hidden; } - .right-submenu .back > a { - background: #444; - border-bottom: none; - border-top: 1px solid #5e5e5e; - color: #999999; - font-weight: bold; - padding: 0.3rem 0.9375rem; - text-transform: uppercase; - margin: 0; } - .right-submenu .back > a:hover { - background: #303030; - border-bottom: none; - border-top: 1px solid #5e5e5e; } - .right-submenu .back > a:after { - content: "\BB"; - margin-left: .5rem; - display: inline; } - .right-submenu.move-left, .right-submenu.offcanvas-overlap-left, .right-submenu.offcanvas-overlap { - -webkit-transform: translate3d(0%, 0, 0); - -moz-transform: translate3d(0%, 0, 0); - -ms-transform: translate(0%, 0); - -o-transform: translate3d(0%, 0, 0); - transform: translate3d(0%, 0, 0); } - -.top-submenu { - -webkit-backface-visibility: hidden; - -webkit-overflow-scrolling: touch; - background: #333333; - bottom: 0; - box-sizing: content-box; - margin: 0; - overflow-x: hidden; - overflow-y: auto; - position: absolute; - top: 0; - width: 15.625rem; - height: 18.75rem; - z-index: 1002; - -webkit-transform: translate3d(0, -100%, 0); - -moz-transform: translate3d(0, -100%, 0); - -ms-transform: translate(0, -100%); - -o-transform: translate3d(0, -100%, 0); - transform: translate3d(0, -100%, 0); - top: 0; - width: 100%; - -webkit-transition: -webkit-transform 500ms ease; - -moz-transition: -moz-transform 500ms ease; - -ms-transition: -ms-transform 500ms ease; - -o-transition: -o-transform 500ms ease; - transition: transform 500ms ease; } - .top-submenu * { - -webkit-backface-visibility: hidden; } - .top-submenu .back > a { - background: #444; - border-bottom: none; - border-top: 1px solid #5e5e5e; - color: #999999; - font-weight: bold; - padding: 0.3rem 0.9375rem; - text-transform: uppercase; - margin: 0; } - .top-submenu .back > a:hover { - background: #303030; - border-bottom: none; - border-top: 1px solid #5e5e5e; } - .top-submenu.move-bottom, .top-submenu.offcanvas-overlap-bottom, .top-submenu.offcanvas-overlap { - -webkit-transform: translate3d(0, 0%, 0); - -moz-transform: translate3d(0, 0%, 0); - -ms-transform: translate(0, 0%); - -o-transform: translate3d(0, 0%, 0); - transform: translate3d(0, 0%, 0); } - -.bottom-submenu { - -webkit-backface-visibility: hidden; - -webkit-overflow-scrolling: touch; - background: #333333; - bottom: 0; - box-sizing: content-box; - margin: 0; - overflow-x: hidden; - overflow-y: auto; - position: absolute; - top: 0; - width: 15.625rem; - height: 18.75rem; - z-index: 1002; - -webkit-transform: translate3d(0, 100%, 0); - -moz-transform: translate3d(0, 100%, 0); - -ms-transform: translate(0, 100%); - -o-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - bottom: 0; - width: 100%; - -webkit-transition: -webkit-transform 500ms ease; - -moz-transition: -moz-transform 500ms ease; - -ms-transition: -ms-transform 500ms ease; - -o-transition: -o-transform 500ms ease; - transition: transform 500ms ease; } - .bottom-submenu * { - -webkit-backface-visibility: hidden; } - .bottom-submenu .back > a { - background: #444; - border-bottom: none; - border-top: 1px solid #5e5e5e; - color: #999999; - font-weight: bold; - padding: 0.3rem 0.9375rem; - text-transform: uppercase; - margin: 0; } - .bottom-submenu .back > a:hover { - background: #303030; - border-bottom: none; - border-top: 1px solid #5e5e5e; } - .bottom-submenu.move-top, .bottom-submenu.offcanvas-overlap-top, .bottom-submenu.offcanvas-overlap { - -webkit-transform: translate3d(0, 0%, 0); - -moz-transform: translate3d(0, 0%, 0); - -ms-transform: translate(0, 0%); - -o-transform: translate3d(0, 0%, 0); - transform: translate3d(0, 0%, 0); } - -.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after { - content: "\BB"; - margin-left: .5rem; - display: inline; } - -.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before { - content: "\AB"; - margin-right: .5rem; - display: inline; } - -/* Foundation Dropdowns */ -.f-dropdown { - display: none; - left: -9999px; - list-style: none; - margin-left: 0; - position: absolute; - background: #FFFFFF; - border: solid 1px #cccccc; - font-size: 0.875rem; - height: auto; - max-height: none; - width: 100%; - z-index: 89; - margin-top: 2px; - max-width: 200px; } - .f-dropdown.open { - display: block; } - .f-dropdown > *:first-child { - margin-top: 0; } - .f-dropdown > *:last-child { - margin-bottom: 0; } - .f-dropdown:before { - border: inset 6px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: transparent transparent #FFFFFF transparent; - border-bottom-style: solid; - position: absolute; - top: -12px; - left: 10px; - z-index: 89; } - .f-dropdown:after { - border: inset 7px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: transparent transparent #cccccc transparent; - border-bottom-style: solid; - position: absolute; - top: -14px; - left: 9px; - z-index: 88; } - .f-dropdown.right:before { - left: auto; - right: 10px; } - .f-dropdown.right:after { - left: auto; - right: 9px; } - .f-dropdown.drop-right { - display: none; - left: -9999px; - list-style: none; - margin-left: 0; - position: absolute; - background: #FFFFFF; - border: solid 1px #cccccc; - font-size: 0.875rem; - height: auto; - max-height: none; - width: 100%; - z-index: 89; - margin-top: 0; - margin-left: 2px; - max-width: 200px; } - .f-dropdown.drop-right.open { - display: block; } - .f-dropdown.drop-right > *:first-child { - margin-top: 0; } - .f-dropdown.drop-right > *:last-child { - margin-bottom: 0; } - .f-dropdown.drop-right:before { - border: inset 6px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: transparent #FFFFFF transparent transparent; - border-right-style: solid; - position: absolute; - top: 10px; - left: -12px; - z-index: 89; } - .f-dropdown.drop-right:after { - border: inset 7px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: transparent #cccccc transparent transparent; - border-right-style: solid; - position: absolute; - top: 9px; - left: -14px; - z-index: 88; } - .f-dropdown.drop-left { - display: none; - left: -9999px; - list-style: none; - margin-left: 0; - position: absolute; - background: #FFFFFF; - border: solid 1px #cccccc; - font-size: 0.875rem; - height: auto; - max-height: none; - width: 100%; - z-index: 89; - margin-top: 0; - margin-left: -2px; - max-width: 200px; } - .f-dropdown.drop-left.open { - display: block; } - .f-dropdown.drop-left > *:first-child { - margin-top: 0; } - .f-dropdown.drop-left > *:last-child { - margin-bottom: 0; } - .f-dropdown.drop-left:before { - border: inset 6px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: transparent transparent transparent #FFFFFF; - border-left-style: solid; - position: absolute; - top: 10px; - right: -12px; - left: auto; - z-index: 89; } - .f-dropdown.drop-left:after { - border: inset 7px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: transparent transparent transparent #cccccc; - border-left-style: solid; - position: absolute; - top: 9px; - right: -14px; - left: auto; - z-index: 88; } - .f-dropdown.drop-top { - display: none; - left: -9999px; - list-style: none; - margin-left: 0; - position: absolute; - background: #FFFFFF; - border: solid 1px #cccccc; - font-size: 0.875rem; - height: auto; - max-height: none; - width: 100%; - z-index: 89; - margin-left: 0; - margin-top: -2px; - max-width: 200px; } - .f-dropdown.drop-top.open { - display: block; } - .f-dropdown.drop-top > *:first-child { - margin-top: 0; } - .f-dropdown.drop-top > *:last-child { - margin-bottom: 0; } - .f-dropdown.drop-top:before { - border: inset 6px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: #FFFFFF transparent transparent transparent; - border-top-style: solid; - bottom: -12px; - position: absolute; - top: auto; - left: 10px; - right: auto; - z-index: 89; } - .f-dropdown.drop-top:after { - border: inset 7px; - content: ""; - display: block; - height: 0; - width: 0; - border-color: #cccccc transparent transparent transparent; - border-top-style: solid; - bottom: -14px; - position: absolute; - top: auto; - left: 9px; - right: auto; - z-index: 88; } - .f-dropdown li { - cursor: pointer; - font-size: 0.875rem; - line-height: 1.125rem; - margin: 0; } - .f-dropdown li:hover, .f-dropdown li:focus { - background: #EEEEEE; } - .f-dropdown li a { - display: block; - padding: 0.5rem; - color: #555555; } - .f-dropdown.content { - display: none; - left: -9999px; - list-style: none; - margin-left: 0; - position: absolute; - background: #FFFFFF; - border: solid 1px #cccccc; - font-size: 0.875rem; - height: auto; - max-height: none; - padding: 1.25rem; - width: 100%; - z-index: 89; - max-width: 200px; } - .f-dropdown.content.open { - display: block; } - .f-dropdown.content > *:first-child { - margin-top: 0; } - .f-dropdown.content > *:last-child { - margin-bottom: 0; } - .f-dropdown.radius { - border-radius: 3px; } - .f-dropdown.tiny { - max-width: 200px; } - .f-dropdown.small { - max-width: 300px; } - .f-dropdown.medium { - max-width: 500px; } - .f-dropdown.large { - max-width: 800px; } - .f-dropdown.mega { - width: 100% !important; - max-width: 100% !important; } - .f-dropdown.mega.open { - left: 0 !important; } - -table { - background: #FFFFFF; - border: solid 1px #DDDDDD; - margin-bottom: 1.25rem; - table-layout: auto; } - table caption { - background: transparent; - color: #222222; - font-size: 1rem; - font-weight: bold; } - table thead { - background: #F5F5F5; } - table thead tr th, - table thead tr td { - color: #222222; - font-size: 0.875rem; - font-weight: bold; - padding: 0.5rem 0.625rem 0.625rem; } - table tfoot { - background: #F5F5F5; } - table tfoot tr th, - table tfoot tr td { - color: #222222; - font-size: 0.875rem; - font-weight: bold; - padding: 0.5rem 0.625rem 0.625rem; } - table tr th, - table tr td { - color: #222222; - font-size: 0.875rem; - padding: 0.5625rem 0.625rem; - text-align: left; } - table tr.even, table tr.alt, table tr:nth-of-type(even) { - background: #F9F9F9; } - table thead tr th, - table tfoot tr th, - table tfoot tr td, - table tbody tr th, - table tbody tr td, - table tr td { - display: table-cell; - line-height: 1.125rem; } - -.range-slider { - border: 1px solid #DDDDDD; - margin: 1.25rem 0; - position: relative; - -ms-touch-action: none; - touch-action: none; - display: block; - height: 1rem; - width: 100%; - background: #FAFAFA; } - .range-slider.vertical-range { - border: 1px solid #DDDDDD; - margin: 1.25rem 0; - position: relative; - -ms-touch-action: none; - touch-action: none; - display: inline-block; - height: 12.5rem; - width: 1rem; } - .range-slider.vertical-range .range-slider-handle { - bottom: -10.5rem; - margin-left: -0.5rem; - margin-top: 0; - position: absolute; } - .range-slider.vertical-range .range-slider-active-segment { - border-bottom-left-radius: inherit; - border-bottom-right-radius: inherit; - border-top-left-radius: initial; - bottom: 0; - height: auto; - width: 0.875rem; } - .range-slider.radius { - background: #FAFAFA; - border-radius: 3px; } - .range-slider.radius .range-slider-handle { - background: #008CBA; - border-radius: 3px; } - .range-slider.radius .range-slider-handle:hover { - background: #007ba4; } - .range-slider.round { - background: #FAFAFA; - border-radius: 1000px; } - .range-slider.round .range-slider-handle { - background: #008CBA; - border-radius: 1000px; } - .range-slider.round .range-slider-handle:hover { - background: #007ba4; } - .range-slider.disabled, .range-slider[disabled] { - background: #FAFAFA; - cursor: not-allowed; - opacity: 0.7; } - .range-slider.disabled .range-slider-handle, .range-slider[disabled] .range-slider-handle { - background: #008CBA; - cursor: default; - opacity: 0.7; } - .range-slider.disabled .range-slider-handle:hover, .range-slider[disabled] .range-slider-handle:hover { - background: #007ba4; } - -.range-slider-active-segment { - background: #e5e5e5; - border-bottom-left-radius: inherit; - border-top-left-radius: inherit; - display: inline-block; - height: 0.875rem; - position: absolute; } - -.range-slider-handle { - border: 1px solid none; - cursor: pointer; - display: inline-block; - height: 1.375rem; - position: absolute; - top: -0.3125rem; - width: 2rem; - z-index: 1; - -ms-touch-action: manipulation; - touch-action: manipulation; - background: #008CBA; } - .range-slider-handle:hover { - background: #007ba4; } - -[class*="block-grid-"] { - display: block; - padding: 0; - margin: 0 -0.625rem; } - [class*="block-grid-"]:before, [class*="block-grid-"]:after { - content: " "; - display: table; } - [class*="block-grid-"]:after { - clear: both; } - [class*="block-grid-"] > li { - display: block; - float: left; - height: auto; - padding: 0 0.625rem 1.25rem; } - -@media only screen { - .small-block-grid-1 > li { - list-style: none; - width: 100%; } - .small-block-grid-1 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-1 > li:nth-of-type(1n+1) { - clear: both; } - - .small-block-grid-2 > li { - list-style: none; - width: 50%; } - .small-block-grid-2 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-2 > li:nth-of-type(2n+1) { - clear: both; } - - .small-block-grid-3 > li { - list-style: none; - width: 33.33333%; } - .small-block-grid-3 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-3 > li:nth-of-type(3n+1) { - clear: both; } - - .small-block-grid-4 > li { - list-style: none; - width: 25%; } - .small-block-grid-4 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-4 > li:nth-of-type(4n+1) { - clear: both; } - - .small-block-grid-5 > li { - list-style: none; - width: 20%; } - .small-block-grid-5 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-5 > li:nth-of-type(5n+1) { - clear: both; } - - .small-block-grid-6 > li { - list-style: none; - width: 16.66667%; } - .small-block-grid-6 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-6 > li:nth-of-type(6n+1) { - clear: both; } - - .small-block-grid-7 > li { - list-style: none; - width: 14.28571%; } - .small-block-grid-7 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-7 > li:nth-of-type(7n+1) { - clear: both; } - - .small-block-grid-8 > li { - list-style: none; - width: 12.5%; } - .small-block-grid-8 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-8 > li:nth-of-type(8n+1) { - clear: both; } - - .small-block-grid-9 > li { - list-style: none; - width: 11.11111%; } - .small-block-grid-9 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-9 > li:nth-of-type(9n+1) { - clear: both; } - - .small-block-grid-10 > li { - list-style: none; - width: 10%; } - .small-block-grid-10 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-10 > li:nth-of-type(10n+1) { - clear: both; } - - .small-block-grid-11 > li { - list-style: none; - width: 9.09091%; } - .small-block-grid-11 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-11 > li:nth-of-type(11n+1) { - clear: both; } - - .small-block-grid-12 > li { - list-style: none; - width: 8.33333%; } - .small-block-grid-12 > li:nth-of-type(1n) { - clear: none; } - .small-block-grid-12 > li:nth-of-type(12n+1) { - clear: both; } } -@media only screen and (min-width: 40.0625em) { - .medium-block-grid-1 > li { - list-style: none; - width: 100%; } - .medium-block-grid-1 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-1 > li:nth-of-type(1n+1) { - clear: both; } - - .medium-block-grid-2 > li { - list-style: none; - width: 50%; } - .medium-block-grid-2 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-2 > li:nth-of-type(2n+1) { - clear: both; } - - .medium-block-grid-3 > li { - list-style: none; - width: 33.33333%; } - .medium-block-grid-3 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-3 > li:nth-of-type(3n+1) { - clear: both; } - - .medium-block-grid-4 > li { - list-style: none; - width: 25%; } - .medium-block-grid-4 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-4 > li:nth-of-type(4n+1) { - clear: both; } - - .medium-block-grid-5 > li { - list-style: none; - width: 20%; } - .medium-block-grid-5 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-5 > li:nth-of-type(5n+1) { - clear: both; } - - .medium-block-grid-6 > li { - list-style: none; - width: 16.66667%; } - .medium-block-grid-6 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-6 > li:nth-of-type(6n+1) { - clear: both; } - - .medium-block-grid-7 > li { - list-style: none; - width: 14.28571%; } - .medium-block-grid-7 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-7 > li:nth-of-type(7n+1) { - clear: both; } - - .medium-block-grid-8 > li { - list-style: none; - width: 12.5%; } - .medium-block-grid-8 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-8 > li:nth-of-type(8n+1) { - clear: both; } - - .medium-block-grid-9 > li { - list-style: none; - width: 11.11111%; } - .medium-block-grid-9 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-9 > li:nth-of-type(9n+1) { - clear: both; } - - .medium-block-grid-10 > li { - list-style: none; - width: 10%; } - .medium-block-grid-10 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-10 > li:nth-of-type(10n+1) { - clear: both; } - - .medium-block-grid-11 > li { - list-style: none; - width: 9.09091%; } - .medium-block-grid-11 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-11 > li:nth-of-type(11n+1) { - clear: both; } - - .medium-block-grid-12 > li { - list-style: none; - width: 8.33333%; } - .medium-block-grid-12 > li:nth-of-type(1n) { - clear: none; } - .medium-block-grid-12 > li:nth-of-type(12n+1) { - clear: both; } } -@media only screen and (min-width: 64.0625em) { - .large-block-grid-1 > li { - list-style: none; - width: 100%; } - .large-block-grid-1 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-1 > li:nth-of-type(1n+1) { - clear: both; } - - .large-block-grid-2 > li { - list-style: none; - width: 50%; } - .large-block-grid-2 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-2 > li:nth-of-type(2n+1) { - clear: both; } - - .large-block-grid-3 > li { - list-style: none; - width: 33.33333%; } - .large-block-grid-3 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-3 > li:nth-of-type(3n+1) { - clear: both; } - - .large-block-grid-4 > li { - list-style: none; - width: 25%; } - .large-block-grid-4 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-4 > li:nth-of-type(4n+1) { - clear: both; } - - .large-block-grid-5 > li { - list-style: none; - width: 20%; } - .large-block-grid-5 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-5 > li:nth-of-type(5n+1) { - clear: both; } - - .large-block-grid-6 > li { - list-style: none; - width: 16.66667%; } - .large-block-grid-6 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-6 > li:nth-of-type(6n+1) { - clear: both; } - - .large-block-grid-7 > li { - list-style: none; - width: 14.28571%; } - .large-block-grid-7 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-7 > li:nth-of-type(7n+1) { - clear: both; } - - .large-block-grid-8 > li { - list-style: none; - width: 12.5%; } - .large-block-grid-8 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-8 > li:nth-of-type(8n+1) { - clear: both; } - - .large-block-grid-9 > li { - list-style: none; - width: 11.11111%; } - .large-block-grid-9 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-9 > li:nth-of-type(9n+1) { - clear: both; } - - .large-block-grid-10 > li { - list-style: none; - width: 10%; } - .large-block-grid-10 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-10 > li:nth-of-type(10n+1) { - clear: both; } - - .large-block-grid-11 > li { - list-style: none; - width: 9.09091%; } - .large-block-grid-11 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-11 > li:nth-of-type(11n+1) { - clear: both; } - - .large-block-grid-12 > li { - list-style: none; - width: 8.33333%; } - .large-block-grid-12 > li:nth-of-type(1n) { - clear: none; } - .large-block-grid-12 > li:nth-of-type(12n+1) { - clear: both; } } -.flex-video { - height: 0; - margin-bottom: 1rem; - overflow: hidden; - padding-bottom: 67.5%; - padding-top: 1.5625rem; - position: relative; } - .flex-video.widescreen { - padding-bottom: 56.34%; } - .flex-video.vimeo { - padding-top: 0; } - .flex-video iframe, - .flex-video object, - .flex-video embed, - .flex-video video { - height: 100%; - position: absolute; - top: 0; - width: 100%; - left: 0; } - -.keystroke, -kbd { - background-color: #ededed; - border-color: #dddddd; - color: #222222; - border-style: solid; - border-width: 1px; - font-family: "Consolas", "Menlo", "Courier", monospace; - font-size: inherit; - margin: 0; - padding: 0.125rem 0.25rem 0; - border-radius: 3px; } - -.switch { - border: none; - margin-bottom: 1.5rem; - outline: 0; - padding: 0; - position: relative; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - .switch label { - background: #DDDDDD; - color: transparent; - cursor: pointer; - display: block; - margin-bottom: 1rem; - position: relative; - text-indent: 100%; - width: 4rem; - height: 2rem; - transition: left 0.15s ease-out; } - .switch input { - left: 10px; - opacity: 0; - padding: 0; - position: absolute; - top: 9px; } - .switch input + label { - margin-left: 0; - margin-right: 0; } - .switch label:after { - background: #FFFFFF; - content: ""; - display: block; - height: 1.5rem; - left: .25rem; - position: absolute; - top: .25rem; - width: 1.5rem; - -webkit-transition: left 0.15s ease-out; - -moz-transition: left 0.15s ease-out; - -o-transition: translate3d(0, 0, 0); - transition: left 0.15s ease-out; - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - -o-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } - .switch input:checked + label { - background: #008CBA; } - .switch input:checked + label:after { - left: 2.25rem; } - .switch label { - height: 2rem; - width: 4rem; } - .switch label:after { - height: 1.5rem; - width: 1.5rem; } - .switch input:checked + label:after { - left: 2.25rem; } - .switch label { - color: transparent; - background: #DDDDDD; } - .switch label:after { - background: #FFFFFF; } - .switch input:checked + label { - background: #008CBA; } - .switch.large label { - height: 2.5rem; - width: 5rem; } - .switch.large label:after { - height: 2rem; - width: 2rem; } - .switch.large input:checked + label:after { - left: 2.75rem; } - .switch.small label { - height: 1.75rem; - width: 3.5rem; } - .switch.small label:after { - height: 1.25rem; - width: 1.25rem; } - .switch.small input:checked + label:after { - left: 2rem; } - .switch.tiny label { - height: 1.5rem; - width: 3rem; } - .switch.tiny label:after { - height: 1rem; - width: 1rem; } - .switch.tiny input:checked + label:after { - left: 1.75rem; } - .switch.radius label { - border-radius: 4px; } - .switch.radius label:after { - border-radius: 3px; } - .switch.round { - border-radius: 1000px; } - .switch.round label { - border-radius: 2rem; } - .switch.round label:after { - border-radius: 2rem; } - -/* small displays */ -@media only screen { - .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down { - display: inherit !important; } - - .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down { - display: none !important; } - - .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; } - - table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down { - display: table !important; } - - thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down { - display: table-header-group !important; } - - tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down { - display: table-row-group !important; } - - tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down { - display: table-row; } - - th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down { - display: table-cell !important; } } -/* medium displays */ -@media only screen and (min-width: 40.0625em) { - .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down { - display: inherit !important; } - - .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down { - display: none !important; } - - .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; } - - table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down { - display: table !important; } - - thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down { - display: table-header-group !important; } - - tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down { - display: table-row-group !important; } - - tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down { - display: table-row; } - - th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down { - display: table-cell !important; } } -/* large displays */ -@media only screen and (min-width: 64.0625em) { - .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down { - display: inherit !important; } - - .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down { - display: none !important; } - - .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; } - - table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down { - display: table !important; } - - thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down { - display: table-header-group !important; } - - tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down { - display: table-row-group !important; } - - tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down { - display: table-row; } - - th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down { - display: table-cell !important; } } -/* xlarge displays */ -@media only screen and (min-width: 90.0625em) { - .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down { - display: inherit !important; } - - .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down { - display: none !important; } - - .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; } - - table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down { - display: table !important; } - - thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down { - display: table-header-group !important; } - - tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down { - display: table-row-group !important; } - - tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down { - display: table-row; } - - th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down { - display: table-cell !important; } } -/* xxlarge displays */ -@media only screen and (min-width: 120.0625em) { - .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down { - display: inherit !important; } - - .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down { - display: none !important; } - - .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - - .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; } - - table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down { - display: table !important; } - - thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down { - display: table-header-group !important; } - - tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down { - display: table-row-group !important; } - - tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down { - display: table-row; } - - th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down { - display: table-cell !important; } } -/* Orientation targeting */ -.show-for-landscape, -.hide-for-portrait { - display: inherit !important; } - -.hide-for-landscape, -.show-for-portrait { - display: none !important; } - -/* Specific visibility for tables */ -table.hide-for-landscape, table.show-for-portrait { - display: table !important; } - -thead.hide-for-landscape, thead.show-for-portrait { - display: table-header-group !important; } - -tbody.hide-for-landscape, tbody.show-for-portrait { - display: table-row-group !important; } - -tr.hide-for-landscape, tr.show-for-portrait { - display: table-row !important; } - -td.hide-for-landscape, td.show-for-portrait, -th.hide-for-landscape, -th.show-for-portrait { - display: table-cell !important; } - -@media only screen and (orientation: landscape) { - .show-for-landscape, - .hide-for-portrait { - display: inherit !important; } - - .hide-for-landscape, - .show-for-portrait { - display: none !important; } - - /* Specific visibility for tables */ - table.show-for-landscape, table.hide-for-portrait { - display: table !important; } - - thead.show-for-landscape, thead.hide-for-portrait { - display: table-header-group !important; } - - tbody.show-for-landscape, tbody.hide-for-portrait { - display: table-row-group !important; } - - tr.show-for-landscape, tr.hide-for-portrait { - display: table-row !important; } - - td.show-for-landscape, td.hide-for-portrait, - th.show-for-landscape, - th.hide-for-portrait { - display: table-cell !important; } } -@media only screen and (orientation: portrait) { - .show-for-portrait, - .hide-for-landscape { - display: inherit !important; } - - .hide-for-portrait, - .show-for-landscape { - display: none !important; } - - /* Specific visibility for tables */ - table.show-for-portrait, table.hide-for-landscape { - display: table !important; } - - thead.show-for-portrait, thead.hide-for-landscape { - display: table-header-group !important; } - - tbody.show-for-portrait, tbody.hide-for-landscape { - display: table-row-group !important; } - - tr.show-for-portrait, tr.hide-for-landscape { - display: table-row !important; } - - td.show-for-portrait, td.hide-for-landscape, - th.show-for-portrait, - th.hide-for-landscape { - display: table-cell !important; } } -/* Touch-enabled device targeting */ -.show-for-touch { - display: none !important; } - -.hide-for-touch { - display: inherit !important; } - -.touch .show-for-touch { - display: inherit !important; } - -.touch .hide-for-touch { - display: none !important; } - -/* Specific visibility for tables */ -table.hide-for-touch { - display: table !important; } - -.touch table.show-for-touch { - display: table !important; } - -thead.hide-for-touch { - display: table-header-group !important; } - -.touch thead.show-for-touch { - display: table-header-group !important; } - -tbody.hide-for-touch { - display: table-row-group !important; } - -.touch tbody.show-for-touch { - display: table-row-group !important; } - -tr.hide-for-touch { - display: table-row !important; } - -.touch tr.show-for-touch { - display: table-row !important; } - -td.hide-for-touch { - display: table-cell !important; } - -.touch td.show-for-touch { - display: table-cell !important; } - -th.hide-for-touch { - display: table-cell !important; } - -.touch th.show-for-touch { - display: table-cell !important; } - -/* Screen reader-specific classes */ -.show-for-sr { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; } - -.show-on-focus { - clip: rect(1px, 1px, 1px, 1px); - height: 1px; - overflow: hidden; - position: absolute !important; - width: 1px; } - .show-on-focus:focus, .show-on-focus:active { - position: static !important; - height: auto; - width: auto; - overflow: visible; - clip: auto; } - -/* Print visibility */ -.print-only, -.show-for-print { - display: none !important; } - -@media print { - .print-only, - .show-for-print { - display: block !important; } - - .hide-on-print, - .hide-for-print { - display: none !important; } - - table.show-for-print { - display: table !important; } - - thead.show-for-print { - display: table-header-group !important; } - - tbody.show-for-print { - display: table-row-group !important; } - - tr.show-for-print { - display: table-row !important; } - - td.show-for-print { - display: table-cell !important; } - - th.show-for-print { - display: table-cell !important; } }