@charset "UTF-8";
.container, .row, .radio-group--people {
  content: "";
  display: table;
  clear: both; }

.button, .nav li, .small-caps, h1, h2, h3, h4, h5, h6, thead,
label {
  font-family: "Gill Sans", "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  font-weight: 600; }

/* Base Styles
–––––––––––––––––––––––––––––––––––––––––––––––––– */
/* Table of contents
––––––––––––––––––––––––––––––––––––––––––––––––––
- Document
- Lists
- Tables
- Spacing
- Misc
*/
/* Document
–––––––––––––––––––––––––––––––––––––––––––––––––– */
html {
  font-size: 24px; }

/* Larger than phablet */
@media (min-device-width: 550px) {
  html {
    font-size: 10px; } }

body {
  font-size: 1.5em;
  /* currently ems cause chrome bug misinterpreting rems on body element */
  line-height: 1.85;
  font-weight: 400;
  font-family: "Baskerville", "Libre Baskerville", "Times New Roman", Times, serif;
  color: #444444; }

/* Lists
–––––––––––––––––––––––––––––––––––––––––––––––––– */
ul {
  list-style: circle inside; }

ol {
  list-style: decimal inside; }

ol, ul {
  padding-left: 0;
  margin-top: 0; }

ul ul,
ul ol,
ol ol,
ol ul {
  margin: 1.5rem 0 1.5rem 3rem;
  font-size: 90%; }

/* Tables
–––––––––––––––––––––––––––––––––––––––––––––––––– */
table {
  width: 100%;
  box-sizing: border-box; }

th,
td {
  padding: 12px 15px;
  text-align: left;
  border-bottom: 1px solid #E1E1E1; }

th:first-child,
td:first-child {
  padding-left: 0; }

th:last-child,
td:last-child {
  padding-right: 0; }

/* Spacing
–––––––––––––––––––––––––––––––––––––––––––––––––– */
blockquote,
dl,
table,
p,
ul,
ol {
  margin-bottom: 2.5rem; }

/* Misc
–––––––––––––––––––––––––––––––––––––––––––––––––– */
hr {
  border-width: 0; }

.sr-only {
  position: absolute;
  left: -9999px; }

/* Grid
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.container {
  position: relative;
  width: 100%;
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 10px;
  box-sizing: border-box; }

.column {
  width: 100%;
  float: left;
  box-sizing: border-box; }

.row {
  width: 100%; }

/* For devices larger than 400px */
@media (min-width: 400px) {
  .container {
    width: 85%;
    padding: 0; } }

/* For devices larger than 550px */
@media (min-device-width: 550px) {
  .container {
    width: 80%; }
  .column {
    margin-left: 4%;
    width: 48%; }
  .column:first-child {
    margin-left: 0; } }

/* Forms
–––––––––––––––––––––––––––––––––––––––––––––––––– */
input[type="text"],
input[type="password"] {
  height: 5rem;
  padding: 6px 10px;
  /* The 6px vertically centers text on FF, ignored by Webkit */
  background-color: #fff;
  border: 1px solid #D1D1D1;
  border-radius: 4px;
  box-shadow: none;
  box-sizing: border-box; }

/* Removes awkward default styles on some inputs for iOS */
input[type="text"],
input[type="password"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

input[type="text"]:focus,
input[type="password"]:focus {
  border: 1px solid #33C3F0;
  outline: 0; }

.label {
  display: block;
  margin-bottom: .5rem; }

.input-group {
  position: relative;
  height: 6rem;
  font-size: 1.5rem; }
  .input-group .label {
    position: absolute;
    top: 1.2rem;
    left: 1.5rem;
    z-index: 1; }
  .input-group .input {
    position: absolute;
    text-indent: 10rem; }

.input--block {
  display: block;
  width: 100%; }

/* Typography
–––––––––––––––––––––––––––––––––––––––––––––––––– */
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 2rem; }

h1 {
  font-size: 4.0rem;
  line-height: 1.2;
  letter-spacing: -.1rem; }

h2 {
  font-size: 3.6rem;
  line-height: 1.25;
  letter-spacing: -.1rem; }

h3 {
  font-size: 3.0rem;
  line-height: 1.3;
  letter-spacing: -.1rem; }

h4 {
  font-size: 2.4rem;
  line-height: 1.35;
  letter-spacing: -.08rem; }

h5 {
  font-size: 1.8rem;
  line-height: 1.5;
  letter-spacing: -.05rem; }

h6 {
  font-size: 1.5rem;
  line-height: 1.6;
  letter-spacing: 0; }

@media (min-device-width: 550px) {
  h1 {
    font-size: 5.0rem; }
  h2 {
    font-size: 4.2rem; }
  h3 {
    font-size: 3.6rem; }
  h4 {
    font-size: 3.0rem; }
  h5 {
    font-size: 2.4rem; }
  h6 {
    font-size: 1.5rem; } }

.drop-cap:first-letter {
  float: left;
  margin: 0.5rem 0 -0.5rem 0;
  padding: 0;
  font-size: 9.7rem;
  line-height: 1;
  text-indent: 0; }

body {
  -webkit-hyphens: auto;
     -moz-hyphens: auto;
      -ms-hyphens: auto;
          hyphens: auto; }

input,
abbr,
acronym,
blockquote,
code,
kbd,
q,
samp,
var {
  -webkit-hyphens: none;
     -moz-hyphens: none;
      -ms-hyphens: none;
          hyphens: none; }

blockquote {
  font-style: italic;
  letter-spacing: 0.1ex;
  opacity: 0.5;
  font-size: 2rem;
  line-height: 1.5; }

.pull-quote {
  position: relative;
  padding: 1rem; }

.pull-quote:before,
.pull-quote:after {
  height: 1rem;
  opacity: 0.5;
  position: absolute;
  font-size: 4rem; }

.pull-quote:before {
  content: '“';
  top: 0;
  left: 0; }

.pull-quote:after {
  content: '”';
  bottom: 4rem;
  right: 0; }

/* Buttons
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.button {
  height: 5rem;
  line-height: 5rem;
  padding: 0 4rem;
  color: #FFFFFF;
  background-color: #258753;
  text-align: center;
  letter-spacing: .1rem;
  text-decoration: none;
  white-space: nowrap;
  border-radius: 4px;
  border: 1px solid #258753;
  cursor: pointer;
  box-sizing: border-box; }

.button:hover,
.button:focus {
  color: #FFFFFF;
  background-color: #2B9D60;
  border-color: #2B9D60;
  outline: 0; }

.button--block {
  display: block;
  width: 100%; }

@media (min-device-width: 550px) {
  .button--block {
    display: inline-block;
    width: auto; } }

.button--secondary {
  background-color: #a2a2a2;
  border-color: #a2a2a2; }

.button--secondary:hover,
.button--secondary:focus {
  background-color: #BBBBBB;
  border-color: #BBBBBB; }

.media-card {
  background: #FFFFFF;
  border-radius: 0.5rem;
  box-shadow: 0 1px 0 rgba(187, 187, 187, 0.5);
  position: relative; }

.media-card_front,
.media-card_back {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: #FFFFFF;
  border-radius: 0.5rem;
  box-shadow: 0 1px 0 rgba(187, 187, 187, 0.5);
  padding: 5rem; }

.media-card {
  -webkit-perspective: 80em;
          perspective: 80em;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-transform-origin: 50%;
      -ms-transform-origin: 50%;
          transform-origin: 50%;
  -webkit-transform: rotateY(0deg);
          transform: rotateY(0deg); }
  .media-card .media-card_front {
    -webkit-transform: rotateY(0deg);
            transform: rotateY(0deg); }
  .media-card .media-card_back {
    -webkit-transform: rotateY(180deg);
            transform: rotateY(180deg);
    visibility: hidden; }

.media-card--flipped {
  -webkit-animation: flip 1.5s 1 forwards;
          animation: flip 1.5s 1 forwards; }
  .media-card--flipped .media-card_front {
    -webkit-animation: flip-front 1.5s 1 forwards;
            animation: flip-front 1.5s 1 forwards; }
  .media-card--flipped .media-card_back {
    -webkit-animation: flip-back 1.5s 1 forwards;
            animation: flip-back 1.5s 1 forwards; }

.radio-group--people {
  position: relative;
  text-align: center;
  direction: rtl;
  z-index: 2;
  height: 5rem; }

.radio-group--people input[type='radio'] {
  position: absolute;
  left: -9999px; }

.radio-group_person {
  position: relative;
  float: right;
  margin-top: 0.5rem;
  width: 4rem;
  height: 4rem;
  cursor: pointer; }

.radio-group_person {
  background-image: url("../images/person-uncheck2.svg");
  -webkit-filter: saturate(0%);
          filter: saturate(0%); }

.radio-group_person:hover,
.radio-group_person:focus,
.radio-group_person:hover ~ .radio-group_person,
.radio-group_person:focus ~ .radio-group_person,
input[type='radio']:checked ~ .radio-group_person {
  background-image: url("../images/person-check.svg");
  -webkit-filter: saturate(0%);
          filter: saturate(0%); }

input[type='radio']:checked ~ .radio-group_person {
  -webkit-filter: none;
          filter: none; }

/* Header
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.header {
  position: relative;
  height: 75rem;
  overflow: hidden;
  background-color: #D3B49F;
  background: -webkit-linear-gradient(bottom, #D7B1B1, #E0B191);
  background: linear-gradient(to top, #D7B1B1, #E0B191);
  z-index: 1;
  pointer-events: none; }

.header_text {
  position: fixed;
  width: 100%;
  height: 100%;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  background-image: url("../images/team-chatt-maintext.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center top; }

.header_illustration {
  position: absolute;
  width: 100%;
  height: 100%; }
  .header_illustration:before {
    content: ' ';
    display: block;
    position: absolute;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    width: 100%;
    top: 45rem;
    bottom: 0;
    background-image: url("../images/team-chatt-illustration.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center bottom; }

/* Navigation
–––––––––––––––––––––––––––––––––––––––––––––––––– */
.nav {
  height: 6rem;
  background: #372E22;
  white-space: nowrap;
  overflow: hidden; }

.nav ul {
  margin: 0;
  margin-left: -2rem;
  line-height: 6rem; }

.nav li {
  list-style: none;
  float: left; }

.nav li {
  margin: 0; }

.nav li > a {
  position: relative;
  color: #FFFFFF;
  padding: 0 2rem;
  text-decoration: none; }

.nav li > a:hover {
  color: #FFFFFF; }

.nav li a.active:before,
.nav li a:active:before,
.nav li a:hover:before {
  position: absolute;
  display: block;
  content: ' ';
  border-bottom: 2px solid #FFFFFF;
  left: 2rem;
  right: 2rem;
  top: 2.25rem; }

.nav.affix {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 2; }

.nav.affix + .nav_spacer {
  height: 6rem; }

.event-details {
  margin-top: 8rem;
  text-align: center;
  font-style: italic; }

@media (min-device-width: 550px) {
  .event-details {
    font-size: 1.5em; } }

.small-caps {
  color: #8E7965;
  font-style: normal;
  font-size: 70%; }

#what-to-wear {
  /* For devices larger than 550px */ }
  #what-to-wear .icon {
    width: 60%;
    float: left;
    box-sizing: border-box;
    margin-left: 20%;
    margin-bottom: 10%; }
  @media (min-width: 550px) {
    #what-to-wear .icon {
      display: block;
      width: 35%;
      margin-left: 5%;
      margin-bottom: 0; }
    #what-to-wear .icon:first-child {
      margin-left: 10%; } }

