/*!
 * baguetteBox.js
 * @author  feimosi
 * @version 1.11.1
 * @url https://github.com/feimosi/baguetteBox.js
 */
#baguetteBox-overlay {
  display: none;
  opacity: 0;
  position: fixed;
  overflow: hidden;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000000;
  background-color: #222;
  background-color: rgba(0, 0, 0, 0.8);
  -webkit-transition: opacity .5s ease;
  transition: opacity .5s ease; }
  #baguetteBox-overlay.visible {
    opacity: 1; }
  #baguetteBox-overlay .full-image {
    display: inline-block;
    position: relative;
    width: 100%;
    height: 100%;
    text-align: center; }
    #baguetteBox-overlay .full-image figure {
      display: inline;
      margin: 0;
      height: 100%; }
    #baguetteBox-overlay .full-image img {
      display: inline-block;
      width: auto;
      height: auto;
      max-height: 100%;
      max-width: 100%;
      vertical-align: middle;
      -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
         -moz-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
              box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); }
    #baguetteBox-overlay .full-image figcaption {
      display: block;
      position: absolute;
      bottom: 0;
      width: 100%;
      text-align: center;
      line-height: 1.8;
      white-space: normal;
      color: #ccc;
      background-color: #000;
      background-color: rgba(0, 0, 0, 0.6);
      font-family: sans-serif; }
    #baguetteBox-overlay .full-image:before {
      content: "";
      display: inline-block;
      height: 50%;
      width: 1px;
      margin-right: -1px; }

#baguetteBox-slider {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  white-space: nowrap;
  -webkit-transition: left .4s ease, -webkit-transform .4s ease;
  transition: left .4s ease, -webkit-transform .4s ease;
  transition: left .4s ease, transform .4s ease;
  transition: left .4s ease, transform .4s ease, -webkit-transform .4s ease, -moz-transform .4s ease; }
  #baguetteBox-slider.bounce-from-right {
    -webkit-animation: bounceFromRight .4s ease-out;
            animation: bounceFromRight .4s ease-out; }
  #baguetteBox-slider.bounce-from-left {
    -webkit-animation: bounceFromLeft .4s ease-out;
            animation: bounceFromLeft .4s ease-out; }

@-webkit-keyframes bounceFromRight {
  0% {
    margin-left: 0; }
  50% {
    margin-left: -30px; }
  100% {
    margin-left: 0; } }

@keyframes bounceFromRight {
  0% {
    margin-left: 0; }
  50% {
    margin-left: -30px; }
  100% {
    margin-left: 0; } }

@-webkit-keyframes bounceFromLeft {
  0% {
    margin-left: 0; }
  50% {
    margin-left: 30px; }
  100% {
    margin-left: 0; } }

@keyframes bounceFromLeft {
  0% {
    margin-left: 0; }
  50% {
    margin-left: 30px; }
  100% {
    margin-left: 0; } }

.baguetteBox-button#next-button, .baguetteBox-button#previous-button {
  top: 50%;
  top: calc(50% - 30px);
  width: 44px;
  height: 60px; }

.baguetteBox-button {
  position: absolute;
  cursor: pointer;
  outline: none;
  padding: 0;
  margin: 0;
  border: 0;
  -moz-border-radius: 15%;
       border-radius: 15%;
  background-color: #323232;
  background-color: rgba(50, 50, 50, 0.5);
  color: #ddd;
  font: 1.6em sans-serif;
  -webkit-transition: background-color .4s ease;
  transition: background-color .4s ease; }
  .baguetteBox-button:focus, .baguetteBox-button:hover {
    background-color: rgba(50, 50, 50, 0.9); }
  .baguetteBox-button#next-button {
    right: 2%; }
  .baguetteBox-button#previous-button {
    left: 2%; }
  .baguetteBox-button#close-button {
    top: 20px;
    right: 2%;
    right: calc(2% + 6px);
    width: 30px;
    height: 30px; }
  .baguetteBox-button svg {
    position: absolute;
    left: 0;
    top: 0; }

/*
    Preloader
    Borrowed from http://tobiasahlin.com/spinkit/
*/
.baguetteBox-spinner {
  width: 40px;
  height: 40px;
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px; }

.baguetteBox-double-bounce1,
.baguetteBox-double-bounce2 {
  width: 100%;
  height: 100%;
  -moz-border-radius: 50%;
       border-radius: 50%;
  background-color: #fff;
  opacity: .6;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: bounce 2s infinite ease-in-out;
          animation: bounce 2s infinite ease-in-out; }

