@charset "UTF-8";
form.mailform.loading {
  pointer-events: none;
  opacity: .7; }

form.mailform * {
  box-sizing: border-box; }

form.mailform .required {
  background: #da2424;
  color: white;
  display: inline-block;
  padding: 3px 6px;
  font-weight: 700;
  font-size: 12px;
  line-height: 1.2;
  border-radius: 3px; }

form.mailform fieldset {
  position: relative;
  border: none;
  margin: 0;
  padding: 0; }
  form.mailform fieldset .datepicker-mat {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

form.mailform .input-form {
  border: none; }
  form.mailform .input-form .form-group {
    display: flex;
    padding: 10px;
    border-bottom: 1px solid #dedede; }
    @media (max-width: 768px) {
      form.mailform .input-form .form-group {
        display: block;
        padding: 15px 10px; } }
    form.mailform .input-form .form-group:first-child {
      border-top: 1px solid #dedede; }
    form.mailform .input-form .form-group.has-error {
      background-color: #ffeeee; }
    form.mailform .input-form .form-group > .control-label {
      flex: 0 0 200px;
      display: flex;
      justify-content: space-between;
      margin-right: 20px; }
      form.mailform .input-form .form-group > .control-label .title {
        flex: 1 1 auto;
        font-weight: 700; }
      form.mailform .input-form .form-group > .control-label .icon {
        display: block;
        flex: 0 0 50px;
        text-align: right; }
      @media (max-width: 768px) {
        form.mailform .input-form .form-group > .control-label {
          margin: 0 0 5px;
          justify-content: flex-start;
          align-items: center; }
          form.mailform .input-form .form-group > .control-label .title {
            order: 2;
            flex: 0 0 auto;
            line-height: 1;
            margin-top: -2px; }
          form.mailform .input-form .form-group > .control-label .icon {
            order: 1;
            flex: 0 0 auto;
            display: flex;
            margin-right: 5px; } }
    form.mailform .input-form .form-group > .controls {
      position: relative;
      flex: 1 1 auto; }
      form.mailform .input-form .form-group > .controls input[type=text],
      form.mailform .input-form .form-group > .controls input[type=email], form.mailform .input-form .form-group > .controls textarea,
      form.mailform .input-form .form-group > .controls select,
      form.mailform .input-form .form-group > .controls button.zip-search {
        border: 1px solid #ccc;
        font-size: 16px;
        line-height: 1.3;
        padding: 5px 10px;
        border-radius: 4px;
        background: #f4f4f4; }
      form.mailform .input-form .form-group > .controls input[type=text]:focus,
      form.mailform .input-form .form-group > .controls input[type=email]:focus {
        background: #fff; }
      form.mailform .input-form .form-group > .controls input[type=text].size-sss,
      form.mailform .input-form .form-group > .controls input[type=email].size-sss {
        width: 60px; }
      form.mailform .input-form .form-group > .controls input[type=text].size-ss,
      form.mailform .input-form .form-group > .controls input[type=email].size-ss {
        width: 120px; }
      form.mailform .input-form .form-group > .controls input[type=text].size-s,
      form.mailform .input-form .form-group > .controls input[type=email].size-s {
        width: 200px; }
      form.mailform .input-form .form-group > .controls input[type=text].size-m,
      form.mailform .input-form .form-group > .controls input[type=email].size-m {
        width: 300px; }
        @media (max-width: 768px) {
          form.mailform .input-form .form-group > .controls input[type=text].size-m,
          form.mailform .input-form .form-group > .controls input[type=email].size-m {
            width: 100%; } }
      form.mailform .input-form .form-group > .controls input[type=text].size-l,
      form.mailform .input-form .form-group > .controls input[type=email].size-l {
        width: 400px; }
        @media (max-width: 768px) {
          form.mailform .input-form .form-group > .controls input[type=text].size-l,
          form.mailform .input-form .form-group > .controls input[type=email].size-l {
            width: 100%; } }
      form.mailform .input-form .form-group > .controls input[type=text].size-ll,
      form.mailform .input-form .form-group > .controls input[type=email].size-ll {
        width: 100%; }
      form.mailform .input-form .form-group > .controls input[type=text].zip-search,
      form.mailform .input-form .form-group > .controls input[type=email].zip-search {
        display: inline-block;
        background: #eee;
        margin-left: 5px;
        cursor: pointer; }
        form.mailform .input-form .form-group > .controls input[type=text].zip-search:hover,
        form.mailform .input-form .form-group > .controls input[type=email].zip-search:hover {
          background: #ddd; }
        form.mailform .input-form .form-group > .controls input[type=text].zip-search.loading,
        form.mailform .input-form .form-group > .controls input[type=email].zip-search.loading {
          opacity: .7; }
      form.mailform .input-form .form-group > .controls input[type="text"].zip1 {
        width: 60px; }
      form.mailform .input-form .form-group > .controls input[type="text"].zip2 {
        width: 90px; }
      form.mailform .input-form .form-group > .controls input[type="text"].phone1, form.mailform .input-form .form-group > .controls input[type="text"].phone2, form.mailform .input-form .form-group > .controls input[type="text"].phone3 {
        width: 90px; }
      form.mailform .input-form .form-group > .controls input[type="text"].type11, form.mailform .input-form .form-group > .controls input[type="text"].type12 {
        width: 120px; }
      form.mailform .input-form .form-group > .controls textarea {
        width: 100%; }
        form.mailform .input-form .form-group > .controls textarea.size-sss {
          height: 45px; }
        form.mailform .input-form .form-group > .controls textarea.size-ss {
          height: 70px; }
        form.mailform .input-form .form-group > .controls textarea.size-s {
          height: 120px; }
        form.mailform .input-form .form-group > .controls textarea.size-m {
          height: 180px; }
        form.mailform .input-form .form-group > .controls textarea.size-l {
          height: 250px; }
        form.mailform .input-form .form-group > .controls textarea.size-ll {
          height: 350px; }
      form.mailform .input-form .form-group > .controls .radios {
        display: flex;
        gap: 5px 10px;
        flex-wrap: wrap; }
        form.mailform .input-form .form-group > .controls .radios label {
          cursor: pointer; }
        form.mailform .input-form .form-group > .controls .radios + .etc {
          margin-top: 10px; }
      form.mailform .input-form .form-group > .controls .date {
        position: relative; }
        form.mailform .input-form .form-group > .controls .date .input-wrapper {
          position: relative;
          display: inline-block; }
          form.mailform .input-form .form-group > .controls .date .input-wrapper .clear {
            position: absolute;
            top: 50%;
            right: 5px;
            transform: translateY(-50%);
            border-radius: 20px;
            width: 18px;
            height: 18px;
            border: none;
            background: #aaa;
            cursor: pointer;
            transition-duration: .3s; }
            form.mailform .input-form .form-group > .controls .date .input-wrapper .clear:hover {
              background: #444; }
            form.mailform .input-form .form-group > .controls .date .input-wrapper .clear::before, form.mailform .input-form .form-group > .controls .date .input-wrapper .clear::after {
              position: absolute;
              top: calc(50% - 1px);
              left: calc(50% - 5px);
              display: block;
              content: '';
              width: 10px;
              height: 2px;
              background-color: white;
              transform: rotate(45deg); }
            form.mailform .input-form .form-group > .controls .date .input-wrapper .clear::after {
              transform: rotate(-45deg); }
      form.mailform .input-form .form-group > .controls .help {
        display: block;
        margin: 10px 0 0; }
        form.mailform .input-form .form-group > .controls .help p {
          color: #666;
          margin: 0;
          line-height: 1.2;
          white-space: pre-wrap; }
      form.mailform .input-form .form-group > .controls .error {
        color: #da2424;
        margin: 10px 0 0; }
        form.mailform .input-form .form-group > .controls .error p {
          margin: 0;
          line-height: 1.2; }
      form.mailform .input-form .form-group > .controls label.error-tooltip {
        position: absolute;
        z-index: 10;
        background: #da2424;
        border-radius: 3px;
        padding: 4px 6px;
        margin-top: 3px;
        color: white;
        opacity: .85;
        box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
        font-size: 12px; }
        form.mailform .input-form .form-group > .controls label.error-tooltip::before {
          position: absolute;
          top: -6px;
          left: 10px;
          content: '';
          width: 0;
          height: 0;
          border: 0 solid transparent;
          border-right-width: 6px;
          border-left-width: 6px;
          border-bottom: 6px solid #da2424; }
      form.mailform .input-form .form-group > .controls span.sub {
        display: inline-block;
        margin-right: 5px; }
      form.mailform .input-form .form-group > .controls * + span.sub {
        margin-left: 10px; }
    form.mailform .input-form .form-group.type-7 .confirm {
      margin-top: 10px; }
    form.mailform .input-form .form-group.type-8 .controls .input {
      display: flex;
      align-items: center;
      gap: 0 5px; }
    form.mailform .input-form .form-group.type-9 .controls .input {
      display: flex;
      align-items: center;
      gap: 0 5px; }
    @media (max-width: 768px) {
      form.mailform .input-form .form-group.type-11 input[type="text"], form.mailform .input-form .form-group.type-12 input[type="text"], form.mailform .input-form .form-group.type-17 input[type="text"] {
        width: 130px; }
      form.mailform .input-form .form-group.type-11 select, form.mailform .input-form .form-group.type-12 select, form.mailform .input-form .form-group.type-17 select {
        width: 130px; } }
    form.mailform .input-form .form-group.type-12 .datetime {
      display: flex;
      gap: 10px; }
    form.mailform .input-form .form-group.type-19 .controls .input {
      display: flex;
      align-items: center;
      gap: 0 10px; }
      @media (max-width: 768px) {
        form.mailform .input-form .form-group.type-19 .controls .input .family,
        form.mailform .input-form .form-group.type-19 .controls .input .first {
          flex: 0 0 calc(50% - 5px); }
          form.mailform .input-form .form-group.type-19 .controls .input .family input,
          form.mailform .input-form .form-group.type-19 .controls .input .first input {
            width: 100%; } }
    form.mailform .input-form .form-group.type-17 .radios {
      margin-top: 5px; }
    form.mailform .input-form .form-group.type-18 {
      margin: 30px 0;
      border-bottom: none; }
      form.mailform .input-form .form-group.type-18 .agree {
        flex: 0 0 100%; }
        form.mailform .input-form .form-group.type-18 .agree .check {
          text-align: center; }
    form.mailform .input-form .form-group.type-20 .input {
      display: flex;
      gap: 0 5px;
      align-items: center; }
      @media (max-width: 768px) {
        form.mailform .input-form .form-group.type-20 .input select {
          width: 90px; } }
    form.mailform .input-form .form-group.type-21:first-child {
      border-top: none; }
      form.mailform .input-form .form-group.type-21:first-child .title {
        margin-top: 0; }
    form.mailform .input-form .form-group.type-21 .title {
      flex: 0 0 100%;
      margin: 15px 0; }
      form.mailform .input-form .form-group.type-21 .title h3 {
        white-space: pre-wrap;
        text-align: center;
        margin: 0;
        font-size: 18px;
        line-height: 1.4; }
      form.mailform .input-form .form-group.type-21 .title .comment {
        margin: 15px 0 0; }
    form.mailform .input-form .form-group p.multiple {
      margin: 0;
      color: black;
      white-space: pre-wrap;
      line-height: 1.4; }

form.mailform .datepicker {
  position: absolute;
  top: 35px;
  left: 0;
  z-index: 10;
  background: white;
  border: 1px solid #eee;
  box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
  padding: 10px;
  border-radius: 4px; }
  form.mailform .datepicker .calendar-header {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 0 10px;
    font-size: 15px;
    width: 100%;
    height: auto; }
    form.mailform .datepicker .calendar-header .title {
      display: flex;
      gap: 5px; }
    form.mailform .datepicker .calendar-header .ui {
      display: flex;
      gap: 10px; }
      form.mailform .datepicker .calendar-header .ui span {
        display: block;
        font-size: 13px;
        padding: 4px 4px;
        border-radius: 3px;
        line-height: 1.1;
        color: #333;
        cursor: pointer;
        background-color: #eee;
        transition-duration: .2s; }
        form.mailform .datepicker .calendar-header .ui span i {
          display: block;
          border: 6px solid #888;
          border-top-color: transparent;
          border-bottom-color: transparent;
          width: 0;
          height: 0; }
        form.mailform .datepicker .calendar-header .ui span.prev i {
          border-left-color: transparent;
          transform: scaleY(0.8) translateX(-3px); }
        form.mailform .datepicker .calendar-header .ui span.next i {
          border-right-color: transparent;
          transform: scaleY(0.8) translateX(3px); }
        form.mailform .datepicker .calendar-header .ui span:hover {
          background-color: #0894d4; }
          form.mailform .datepicker .calendar-header .ui span:hover.prev i {
            border-right-color: white; }
          form.mailform .datepicker .calendar-header .ui span:hover.next i {
            border-left-color: white; }
  form.mailform .datepicker .dates {
    display: flex;
    flex-wrap: wrap;
    width: 224px; }
    form.mailform .datepicker .dates > span {
      display: block;
      width: 32px;
      height: 32px;
      line-height: 32px;
      text-align: center;
      cursor: pointer;
      font-size: 14px;
      transition-property: background-color;
      transition-duration: .2s; }
      form.mailform .datepicker .dates > span.disabled {
        color: #666;
        background-color: #f4f4f4;
        pointer-events: none; }
      form.mailform .datepicker .dates > span:hover {
        background-color: #0894d4;
        color: white !important;
        font-weight: 700; }
      form.mailform .datepicker .dates > span.active {
        background-color: #f5f562; }
        form.mailform .datepicker .dates > span.active:hover {
          background-color: #ffff0b;
          color: #444 !important; }
      form.mailform .datepicker .dates > span.week-0 {
        color: #d80808;
        font-weight: 600; }
      form.mailform .datepicker .dates > span.week-6 {
        color: #0e77ce;
        font-weight: 600; }
      form.mailform .datepicker .dates > span.holiday {
        color: #d80808;
        font-weight: 600; }
      form.mailform .datepicker .dates > span:first-child.week-1 {
        margin-left: 32px; }
      form.mailform .datepicker .dates > span:first-child.week-2 {
        margin-left: 64px; }
      form.mailform .datepicker .dates > span:first-child.week-3 {
        margin-left: 96px; }
      form.mailform .datepicker .dates > span:first-child.week-4 {
        margin-left: 128px; }
      form.mailform .datepicker .dates > span:first-child.week-5 {
        margin-left: 160px; }
      form.mailform .datepicker .dates > span:first-child.week-6 {
        margin-left: 192px; }
      form.mailform .datepicker .dates > span:first-child.week-7 {
        margin-left: 224px; }

form.mailform .submit {
  margin: 20px;
  text-align: center; }
  form.mailform .submit input {
    display: inline-block;
    border: none;
    border-radius: 4px;
    padding: 10px 20px;
    cursor: pointer;
    min-width: 200px;
    color: white;
    background-color: #0e5bce;
    transition-duration: .3s; }
    form.mailform .submit input:hover {
      background-color: #1770f5; }

form.mailform .modify {
  margin: 30px 0 40px;
  text-align: center; }
  form.mailform .modify span {
    color: #777;
    font-size: 13px;
    line-height: 1.4;
    border-bottom: 1px solid #888;
    padding-bottom: 1px;
    cursor: pointer; }

form.mailform div.reserve-calendar .wrapper {
  margin: 30px 0; }
  form.mailform div.reserve-calendar .wrapper > .title {
    border: 1px solid #ccc;
    padding: 3px 6px; }

form.mailform div.reserve-calendar table {
  width: auto;
  margin: 20px auto;
  border: none; }
  form.mailform div.reserve-calendar table caption nav {
    display: flex;
    padding: 5px 0 10px; }
    form.mailform div.reserve-calendar table caption nav span.month {
      flex: 1 1 auto;
      text-align: left;
      font-size: 18px; }
    form.mailform div.reserve-calendar table caption nav span.next,
    form.mailform div.reserve-calendar table caption nav span.prev {
      color: #aaa;
      border-radius: 3px;
      border: 1px solid #ccc;
      padding: 3px 6px;
      font-size: 13px;
      background: #f0f0f0; }
      form.mailform div.reserve-calendar table caption nav span.next.active,
      form.mailform div.reserve-calendar table caption nav span.prev.active {
        cursor: pointer;
        color: #333;
        background: white; }
        form.mailform div.reserve-calendar table caption nav span.next.active:hover,
        form.mailform div.reserve-calendar table caption nav span.prev.active:hover {
          background: #ffffb1; }
        form.mailform div.reserve-calendar table caption nav span.next.active:active,
        form.mailform div.reserve-calendar table caption nav span.prev.active:active {
          background: #ffff52;
          border-color: #ddd;
          color: #999; }
    form.mailform div.reserve-calendar table caption nav span.prev {
      margin-right: 15px; }
  form.mailform div.reserve-calendar table thead th {
    text-align: center;
    padding: 3px 0;
    border-bottom: 3px double #ccc; }
    form.mailform div.reserve-calendar table thead th.week-0 {
      background-color: #ffecf5; }
    form.mailform div.reserve-calendar table thead th.week-6 {
      background-color: #e4f1fd; }
  form.mailform div.reserve-calendar table tbody td {
    padding: 10px 20px;
    text-align: center;
    font-family: Helvetica, Arial, sans-serif; }
    @media screen and (max-width: 500px) {
      form.mailform div.reserve-calendar table tbody td {
        padding: 10px 15px; } }
    form.mailform div.reserve-calendar table tbody td.disabled {
      background: #eee;
      color: #777; }
    form.mailform div.reserve-calendar table tbody td.enabled {
      background: white;
      transition-duration: .3s;
      cursor: pointer; }
      form.mailform div.reserve-calendar table tbody td.enabled:hover {
        background: #e9ff99 !important; }
      form.mailform div.reserve-calendar table tbody td.enabled.active {
        background: #92da84 !important;
        color: white; }
      form.mailform div.reserve-calendar table tbody td.enabled.week-0 {
        background-color: #ffecf5; }
      form.mailform div.reserve-calendar table tbody td.enabled.holiday {
        background-color: #ffecf5;
        color: #e01414;
        font-weight: 700; }
      form.mailform div.reserve-calendar table tbody td.enabled.week-6 {
        background-color: #e4f1fd; }

form.mailform div.reserve-calendar .time_options ul {
  padding: 0;
  text-align: center; }
  form.mailform div.reserve-calendar .time_options ul li {
    display: inline-block;
    list-style: none;
    margin: 5px 5px;
    border: 1px solid #ccc;
    border-radius: 3px;
    padding: 3px 6px;
    white-space: nowrap; }
    form.mailform div.reserve-calendar .time_options ul li.enabled {
      color: #2e9b49;
      border-color: #92da84;
      cursor: pointer;
      transition-duration: .3s; }
      form.mailform div.reserve-calendar .time_options ul li.enabled:hover {
        background: #ffffb1; }
      form.mailform div.reserve-calendar .time_options ul li.enabled.active {
        background: #92da84;
        border-color: #92da84;
        color: white; }
    form.mailform div.reserve-calendar .time_options ul li.disabled {
      color: #c27878;
      border-color: #c27878; }
    form.mailform div.reserve-calendar .time_options ul li span.entry,
    form.mailform div.reserve-calendar .time_options ul li span.capacity {
      display: inline-block;
      background: #ddd;
      padding: 0 4px;
      /* 標準では隠す */
      display: none; }
    form.mailform div.reserve-calendar .time_options ul li span.entry {
      margin-left: 5px;
      border-radius: 3px 0 0 3px;
      padding-right: 0; }
      form.mailform div.reserve-calendar .time_options ul li span.entry::after {
        content: '/';
        padding-left: 4px; }
    form.mailform div.reserve-calendar .time_options ul li span.capacity {
      margin-right: 5px;
      border-radius: 0 3px 3px 0; }
    form.mailform div.reserve-calendar .time_options ul li span.status {
      display: inline-block;
      margin-left: 5px;
      font-family: Osaka, Meiryo; }

form.mailform .confirm .form-group .controls .time {
  display: inline-block;
  margin-left: 12px; }