#rsvp [name="attendee-names"] {
  text-indent: 11.5rem; }

#rsvp .button-container {
  margin-top: 0; }

#rsvp .radio-group {
  padding-left: 11.5rem;
  height: 5rem;
  box-shadow: none;
  box-sizing: border-box; }

#rsvp {
  /* Desktop */ }
  #rsvp .button {
    width: 100%; }
  #rsvp .button + .button {
    margin-top: 1rem; }
  @media (min-width: 920px) {
    #rsvp .button {
      width: 49%; }
    #rsvp .button + .button {
      margin-top: 0; } }

.rsvp-form {
  height: 15em; }

.rsvp-form--accepted .button,
.rsvp-form--declined .button {
  pointer-events: none; }

.rsvp-form--accepted .rsvp-card_back--decline {
  display: none; }

.rsvp-form--declined .rsvp-card_back--accept {
  display: none; }

.rsvp-card_back--accept,
.rsvp-card_back--decline {
  height: 5em; }

@-webkit-keyframes flip {
  0% {
    -webkit-transform: translateY(0) translateZ(0) rotateY(0deg);
            transform: translateY(0) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in; }
  50% {
    -webkit-transform: translateY(-3em) translateZ(10em) rotateY(90deg);
            transform: translateY(-3em) translateZ(10em) rotateY(90deg); }
  100% {
    -webkit-transform: translateY(0) translateZ(0) rotateY(180deg);
            transform: translateY(0) translateZ(0) rotateY(180deg);
    -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out; } }