.baguetteBox-double-bounce2 {
  -webkit-animation-delay: -1s;
          animation-delay: -1s; }

@-webkit-keyframes bounce {
  0%, 100% {
    -webkit-transform: scale(0);
            transform: scale(0); }
  50% {
    -webkit-transform: scale(1);
            transform: scale(1); } }

@keyframes bounce {
  0%, 100% {
    -webkit-transform: scale(0);
       -moz-transform: scale(0);
            transform: scale(0); }
  50% {
    -webkit-transform: scale(1);
       -moz-transform: scale(1);
            transform: scale(1); } }
/* Fonts */
@font-face {
    font-family: 'PlayfairDisplay';
    src: url('../fonts/playfairdisplay-regular-webfont.woff2') format('woff2'),
         url('../fonts/playfairdisplay-regular-webfont.woff') format('woff');
    font-weight: normal; font-style: normal; font-display: swap; }

@font-face {
    font-family: 'PlayfairDisplay';
    src: url('../fonts/playfairdisplay-italic-webfont.woff2') format('woff2'),
         url('../fonts/playfairdisplay-italic-webfont.woff') format('woff');
    font-weight: normal; font-style: italic; font-display: swap; }

@font-face {
    font-family: 'PlayfairDisplay';
    src: url('../fonts/playfairdisplay-bold-webfont.woff2') format('woff2'),
         url('../fonts/playfairdisplay-bold-webfont.woff') format('woff');
    font-weight: bold; font-style: normal; font-display: swap; }

@font-face {
    font-family: 'PlayfairDisplay';
    src: url('../fonts/playfairdisplay-bolditalic-webfont.woff2') format('woff2'),
         url('../fonts/playfairdisplay-bolditalic-webfont.woff') format('woff');
    font-weight: bold; font-style: italic; font-display: swap; }


/* Global */
*     { margin: 0; }
html {
  width: 100%;
  height: 100%;
}
body  {
  color: #292929;
  background: #69acb3;
  background-position: center;
  background-size: cover;
  background-attachment: fixed;
  font-family: "Century Gothic", "Apple Gothic", AppleGothic, "URW Gothic L", "Avant Garde", Futura, "Futura LT", sans-serif;
  /*font-size: 16px;*/
  -webkit-text-size-adjust: 100%;
}

