@font-face {
  font-family:'CaslonGraD';
  src: url('/CaslonGraD Regular.ttf');
}
@font-face {
  font-family:'LydianMT';
  src: url('/LydianMT.ttf');
}
@font-face {
  font-family: 'Lydian';
  src: url('/Lydian.ttf');
}
@font-face {
  font-family: 'CaslonGraComD';
  src: url('CaslonGraComD.ttf');
}
* {
  margin: 0;
  padding: 0;
}
section {
  display: grid;
  grid-template-columns: 160px 1fr 160px;
  grid-row-gap: 100px;
  padding-top: 160px;
}
/* quick hack for computer screens */
@media (min-width: 1000px) {
  section {
    padding-left: calc( calc(100vw - 1000px) / 2 );
    padding-right: calc( calc(100vw - 1000px) / 2 );
  }
}
section > * {
  grid-column: 2/3;
}
section#title {
  color: #2e2126;
  text-transform: uppercase;
  background: #e3dcc7;
}
#title h1 {
  text-align: center;
  font-family: CaslonGraD;
  font-size: 100px;
  font-weight: 100;
}
#title-loc {
  width: 82%;
  margin-left: auto;
  margin-right: auto;
}
#title h2 {
  text-align: justify;
  text-align-last: justify;
  font-family: Lydian;
  font-size: 55px;
  font-weight: normal;
}
section#green {
  background: #1e3028;
  padding-top: 240px;
}
section#grass {
  background: #2e2126;
  grid-template-columns: 0px 1fr 0px;
  padding-top: 0;
}
section#featuring {
  background: #d4b075;
  grid-row-gap: 50px;
  grid-template-columns: 0px 1fr 0px;
  padding-bottom: 160px;
}
#featuring h1{
  text-align: center;
  font-family: Lydian;
  font-size: 60px;
  font-weight: 100;
  color: #8f5111;
}
#featuring h2 {
  text-transform: uppercase;
  text-align: center;
  font-family: CaslonGraD;
  font-size: 60px;
  font-weight: 100;
  color: #4a0a19;
  line-height: 1.5;
}
.spark-parent {
  width: 0;
  height: 0;
  display: inline-block;
  position: relative;
}
.spark-parent > img {
  position: absolute;
}
section#nice-rock {
  background: #1e3028;
  grid-template-columns: 0px 1fr 0px;
  padding-top: 0;
}
section#youre-invited {
  background: #2e2126;
  color: #e3dcc7;
  grid-row-gap: 50px;
  padding-bottom: 160px;
}
#youre-invited h1 {
  text-transform: uppercase;
  text-align: center;
  font-family: CaslonGraD;
  font-size: 35px;
  font-weight: 100;
}
#youre-invited p {
  text-align: justify;
  text-align-last: center;
  font-family: Lydian;
  font-size: 30px;
}
section#hosts {
  background: #4a0a19;
  color: #d4b075;
  grid-template-columns: 220px 1fr 220px;
  grid-row-gap: 0;
  padding-bottom: 160px;
}
#hosts h1 {
  font-family: CaslonGraD;
  font-size: 63px;
  font-weight: 100;
  text-align: center;
}
#hosts h2 {
  font-family: LydianMT;
  font-size: 77px;
  font-weight: normal;
}
#michael {
  grid-column: 1/2;
}
#michael h2 {
  transform: rotate(-90deg);
  transform-origin: 100% 100%;
  position: relative;
  top: 36px;
}
#hilary {
  grid-column: 3/4;
  position: relative;
}
#hilary h2 {
  white-space: nowrap;
  transform: rotate(-90deg);
  transform-origin: 0 0;
  position: absolute;
  bottom: -1.2em;
}
section#the-site {
  background: #e3dcc7;
  color: #1e3028;
  grid-row-gap: 35px;
}
#the-site h1 {
  font-family: CaslonGraD;
  font-size: 63px;
  font-weight: 100;
}
#the-site p {
  text-align: justify;
  text-align-last: center;
  font-family: LydianMT;
  font-size: 30px;
}
#the-site a {
  color: #4a0a19;
}
section#address {
  background: #e3dcc7;
  color: #1e3028;
  grid-row-gap: 35px;
  padding-bottom: 160px;
}
#address h1 {
  font-family: CaslonGraD;
  font-size: 63px;
  font-weight: 100;
}
#address p {
  text-align: center;
  font-family: LydianMT;
  font-size: 30px;
}
section#slider {
  background: #1e3028;
  grid-template-columns: 0px 1fr 0px;
  padding-top: 0;
}
.gallery-cell {
  width: 100%;
  height: 50vw;
  display: flex;
  align-items: center;
}
#slider img {
  max-width: 100%;
  max-height: 100%;
  margin-left: auto;
  margin-right: auto;
}
section#schedule {
  background: #8f5111;
  color: #1e3028;
  padding-bottom: 160px;
  grid-row-gap: 40px;
}
#schedule h1 {
  text-align: justify;
  text-align-last: justify;
  font-family: CaslonGraD;
  font-size: 63px;
  font-weight: 100;
}
#schedule summary {
  text-align: justify;
  text-align-last: justify;
  font-family: Lydian;
  font-size: 39px;
  font-weight: normal;
}
#schedule details > p {
  margin: 30px 0;
  font-family: Lydian;
  font-size: 30px;
  text-align: left;
}
#schedule hr {
  border: 3px solid #1e3028;
  border-radius: 3px;
}
section#grass2 {
  background: #1e3028;
  grid-template-columns: 0px 1fr 0px;
  padding-top: 0;
}
section#lodging {
  background: #d4b075;
  color: #2e2126;
  grid-row-gap: 35px;
  padding-bottom: 160px;
}
#lodging h1 {
  text-align: justify;
  text-align-last: justify;
  font-family: CaslonGraD;
  font-size: 60px;
  font-weight: 100;
  letter-spacing:-2px;
}
#lodging p {
  text-align: justify;
  text-align-last: center;
  font-family: Lydian;
  font-size: 30px;
}
#lodging summary {
  font-family: Lydian;
  font-size: 39px;
}
#lodging details > p {
  margin: 30px 0;
  text-align: left;
  text-align-last: left;
}
#lodging hr {
  border: 3px solid #2e2126;
  border-radius: 3px;
}
#lodging a {
  color: #4a0a19;
}
section#rsvp {
  background: #4a0a19;
  color: #e3dcc7;
  font-weight: 100;
  grid-row-gap: 0;
  padding-bottom: 160px;
}
#rsvp p {
  text-align: center;
  font-family: Lydian;
  font-size: 30px;
}
#rsvp a {
  background: #8f5111;
  color: #e3dcc7;
  border: none;
  padding: 15px 50px;
  text-align: center;
  margin: 16px 0;
  text-decoration: none;
  cursor: pointer;
  font-family: Lydian;
  font-size: 30px;
  display: inline-block;
}
section#bits-n-bobs {
  background: #2e2126;
  color: #8f5111;
  grid-row-gap: 35px;
  padding-bottom: 160px;
}
#bits-n-bobs h1 {
  text-align: justify;
  text-align-last: justify;
  font-family: CaslonGraD;
  font-size: 63px;
  font-weight: 100;
}
#bits-n-bobs summary {
  font-family: Lydian;
  font-size: 39px;
  font-weight: normal;
}
#bits-n-bobs details > p {
  margin: 30px 0;
  text-align: left;
  font-family: Lydian;
  font-size: 30px;
}
#bits-n-bobs hr {
  border: 3px solid #8f5111;
  border-radius: 3px;
}
#bits-n-bobs a {
  color: #d4b075;
}
section#form {
  background: #8f5111;
  color: #231b20;
  grid-row-gap: 120px;
  padding-bottom: 160px;
}
#form h1 {
  font-family: CaslonGraD;
  font-size: 63px;
  font-weight: 100;
  text-align: justify;
  text-align-last: justify;
}
#form p {
  font-family: LydianMT;
  font-size: 30px;
  color: #231b20;
  padding-bottom: 0.8em;
}
#form .guest {
  padding-left: 50px;
  padding-top: 50px;
}
#form input[type="text"] {
  font-family: LydianMT;
  font-size: 30px;
  color: #231b20;
  background: transparent;
  border: none;
  border-bottom: 3px solid #231b20;
  width: 100%;
  text-transform: uppercase;
}
#form button {
  border: none;
  border-radius: 3px;
  width: 50px;
  height: 50px;
  font-family: LydianMT;
  font-size: 30px;
  background: #231b20;
  color: #8f5111;
  cursor: pointer;
}
#form hr {
  border: 3px solid #231b20;
  border-radius: 3px;
}
#form label > input[type="radio"] {
  display: none;
}
#form .yesno label {
  width: 49%;
  display: inline-block;
}
#form label > input[type="radio"] + span {
  position: relative;
}
#form label > input[type="radio"] + *::after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 24px;
  height: 24px;
  vertical-align: top;
  margin-top: 2px;
  border-style: solid;
  border-width: 3px;
  border-color: #231b20;
  right: -60px;
}
#form label > input[type="radio"]:checked + *::before {
  content: "";
  position: absolute;
  display: inline-block;
  width: 18px;
  height: 18px;
  vertical-align: top;
  margin-top: 8px;
  background: #231b20;
  right: -54px;
}
#form .ifso {
  margin-left: 50px;
}
#form button.submit {
  padding: 15px 50px;
  text-align: center;
  margin: 16px 0;
  text-decoration: none;
  width: unset;
  height: unset;
}
section#thanks {
  background: #e3dcc7;
  color: #1e3028;
  grid-row-gap: 35px;
  padding-bottom: 160px;
}
#thanks h1 {
  font-family: CaslonGraD;
  font-size: 63px;
  font-weight: 100;
}
#thanks p {
  font-family: LydianMT;
  font-size: 30px;
  color: #1e3028;
}
#thanks hr {
  border: 3px solid #1e3028;
  border-radius: 3px;
}
#thanks a {
  background: #8f5111;
  color: #e3dcc7;
  border: none;
  padding: 15px 50px;
  text-align: center;
  margin: 16px 0;
  text-decoration: none;
  cursor: pointer;
  font-family: Lydian;
  font-size: 30px;
  display: inline-block;
}
section#main {
  background: #e3dcc7;
  color: #1e3028;
  grid-row-gap: 35px;
  padding-bottom: 160px;
}
#main h1 {
  font-family: CaslonGraD;
  font-size: 63px;
  font-weight: 100;
}
#main p {
  font-family: LydianMT;
  font-size: 30px;
  color: #1e3028;
}
#main hr {
  border: 3px solid #1e3028;
  border-radius: 3px;
}
#main a {
  color: #4a0a19;
}