@keyframes flip {
  0% {
    -webkit-transform: translateY(0) translateZ(0) rotateY(0deg);
            transform: translateY(0) translateZ(0) rotateY(0deg);
    -webkit-animation-timing-function: ease-in;
            animation-timing-function: ease-in; }
  50% {
    -webkit-transform: translateY(-3em) translateZ(10em) rotateY(90deg);
            transform: translateY(-3em) translateZ(10em) rotateY(90deg); }
  100% {
    -webkit-transform: translateY(0) translateZ(0) rotateY(180deg);
            transform: translateY(0) translateZ(0) rotateY(180deg);
    -webkit-animation-timing-function: ease-out;
            animation-timing-function: ease-out; } }

@-webkit-keyframes flip-front {
  0% {
    visibility: visible; }
  50% {
    visibility: hidden; }
  100% {
    visibility: hidden; } }

@keyframes flip-front {
  0% {
    visibility: visible; }
  50% {
    visibility: hidden; }
  100% {
    visibility: hidden; } }

@-webkit-keyframes flip-back {
  0% {
    visibility: hidden; }
  50% {
    visibility: hidden; }
  100% {
    visibility: visible; } }

@keyframes flip-back {
  0% {
    visibility: hidden; }
  50% {
    visibility: hidden; }
  100% {
    visibility: visible; } }