p     { line-height: 1.5; }
a     { color: #000; }

h1, h2, h3, legend { font-family: "PlayfairDisplay", Didot, "Didot LT STD", "Bodoni MT", "Hoefler Text", Garamond, "Times New Roman", serif;
                 text-align: center; }
h1                { color: #bf8484; font-size: 2em; }
h2, legend        { color: #567491; letter-spacing: .05em; }
h3                { color: #000; font-size: 1em;  }
legend            { font-weight: bold; font-size: 1.25em; }
label             { color: #000; }
input, select, textarea   { font-family: sans-serif; font-size: .9em; }

img.full            { max-width: 100%; }
img.full-100        { width: 100%; }


  article           { padding: 0em 2em 2em; }
  article img       { max-width: 100%; }
  article h2        { margin-top: 1.5em; }
  article h1,
  article h2,
  article h3        { margin-left: auto; margin-right: auto; }
  article h3        { text-align: left; }
  article p         { margin: auto auto 1.5em auto; }
  article p.lead    { margin-top: .5em; max-width: 25em; }
  article hr        { color: #fff; border: solid 2px; width: 5%;
                      margin: 2em auto; }

  article form button.btn              { font-size: 1em; }
  article form label.error             { background-color: #f229296b; }
  article form.submitted select:invalid,
  article form.submitted input:invalid { box-shadow: #f22929 0 0 .2em .25em; }

  nav ul            { list-style: none; padding: 0; margin-bottom: -1em; margin-top: .5em; line-height: 2; text-align: center; }
  nav li            { display: inline; margin-right: 1em; }
  nav li a          { text-decoration: none; border-bottom: #ddd dotted 3px; }
  nav li a:hover,
  nav li.active a   {  border-bottom: #567491 dotted 3px; }

  .btn        { color: #343434; background: #e6e9ec; padding: .5em 1.5em .4em;
                display: inline-block; border: none; border-bottom: #555 solid 2px;
                text-decoration: none; }
  .btn:hover  { color: #fff; border-color: #183e66; background-color: #869ab0; }
  .btn::after { content: " ►"; }

  #print-page { float: right; }

/*article.p { margin: auto; max-width: 35em;  position: relative; background: #fffae0e3; }*/

/*article.p-menu { background: #343434;  }*/
article.p-menu {  margin: -14em auto auto; max-width: 35em; text-align: center;  }
article.p-menu > div { display: flex; justify-content: space-between; }
/*article.p-menu .btn {  background: #fff;  }*/

.link-blocks ul           { list-style: none; display: block;
                            text-align: center; line-height: 4; }
.link-blocks hr           { clear: both; }
.link-blocks li           { display: block; float: left; margin-bottom: 3%;
                            margin-right: 3%; width: 47%; }
.link-blocks li a         { height: 4em; display: block; background: #e6e9ec;
                            text-decoration: none; }
.link-blocks li a:hover   { color: #fff; background: #869ab0; }

article.p-home { margin: auto; padding: 2em; max-width: 40em;  position: relative; background: #fffae0e3; }
article.p-home p:last-child { margin-bottom: 0; }

article.p-hours { margin-top: 2em; display: flex; justify-content: space-evenly; }
article.p-hours h2 { margin: 0; }
article.p-hours em       {  width: 6em; display: inline-block; }
article.p-hours > *      { max-width: 20em; }

article.p-specials        { background: #567491; text-align: center; }
article.p-specials a      { align-self: center; }
article.p-specials        { padding: 1em; }
article.p-specials h2     { color: #fff; margin: 1em 0; font-weight: normal; }
article.p-specials div    { margin: auto; max-width: 70em;
                            display: flex; justify-content: space-evenly; }

article.menus { text-align: center; color: #9b6565; }
article.menus em { color: #867d7d; display: block; font-family: "PlayfairDisplay", Didot, "Didot LT STD", "Bodoni MT", "Hoefler Text", Garamond, "Times New Roman", serif; }
article.menus strong { color: #5e5e5e;  }
article.menus h2, article.menus h4  { column-span: all; max-width: initial; }
article.menus h4  { font-weight: initial; font-size: initial; letter-spacing: initial;
                    margin: 1em; font-size: .9em; }
article.menus div p { margin: 1em; break-inside: avoid; position: relative; }
article.menus > div { columns: 2; column-rule: dotted 3px #eee; }
article.menus.p-menusspecials > div { columns: 1; }

article.menus h1 { column-span: all; margin: 0; margin-top: 1em; border-bottom: dotted 3px #eee; }
article.menus h1 + p,
article.menus h1 + div > p:first-child { column-span: all; }
article.p-menuswines h2 { column-span: unset; }

article.p-menu { background: #343434;  }
article.p-menu > div { margin: auto; max-width: 50em; display: flex; }
article.p-menu > div > div { margin: 0 1em; width: 50%; }

/* Phone Tweaks (Portrait) */
@media only screen and (max-width : 500px) {
  article.p-menu > div { display: block; margin: 1em; }
  article.p-hours { display: block; }
}

/* Events */
  article.p-events,
  article.p-events h3        { text-align: center; }

/* Gallery */
  article.p-gallery     { text-align: center; }
  article.p-gallery img { max-width: 49%; }

  article.p-gift-cards img     { float: right; max-width: 35%; }
  article.p-gift-cards::after  { content: ""; display: table; clear: both; }


/* Shared Hero Styles */
  article.hero     { padding: 0; background-repeat: no-repeat;
                     background-position: center; background-size: cover; }
  article.hero div { color: #5e5d5d; background-color: #fcf4dd;
                     padding: 2em; max-width: 26em; }
  article.hero p   { margin-bottom: 2em; }
  article.hero a   { color: #5e5d5d;}
  article.hero h1,
  article.hero h2  { text-align: left; }


/* Reservations */
  article.p-reservations      { background-image: url("../images/reservations_1500.jpg");
                                padding: 3em; background-position: left; background-size: 60%; }

  article.p-reservations div  { margin: auto; text-align: left;
                                margin-right: 5%; max-width: 21em; }
  article.p-reservations div       {  background: #fffae0e3; }

  article.p-contact           { background-image: url("../images/contact_1200.jpg");
                                padding: 3em; background-size: 100%; background-position: top;
                                background-color: #2b2928; }
  article.p-contact div       { margin: auto; text-align: left; background-color: #ffffffeb;
                                margin-left: 5%; max-width: 30em; }


/*Header */

header {
  font-family: "PlayfairDisplay", Didot, "Didot LT STD", "Bodoni MT", "Hoefler Text", Garamond, "Times New Roman", serif;
  padding: .25em 0;
  margin: 0 .75em;
}

header a.logo {
  text-align: center;
  color: #5e5e5e;
  font-size: 2em;
  font-weight: bold;
  display: block;
  padding: .5em;
}

header a.logo i {
  font-family: "Century Gothic", "Apple Gothic", AppleGothic, "URW Gothic L", "Avant Garde", Futura, "Futura LT", sans-serif;
  font-size: 0.4em;
  font-style: normal;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  line-height: 2em;
  display: block;
  font-weight: normal;
  color: #000;
}

header a.logo img {
  float: left;
}

header a {
  color: #292929;
  text-decoration: none;
}

header ul {
  font-size: .9em;
  display: table;
  padding: 0;
  margin: auto;
  font-style: italic;
  margin-bottom: 1em;
}

header li {
  padding: .75em .4em;
  display: table-cell;
  border: #7e7e7e solid;
  border-width: 0 1px 0 0;
  margin: 1em 0 1em 0;

}

header ul li:last-child {
  border-right-width: 0;
}

header ul a {
  padding: 0.3em;
}

header ul li.active a,
header ul a:hover {
  color: #7e7e7e;
}

/* Header Phone Tweaks */
@media only screen and (max-width : 750px) {
  header                    { text-align: center;  padding-top: 1em; }
  header a.logo             { margin-left: 3em; padding: 0; font-size: 1.5em }
  header a.logo img         { height: 2.5em; width: 3em; margin-top: -.25em; margin-left: -4em; position: absolute; }
  header ul                 { display: block; margin: 1.5em -1em 0 -1em; }
  header li                 { display: inline-block; border-width: 1px; padding: .5em; margin: .25em; margin-bottom: .5em; }
  header ul li:last-child   { border-right-width: 1px; }
  header ul li.active       { background: #7e7e7e; }
  header ul li.active a     { color: #fff; }
}


/* Alerts */
  div.alert         { background: #ac3a5f; color: #daf6ff; text-align: center;
                      padding: .5em .5em .75em; font-size: .9em; }
  div.alert h1,
  div.alert h2,
  div.alert h3      { color: inherit; font-weight: bold; letter-spacing: inherit; margin-right: .5em; }

  div.alert h1      { font-size: 1.8em; }
  div.alert h2      { font-size: 1.6em; }
  div.alert h3      { font-size: 1.2em; }
  div.alert a       { font-size: .9em; color: inherit; padding: .08em .2em;
                      text-decoration: none; font-weight: bold;
                      border: solid 1px; }
  div.alert a::after{ content: " ►"; }
  div.alert a:hover { color: #fff; background-color: #0003; }


/* Page */


#wrapper {
  background: #fff;
  margin: auto;
  max-width: 1200px;
  box-shadow: #6db6bfbf 0 0 3em;
}

/* Large-Screen Tweaks */
@media only screen and (min-width : 750px) {
  body {
    background-image: url("../images/background_beach.jpg");
    margin: 0 5%;
  }
}

/* Extra-Large-Screen Tweaks */
@media only screen and (min-width: 1280px) {
  body {
    margin: 0 15%;
  }
}

  footer                    { color: #5e5d5d;  font-size: .8em; margin-bottom: 0;
                              text-align: center; padding: 2em 2em 4em;
                              background: #e6e9ec;
                              /*border-top: #eee solid 2px;*/
                            }
  footer .grid              { margin: auto auto 2em; max-width: 70em; display: flex;
                              flex-direction: row-reverse; justify-content: space-evenly; }
  footer .grid > div        { margin: 1em; flex: 1; }
  footer .hours p em        { font-variant: small-caps; text-transform: lowercase;
                              font-weight: bold; font-style: normal; }
  footer h2                 { font-size: 1.25em; color: #5e5d5d; }
  footer a                  { color: #5e5d5d; font-weight: bold; text-decoration: none; }
  footer img                { vertical-align: middle; }
  footer p span             { text-transform: uppercase; font-size: .85em; }
  footer .social            { margin-top: -1em; }
  footer .social a          { color: #343434; background: #fff; padding: .5em .25em;
                              margin: 1em 0.5em; min-width: 3em; min-height 2em;
                              display: inline-block;
                              border-bottom: #555 solid 2px; text-decoration: none; }
  footer .social a:hover    { background-color: #c3ccd6; border-color: #183e66; }

  footer .restaurants a     { margin: 1em; display: inline-block; }


/* Phone Tweaks (Portrait) */
@media only screen and (max-width : 500px) {
  footer .grid,
  article .restaurants div,
  article.p-specials > div,
  article.p-menu > div { display: block; }
  article.p-menu > div > div { margin: inherit; width: inherit; }
  article.p-gift-cards img { float: inherit; max-width: 60%;
                             margin: auto; display: block; }

  article.p-hours > *      { max-width: unset; }

  .link-blocks li { float: none; width: inherit; }
  article.menus > div { columns: 1; }


  article.p-contact,
  article.p-reservations {
    background-image: none;
    padding: 0;
    background: initial;
  }

  article.hero h1 {
    text-align: center;
  }

  article.p-reservations div,
  article.p-contact div {
    padding: 0em 2em 2em;
    margin-right: auto;
    margin-left: auto;
    background: initial;
  }

}
/* Gift Cards Page */
article.p-gift-cards form            { text-align: center; width: 64%; }
article.p-gift-cards form label      { font-family: "PlayfairDisplay", Didot, "Didot LT STD", "Bodoni MT", "Hoefler Text", Garamond, "Times New Roman", serif; }
article.p-gift-cards label           { margin-right: .5em; font-size: .9em; }
article.p-gift-cards .row            { margin-bottom: .5em; padding-bottom: .5em;
                                       border-bottom: #ddd dotted 3px; }
article.p-gift-cards .row      input { padding: .5em 0 .5em 0; }
article.p-gift-cards .amt      input { width: 5em; }
article.p-gift-cards .qty      input { width: 3em; }

article.p-gift-cards .row     button { color: #343434; background: #e6e9ec; width: 2em;
                                       border: none; border-bottom: #555 solid 2px;
                                       padding: .4em .5em .4em; }
article.p-gift-cards .row button:hover { border-color: #183e66; color: #fff; }
/* Hide remove button if we have only one card */
article.p-gift-cards .row:only-child button.remove { visibility: hidden; }
article.p-gift-cards button.add         { background-color: #b2e3c8; }
article.p-gift-cards button.remove      { background-color: #edcbcb; }
article.p-gift-cards #checkout          { margin: auto; display: block; }

/* Checkout Page */
article.p-checkout form             { max-width: 30em; margin: auto; margin-bottom: 2em; }
article.p-checkout form > div       { text-align: center; margin-bottom: 1em; }
article.p-checkout form > div table { margin: auto; margin-bottom: 1em; }
article.p-checkout table            { color: #000; text-align: right; }
article.p-checkout table td,
article.p-checkout table th         { width: 50%; }
article.p-checkout fieldset         { display: flex; flex-wrap: wrap;
                                      border: dotted 3px #ddd; margin-bottom: 1em; }
article.p-checkout textarea         { padding: .4em .5em .4em; height: 5em; }
article.p-checkout fieldset input,
article.p-checkout fieldset select,
article.p-checkout fieldset textarea             { display: block; width: 97%;
                                                   box-sizing: border-box; }
article.p-checkout fieldset label                { flex: 1 50%; margin-bottom: 1em; }
article.p-checkout fieldset label.full           { flex: 1 100%; }
article.p-checkout fieldset label small          { font-variant: small-caps; text-transform: lowercase;
                                                   background-color: #fcf4dd; padding: .15em .25em;
                                                   letter-spacing: .05em; }
article.p-checkout fieldset input[type=checkbox] { display: inline-block; width: inherit; }
article.p-checkout fieldset#contact label.full input,
article.p-checkout fieldset#contact label.full select,
article.p-checkout fieldset#contact label.full textarea { width: 50%; display: inline-block; }

article.p-checkout form.no_shipping .w_shipping  { display: none; }
article.p-checkout form.w_shipping .no_shipping  { display: none; }

/* Phone Tweaks */
@media only screen and (max-width : 750px) {
    article.p-gift-cards form           { width: auto; margin: auto -2em; }
    article.p-gift-cards .row button    { width: 4em; margin-top: 1em; }
}

/* Phone Tweaks (Portrait) */
@media only screen and (max-width : 500px) {
    article.p-checkout                  { padding: .5em; }
}

/* Tiny Phone Tweaks (Portrait) */
@media only screen and (max-width : 320px) {
  article.p-checkout fieldset label     { flex: 1 100%; }
}
/* Print Styles */
@media only print {
  body, header, footer, article         { background: #fff; color: #000;
                                          margin: 0; padding: 0;
                                          font-size: 12px; }
  #wrapper                              { max-width: auto; box-shadow: none; }
  #print-page,
  nav, header ul, footer,
  video, div.alert                      { display: none; }
  header a.logo                         { top: 0; left: 1em; }
  header a.logo img                     { height: 60px; }

  article.p-checkout                    { margin: 4em; }
  article.menus h1                      { border: none; }
  a, article, article *                 { height: auto      !important;
                                          color: #000       !important;
                                          text-shadow: none !important;
                                          background: none  !important; }
}
