.icon-font,.checkbox-flat.checked:before,.menu-list.with-arrows .menu-list-link:after,.menu-list-label.highlight:after
{
  font-family:icons;
  speak:none;
  font-style:normal;
  font-weight:400;
  font-variant:normal;
  text-transform:none;
  line-height:1;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

.form-select,.form-input,.form-textarea
{
  -webkit-appearance:none!important;
  outline:0;
  font-weight:100;
  display:block;
  background:#fff;
  font-size:.875rem;
  margin-bottom:.5rem;
  border:1px solid rgba(0,0,0,.12);
  border-radius:3px;
  width:100%;
}

.form-select:focus,.form-select:hover,.form-input:focus,.form-input:hover,.form-textarea:focus,.form-textarea:hover
{
  border-color:rgba(0,0,0,.2);
}

.form-select.error,.form-input.error,.form-textarea.error
{
  color:#d30303;
  margin-bottom:.5rem;
  border-color:#d30303;
}

.error-text,.error-list
{
  margin-bottom:1rem!important;
  color:#da3743;
}

.error-text a,.error-list a
{
  text-decoration:underline;
}

.error-list.with-list-top-margin ul
{
  margin-top:.5rem;
}

.form-select
{
  position:relative;
  line-height:normal;
  padding:0;
  height: inherit;
}

.form-select .dtp-picker-selector-link
{
  height:inherit;
}

input[type='checkbox'].flat
{
  opacity:0;
  float:left;
  margin-left:.5rem;
}

input[type='radio']
{
  margin-left:.5rem;
  margin-right:.5rem;
}

.checkbox-flat,.radio-flat
{
  display:inline-block;
  vertical-align:middle;
  width:16px;
  height:16px;
  -webkit-opacity:.5;
  -moz-opacity:.5;
  opacity:.5;
  border:0;
  cursor:pointer;
  margin:0;
  padding:0;
}

.checkbox-flat
{
  border-radius:3px;
  border:1px solid rgba(0,0,0,.2);
  text-align:center;
  padding:2px 0;
}

.checkbox-flat.checked
{
  background:#da3743;
  color:#fff;
  -webkit-opacity:1;
  -moz-opacity:1;
  opacity:1;
  border-color:#da3743;
}

.checkbox-flat.checked:before
{
  content:"";
  font-size:.6em;
  vertical-align:top;
}

.checkbox-flat+label
{
  display:inline-block;
  margin-bottom:1rem;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  -khtml-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  font-size:.875rem;
}

.checkboxes label,.radiobuttons label
{
  position:relative;
  padding-left:1.25rem;
  line-height:1.3125rem;
  margin-right:.5rem;
  cursor:pointer;
}

.checkboxes label:before,.checkboxes label:after,.radiobuttons label:before,.radiobuttons label:after
{
  font-family:icons;
  font-size:1rem;
  position:absolute;
  top:0;
  left:0;
}

.checkboxes label:before,.radiobuttons label:before
{
  color:#999;
}

.checkboxes label:after,.radiobuttons label:after
{
  max-width:0;
  overflow:hidden;
  color:#da3743;
  opacity:.5;
  transition:opacity .1s ease-in-out;
}

.checkboxes input,.radiobuttons input
{
  display:none;
}

.checkboxes input:checked+label:after,.radiobuttons input:checked+label:after
{
  max-width:25px;
  opacity:1;
}

.checkboxes label:before
{
  content:'';
}

.checkboxes label:after
{
  content:'';
}

.radiobuttons .radiobutton-text
{
  margin-right:.5rem;
}

.radiobuttons label:before
{
  content:'';
}

.radiobuttons label:after
{
  content:'';
}

.menu
{
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  -khtml-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none;
  color:#333;
  position:absolute;
  z-index:100;
  width:100%;
  top:90%;
  left:0;
}

.menu:before
{
  content:'';
  display:block;
  -webkit-opacity:0;
  -moz-opacity:0;
  opacity:0;
  -ms-filter:alpha(opacity=0);
  filter:alpha(opacity=0);
  overflow:hidden;
  -webkit-transform:translateY(-1em) perspective(600px) rotateX(0);
  -moz-transform:translateY(-1em) perspective(600px) rotateX(0);
  transform:translateY(-1em) perspective(600px) rotateX(0);
  -webkit-transition:0 .15s ease-out,opacity .15s ease-out;
  -moz-transition:0 .15s ease-out,opacity .15s ease-out;
  transition:transform .15s ease-out,opacity .15s ease-out;
}

.menu.menu-opened:before
{
  z-index:100;
  width:20px;
  background-image:url(../../assets/css/controllers/img/menu-arrow.png);
  height:8px;
  position:absolute;
  top:-6px;
  left:.5rem;
  -webkit-opacity:1;
  -moz-opacity:1;
  opacity:1;
  -ms-filter:alpha(opacity=1);
  filter:alpha(opacity=1);
  -webkit-transform:translateY(0) perspective(600px) rotateX(0);
  -moz-transform:translateY(0) perspective(600px) rotateX(0);
  transform:translateY(0) perspective(600px) rotateX(0);
  -webkit-transition:0 .15s ease-out,opacity .15s ease-out;
  -moz-transition:0 .15s ease-out,opacity .15s ease-out;
  transition:transform .15s ease-out,opacity .15s ease-out;
}

.menu-hover-wrapper .menu
{
  top:100%;
}

.menu.menu-top
{
  top:auto;
  bottom:90%;
}

.menu.menu-top.menu-outside
{
  top:-2px;
  bottom:auto;
}

.menu.menu-top:before
{
  background:url(../../assets/css/controllers/img/menu-arrow-down.png);
  top:auto;
  bottom:-6px;
}

.menu-hover-wrapper .menu.menu-top
{
  bottom:100%;
}

.menu.menu-top .menu-container
{
  top:auto;
  bottom:0;
}

.menu.menu-left
{
  left:100%;
  right:auto;
  margin-left:1rem;
  top:0;
}

.menu.menu-left:before
{
  position:absolute;
  top:8px;
  left:-12px;
  -webkit-transform:translateX(1em) perspective(600px) rotate(-90deg);
  -moz-transform:translateX(1em) perspective(600px) rotate(-90deg);
  transform:translateX(1em) perspective(600px) rotate(-90deg);
}

.menu.menu-left.menu-opened:before
{
  -webkit-transform:translateX(0) perspective(600px) rotate(-90deg);
  -moz-transform:translateX(0) perspective(600px) rotate(-90deg);
  transform:translateX(0) perspective(600px) rotate(-90deg);
}

.menu-container
{
  zoom:1;
  -webkit-opacity:0;
  -moz-opacity:0;
  opacity:0;
  position:absolute;
  min-width:9.375rem;
  max-height:0;
  overflow:hidden;
  -webkit-transform:translateY(-1em) perspective(600px) rotateX(0);
  -moz-transform:translateY(-1em) perspective(600px) rotateX(0);
  transform:translateY(-1em) perspective(600px) rotateX(0);
  -webkit-transition:0 .15s ease-out,opacity .15s ease-out,position .15s ease-out,max-height 0 .15s;
  -moz-transition:0 .15s ease-out,opacity .15s ease-out,position .15s ease-out,max-height 0 .15s;
  transition:transform .15s ease-out,opacity .15s ease-out,position .15s ease-out,max-height 0 .15s;
}

.menu-opened .menu-container
{
  -webkit-opacity:1;
  -moz-opacity:1;
  opacity:1;
  max-height:70rem;
  -webkit-transform:translateY(0) perspective(600px) rotateX(0);
  -moz-transform:translateY(0) perspective(600px) rotateX(0);
  transform:translateY(0) perspective(600px) rotateX(0);
  -webkit-transition:0 .15s ease-out,opacity .15s ease-out,position .15s ease-out,max-height 0;
  -moz-transition:0 .15s ease-out,opacity .15s ease-out,position .15s ease-out,max-height 0;
  transition:transform .15s ease-out,opacity .15s ease-out,position .15s ease-out,max-height 0;
}

.menu-main
{
  background:#fff;
  box-shadow:0 0 0 1px rgba(0,0,0,.1);
  border-radius:3px;
  zoom:1;
  margin:2px;
}

.menu-center:before
{
  left:50%;
  margin-left:-10px;
}

.menu-right.menu-opened:before
{
  left:auto;
  right:.45rem;
}

.menu-right .menu-container
{
  right:0;
}

.menu-divider
{
  height:1px;
  width:100%;
  background:rgba(0,0,0,.08);
  outline:0;
  border:0;
  margin:0;
}

.menu-header
{
  border-bottom:1px solid rgba(0,0,0,.12);
  padding:1rem;
}

.menu-header.with-rows
{
  margin:0 -1rem;
}

.menu-sub-header
{
  text-transform:uppercase;
  color:#666;
  font-size:.875rem;
  border-bottom:1px solid rgba(0,0,0,.12);
  white-space:nowrap;
  font-weight:500;
  padding:1rem;
}

.menu-body
{
  zoom:1;
}

.menu-footer
{
  border-top:1px solid rgba(0,0,0,.12);
  padding:1rem;
}

.menu-section
{
  zoom:1;
}

.menu-section.with-padding
{
  padding:.8rem 1rem;
}

.menu-section-header,.menu-section-body
{
  padding:1rem 1.5rem;
}

.menu-section-header.with-rows,.menu-section-body.with-rows
{
  padding-left:.5rem;
  padding-right:.5rem;
}

.menu-section-header
{
  padding-bottom:0;
}

.menu-section-header h1,.menu-section-header h2,.menu-section-header h3,.menu-section-header h4,.menu-section-header h5
{
  margin:0;
}

.menu-list.with-arrows .menu-list-link
{
  padding-right:3rem;
}

.menu-list.with-arrows .menu-list-link:after
{
  content:"";
  display:block;
  position:absolute;
  top:.85rem;
  right:1.2rem;
  font-size:.875rem;
}

.menu-list.with-meta .menu-list-link
{
  padding-right:20%;
}

.menu-list-link
{
  color:#666!important;
  display:block;
  position:relative;
  padding:.8rem 1rem;
}

.menu-list-link:hover
{
  color:#333!important;
  background:rgba(0,0,0,.03);
}

.menu-list-selectors .menu-list-link
{
  color:#999!important;
  border-left:3px solid transparent;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.menu-list-selectors .menu-list-link:hover,.menu-list-selectors .menu-list-link.selected
{
  color:#559ebe!important;
  background:#eef4fb;
  border-color:#559ebe;
}

.menu-list-selectors .menu-list-link:hover:after,.menu-list-selectors .menu-list-link.selected:after
{
  color:#559ebe;
}

.menu-list-selectors .menu-list-link.selected
{
  font-weight:500;
}

.menu-list-selectors .menu-list-link.selected .menu-list-link-meta
{
  font-weight:400;
}

.menu-list-link-meta
{
  position:absolute;
  right:0;
  width:20%;
  text-align:right;
  padding-right:1rem;
  font-size:.875rem;
  line-height:1.3;
}

.menu-list-base-link
{
  display:block;
  border-top:1px solid rgba(0,0,0,.08);
  padding:.8rem 1rem;
}

.menu-list-label
{
  display:block;
  white-space:nowrap;
  font-size:1rem;
  line-height:1;
  position:relative;
  width:100%;
  margin:0;
  padding:.8rem 3rem .8rem 1rem;
}

.menu-list-label:hover
{
  background:rgba(0,0,0,.05);
  cursor:pointer;
}

.menu-list-label.highlight
{
  background:#da3743;
  color:#fff;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  width:100%;
}

.menu-list-label.highlight:after
{
  content:"";
  position:absolute;
  right:1rem;
  top:45%;
  line-height:0;
}

.menu-list-input
{
  opacity:0;
  display:none;
  margin:0 1rem 0 0;
}

.reservation-column:first-child
{
  padding-right:.5rem;
}

.reservation-column+.reservation-column
{
  padding-left:0;
  padding-right:.5rem;
}

.reservation-column+.reservation-column:last-child
{
  padding-right:1rem;
  padding-left:0;
}

.input-group-connected
{
  padding-left:0;
  padding-right:0;
}

.input-group-connected:first-child .form-input,.input-group-connected:first-child .form-select
{
  border-top-right-radius:0;
  border-bottom-right-radius:0;
  margin-bottom:0;
}

.input-group-connected.middle .form-input,.input-group-connected.middle .form-select
{
  border-left:0;
  border-radius:0;
  margin-bottom:0;
}

.input-group-connected.last .form-input,.input-group-connected.last .form-select
{
  border-left:0;
  border-top-left-radius:0;
  border-bottom-left-radius:0;
  margin-bottom:0;
}

.phone-input.form-input
{
  padding:0;
}

.phone-input:before
{
  content:"x";
  position:absolute;
  font-size:.875rem;
  padding-top:1rem;
  padding-bottom:1rem;
  right:10.5rem;
  color:#999;
  line-height:normal;
  display:none;
}

.phone-input:after
{
  content:" ";
  width:1px;
  position:absolute;
  top:1px;
  height:3.125rem;
  background-color:rgba(0,0,0,.08);
  right:6.5rem;
}

.phone-input .phone-number-ext,.phone-input .phone-number
{
  border:0;
  font-size:.875rem;
  padding:1rem;
}

.phone-input .phone-number-ext:focus,.phone-input .phone-number-ext:hover,.phone-input .phone-number:focus,.phone-input .phone-number:hover
{
  outline:none!important;
}

.phone-input .phone-number
{
  width:100%;
  padding-right:7rem;
}

.phone-input .phone-number-ext
{
  position:absolute;
  right:6.5rem;
  top:1px;
  width:4rem;
  display:none;
}

.phone-input .phone-number-kind
{
  width:6rem;
  top:0;
  right:.5rem;
  position:absolute;
  border:0;
  background-color:transparent;
}

.phone-input .phone-number-kind:focus,.phone-input .phone-number-kind:hover
{
  border:0;
}

.phone-input:focus:after,.phone-input:hover:after
{
  background-color:rgba(0,0,0,.2);
}

.phone-input.with-ext .phone-number
{
  padding-right:11rem;
}

.reservation-block-li
{
  float:left;
  margin-right:2rem;
}

.reservation-block-li h6
{
  text-transform:uppercase;
  color:#999;
  margin-bottom:0;
}

.reservation-block-image
{
  width:60px;
  height:60px;
  background:#f7f7f7;
  overflow:hidden;
  border-radius:3px;
}

.reservation-block-image img
{
  width:60px;
  height:60px;
  position:absolute;
  clip:rect(0,60px,60px,0);
}

body.reservation-new .icon-info,body.reservation-confirm .icon-info
{
  font-size:15px;
  display:block;
  width:14px;
  float:left;
  padding-top:2px;
  margin-right:7px;
}

.reservation-add-calendar-menu .reservation-add-calendar-menu-item
{
  text-align:left;
}

.reservation-offers
{
  margin-top:.5rem;
  margin-bottom:2rem;
  padding-bottom:.5rem;
  border-bottom:1px solid rgba(0,0,0,.08);
}

.reservation-offers .reservation-offer-list .reservation-offer
{
  padding-bottom:1rem;
}

.reservation-offers .reservation-offer-list .reservation-offer .reservation-offer-text
{
  position:relative;
  display:inline-block;
}

.reservation-offers .reservation-offer-list .reservation-offer .reservation-offer-details-hover-wrap
{
  margin-top:-1rem;
}

.reservation-offers .reservation-offer-list .reservation-offer .reservation-offer-details-hover-wrap:before
{
  margin-top:1rem;
  top:4px;
}

.reservation-offers .reservation-offer-list .reservation-offer .reservation-offer-details-hover-popup
{
  width:30rem;
  margin:1rem;
}

.reservation-survey-question,.reservation-survey-info
{
  margin-top:1rem;
  margin-bottom:1rem;
}

.cc-type-container
{
  position:absolute;
  right:1rem;
  line-height:2rem;
  top:.4375rem;
  background:transparent;
  padding-left:1rem;
  padding-right:1rem;
  border-radius:3px;
  border:1px solid rgba(0,0,0,.08);
  color:#999;
}

.cc-vendor-ad-block
{
  background:#fff;
  width:18.75rem;
  padding:1rem;
}

.reservation-invite-friends
{
  width:50rem;
  background-color:#fff;
  position:relative;
  padding:1rem;
}

.reservation-invite-friends h2
{
  margin-bottom:2rem;
}

html:lang(ja) textarea
{
  height:90px;
}

.text-nowrap-ellipsis
{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.error::-webkit-input-placeholder,.error::-moz-placeholder,.error:-ms-input-placeholder,input.error:-moz-placeholder
{
  color:#fea4a4;
}

.form-input,.form-textarea,.reservation-invite-friends .reservation-invite-success
{
  padding:1rem;
}

.form-header,.reservation-block,.reservation-offers h4,.reservation-invite-friends .row
{
  margin-bottom:1rem;
}

.checkbox-flat.disabled,.radio-flat.disabled
{
  cursor:default;
}

.menu-wrapper,.menu-hover-wrapper
{
  position:relative;
}

.menu-container:before,.menu-container:after,.menu-main:before,.menu-main:after,.menu-body:before,.menu-body:after,.menu-section:before,.menu-section:after
{
  content:" ";
  display:table;
}

.menu-container:after,.menu-main:after,.menu-body:after,.menu-section:after
{
  clear:both;
}

.menu-footer p:last-child,.reservation-invite-friends .reservation-invite-success h2
{
  margin-bottom:0;
}

.phone-input.with-ext .phone-number-ext,.phone-input.with-ext:before
{
  display:block;
}

.page-container,.content-block-footer
{
  overflow:visible!important;
}

@mediamin--moz-device-pixel-ratio15,-o-min-device-pixel-ratio32,-webkit-min-device-pixel-ratio15,min-device-pixel-ratio15,min-resolution144dpi,min-resolution15dppx {
  .menu:before
  {
    background-image:url(../../assets/css/controllers/img/menu-arrow@2x.png)!important;
    background-size:100%;
  }

  .menu.menu-top:before
  {
    background-image:url(../../assets/css/controllers/img/menu-arrow-down@2x.png)!important;
    background-size:100%;
  }
}

@media only screen and min-width40063emand max-width64em {
  .reservation-offers
  {
    margin-bottom:0!important;
    border-bottom:none!important;
  }

  .medium-only-restaurant-details-panel
  {
    position:absolute!important;
    left:0;
    background:#fff;
    color:#999;
    border-radius:0;
    margin:0!important;
    padding:0!important;
  }

  .medium-only-restaurant-details-content
  {
    border-top:1px solid rgba(0,0,0,.08);
    margin:0 1.5rem!important;
    padding:1.5rem 0!important;
  }

  .medium-only-content-block
  {
    padding:1rem!important;
  }

  .medium-only-no-margin
  {
    margin:0!important;
  }

  .medium-only-form-wrapper
  {
    background:#fff;
    border-radius:5px;
    margin-bottom:1rem;
    padding:1rem!important;
  }

  .medium-only-reservation-block
  {
    border-bottom-left-radius:0!important;
    border-bottom-right-radius:0!important;
    margin:0!important;
  }

  .show-for-medium-only
  {
    display:block;
  }

  .medium-only-offer-details
  {
    color:#999;
    display:none;
    padding:.5rem 0 0 2rem;
  }

  .medium-only-restaurant-details-content .column,.medium-only-column,.medium-only-page-main
  {
    padding:0!important;
  }

  .show-for-desktop-only,.show-for-xldesktop-only
  {
    display:none;
  }
}

@media only screen and min-width64063emand max-width90em {
  .medium-only-content-block
  {
    padding:0!important;
  }

  .show-for-desktop-only
  {
    display:block;
  }

  .show-for-medium-only,.show-for-xldesktop-only
  {
    display:none;
  }
}

@media only screen and min-width90063em {
  .medium-only-content-block
  {
    padding:0!important;
  }

  .show-for-xldesktop-only
  {
    display:block;
  }

  .show-for-medium-only,.show-for-desktop-only
  {
    display:none;
  }
}