html {
  height: 100%; }

body.login {
  background: -webkit-linear-gradient(bottom, #D7B1B1, #E0B191);
  background: linear-gradient(to top, #D7B1B1, #E0B191);
  height: 100%; }

body.login .container {
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  max-width: 50rem; }

body.login section {
  padding: 3rem;
  border-radius: 10px;
  background-color: #F2EFEC;
  box-shadow: 0 4px 0 #8E7965; }

body.login form {
  margin-top: 2rem;
  margin-bottom: 4rem; }

body.login h5 {
  text-align: center;
  font-weight: normal;
  text-transform: none;
  font-family: "Baskerville", "Libre Baskerville", "Times New Roman", Times, serif;
  font-style: italic; }

body.login hr.hedera {
  margin-top: 0;
  margin-bottom: 0; }

body.login input {
  margin-bottom: 1rem; }

@media (min-device-width: 550px) {
  body.login .button--block {
    display: block;
    width: 100%; }
  body.login section {
    padding: 5rem; } }

body.login #password {
  text-indent: 10rem; }

.program {
  text-align: center;
  font-size: 2rem;
  padding-top: 5rem; }

.program .logo {
  margin: 0 auto;
  width: 25rem; }

.program .divider {
  margin-top: 2rem;
  margin-bottom: 2rem;
  font-size: 1.5rem;
  font-family: "Gill Sans", "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 600;
  text-transform: uppercase; }

.program .divider {
  display: table;
  white-space: nowrap; }

.program .divider:before,
.program .divider:after {
  content: '';
  display: table-cell;
  position: relative;
  top: 50%;
  width: 50%;
  background-image: url("../images/divider.png");
  background-repeat: no-repeat; }

.program .divider:before {
  background-position: right 1em top 50%; }

.program .divider:after {
  background-position: left 1em top 50%; }

.program h1 {
  font-size: 4rem;
  font-family: "Baskerville", "Libre Baskerville", "Times New Roman", Times, serif;
  font-style: italic;
  font-weight: normal;
  text-transform: none;
  color: #444444;
  -webkit-hyphens: none;
     -moz-hyphens: none;
      -ms-hyphens: none;
          hyphens: none; }

.program p {
  -webkit-hyphens: none;
     -moz-hyphens: none;
      -ms-hyphens: none;
          hyphens: none;
  text-indent: 0;
  font-style: italic; }

.program p + p {
  margin-top: -1rem; }

.program ul {
  -webkit-columns: auto 2;
     -moz-columns: auto 2;
          columns: auto 2;
  -webkit-column-fill: balance;
     -moz-column-fill: balance;
          column-fill: balance;
  vertical-align: text-top; }

.program li {
  line-height: 1.1;
  font-size: 1.2rem;
  list-style: none;
  font-family: "Gill Sans", "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-transform: uppercase;
  text-align: left;
  -webkit-column-break-inside: avoid;
     page-break-inside: avoid;
          break-inside: avoid;
  margin-bottom: 1.5rem; }

.provisions_details {
  color: #888888;
  font-size: 0.9rem;
  line-height: 1; }

@media (min-device-width: 550px) {
  .program {
    font-size: 2rem; }
  .program ul {
    -webkit-columns: auto 3;
       -moz-columns: auto 3;
            columns: auto 3; }
  .program .logo {
    width: 30rem; }
  .provisions {
    min-height: 10rem; }
  .libations {
    min-height: 6rem; }
  .special-thanks {
    min-height: 13rem; } }

.recipes {
  margin-top: 2rem; }

.recipes-page .nav {
  height: 2rem; }

.recipes-page .header img {
  min-width: 100%;
  min-height: 100%;
  text-align: center; }

.recipes-page .header_title {
  position: absolute;
  text-align: center;
  width: 100%;
  color: #FFFFFF;
  font-family: "Baskerville", "Libre Baskerville", "Times New Roman", Times, serif;
  font-style: italic;
  text-transform: none;
  font-weight: normal;
  line-height: 75rem;
  font-size: 12rem;
  text-shadow: 0 0 5rem #222222; }

.recipes-page .header_title .small {
  font-size: 66%;
  position: relative;
  top: -2rem; }

@media (min-device-width: 550px) {
  .recipes-page .header_title {
    line-height: 75rem;
    font-size: 25rem; } }

.recipes ul {
  text-indent: 2rem; }

.recipe_title {
  font-family: "Baskerville", "Libre Baskerville", "Times New Roman", Times, serif;
  font-style: italic;
  color: #372E22;
  text-transform: none; }

.recipe_byline {
  font-family: "Baskerville", "Libre Baskerville", "Times New Roman", Times, serif;
  font-style: italic;
  text-transform: none;
  opacity: 0.8;
  font-size: 1.8rem; }

.recipe_title + .recipe_byline {
  margin-top: -2.5rem; }

.recipe-section {
  position: relative; }

.recipe-section > .container {
  padding-top: 4rem;
  padding-bottom: 6rem; }

.recipe-section:nth-child(even) {
  background: #D4CCC5; }
  .recipe-section:nth-child(even) {
    position: relative;
    overflow: auto;
    padding-bottom: 2rem; }
  .recipe-section:nth-child(even):after {
    bottom: 0px;
    background-position: left bottom;
    background: -webkit-linear-gradient(135deg, #F2EFEC 1rem, transparent 0), -webkit-linear-gradient(45deg, #F2EFEC 1rem, transparent 0);
    background: linear-gradient(-45deg, #F2EFEC 1rem, transparent 0), linear-gradient(45deg, #F2EFEC 1rem, transparent 0);
    content: " ";
    display: block;
    position: absolute;
    left: 0px;
    width: 100%;
    height: 2rem;
    background-repeat: repeat-x;
    background-size: 2rem 2rem; }

.recipe-section:nth-child(odd) {
  background: #F2EFEC; }
  .recipe-section:nth-child(odd) {
    position: relative;
    overflow: auto;
    padding-bottom: 2rem; }
  .recipe-section:nth-child(odd):after {
    bottom: 0px;
    background-position: left bottom;
    background: -webkit-linear-gradient(135deg, #D4CCC5 1rem, transparent 0), -webkit-linear-gradient(45deg, #D4CCC5 1rem, transparent 0);
    background: linear-gradient(-45deg, #D4CCC5 1rem, transparent 0), linear-gradient(45deg, #D4CCC5 1rem, transparent 0);
    content: " ";
    display: block;
    position: absolute;
    left: 0px;
    width: 100%;
    height: 2rem;
    background-repeat: repeat-x;
    background-size: 2rem 2rem; }

.recipe-section:last-child:after {
  display: none; }

.person {
  position: absolute;
  width: 18rem;
  left: -26rem;
  top: 4rem; }

.person_image {
  border-radius: 50%;
  max-width: 100%;
  border: 0.5rem solid #FFFFFF;
  box-shadow: 0 0.25rem 0.5rem rgba(34, 34, 34, 0.2); }

.person_name {
  text-align: center;
  color: #372E22;
  font-style: italic;
  font-weight: bold; }

body {
  background-color: #F2EFEC; }

h1, h2, h3, h4, h5, h6 {
  color: #8E7965; }

.drop-cap:first-letter {
  color: #8E7965; }

.pull-quote:before,
.pull-quote:after {
  color: #8E7965; }

hr.hedera {
  height: 6rem;
  background-image: url("../images/team-chatt-flourish.svg");
  background-position: center center;
  background-size: 6rem;
  background-repeat: no-repeat; }

a {
  color: #258753; }

a:hover {
  color: #2B9D60; }

.main {
  padding-top: 3.5rem;
  font-size: 1.8rem; }
  .main img {
    width: 100%; }
  .main section {
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent; }
  .main hr {
    margin-top: 6rem;
    margin-bottom: 8rem; }
  .main p + p {
    margin-top: -1.5em;
    text-indent: 2.5em; }
  .main .button-container {
    margin-top: 6rem; }

.button-container {
  text-align: center; }
