@charset "UTF-8";

.clear {clear: both;}
.no_disp {display: none !important;}
.ta-c {text-align: center !important;}


#form_area {
  margin: 40px auto;
  width: 90%;
  max-width: 800px;
}
#form_area dl {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-bottom: 30px;
}
#form_area dl dt {
  width: 30%;
  padding: 10px 15px;
  text-align: right;
  font-size: 20px;
  background-color: #efefef;
}
#form_area dl dd {
  width: 70%;
  padding: 12px 15px;
  font-size: 18px;
  border-left: solid 5px #bfbfbf;
}
#form_area dl dt .req {
  font-size: 12px;
  color: red;
  font-weight: bold;
  vertical-align: top;
  margin-left: 5px;
}
#form_area dl dd.req_err input[type="text"],
#form_area dl dd.req_err input[type="tel"],
#form_area dl dd.req_err input[type="email"],
#form_area dl dd.req_err select,
#form_area dl dd.req_err label {
  background-color: #fbe0e5;
}
#form_area input,
#form_area label,
#form_area select,
#form_area textarea {
  margin: 2px 3px;
  font-size: 20px;
}
#form_area .dd_soudan label {
  min-width: 110px;
  font-size: 16px;
}
#form_area input[type="text"],
#form_area input[type="tel"],
#form_area input[type="email"],
#form_area textarea {
  padding: 10px 10px;
  border: solid 1px #9a9a9a;
  border-radius: 5px;
  width: 100%;
}
#form_area input[type="number"] {
  padding: 10px 10px;
  border: solid 1px #9a9a9a;
  border-radius: 5px;
  width: 80px;
}
#form_area input[type="date"],
#form_area input[type="button"] {
  padding: 10px 10px;
  border: solid 1px #9a9a9a;
  border-radius: 5px;
}
/*
#form_area #yoyaku_nitiji {
  width: 300px;
  padding: 12px 0px 10px;
  text-align: center;
  background-color: #008080;
  color: #fff;
  font-weight: bold;
  border: none;
  text-align: center;

  border-bottom: 3px solid #003d3d;
  border-radius: 5px;
  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
  box-shadow: 0 3px 5px rgba(0, 0, 0, .3);

  cursor: pointer;
}
*/
#form_area #yoyaku_nitiji {
  display: inline-block;
  padding: 6px 10px;
  border: solid 1px #9a9a9a;
  border-radius: 3px;
  background-color: #fff;
  width: auto;

  cursor: pointer;
}
#form_area input[type="button"] {
  padding: 4px 8px;
}
#form_area label {
  display: inline-block;
  padding: 6px 10px;
  border: solid 1px #9a9a9a;
  border-radius: 3px;
}
#form_area label input {
  margin-right: 5px;
  width: 15px;
  height: 15px;
}
#form_area select {
  display: inline-block;
  padding: 6px 10px;
  border: solid 1px #9a9a9a;
  border-radius: 3px;
}
#form_area .submit_area {
  margin-top: 30px;
  text-align: center;
}
#form_area .submit_area input[type="button"] {
  padding: 12px 30px;
}
@media (max-width: 768px) {
  #form_area {
      width: 100%;
  }
  #form_area dl {
      margin-bottom: 20px;
  }
  #form_area dl dt {
      width: 100%;
      text-align: left;
  }
  #form_area dl dd {
      width: 100%;
      border: none;
      padding-left: 0;
      padding-right: 0;
  }
}

#calendar_area {
  margin-bottom: 30px !important;
}
.box_calendar {
  margin-top: 20px;
}
.box_calendar * {
  box-sizing: border-box;
}
.box_calendar > table.table_caltop {
  width: 100%;
}
.box_calendar > table.table_caltop td {
  font-size: 24px;
  font-weight: bold;
  border: none;
}
.box_calendar > table.table_caltop td a {
  font-size: 20px;
  text-decoration: none;
}
.box_calendar > table.table_caltop td:nth-child(1) {
  text-align: left;
  width: 25%;
}
.box_calendar > table.table_caltop td:nth-child(2) {
  text-align: center;
  width: 50%;
}
.box_calendar > table.table_caltop td:nth-child(3) {
  text-align: right;
  width: 25%;
}
.box_calendar > table.table_calendar {
  border-collapse: collapse;
  width: 100%;
}
.box_calendar > table.table_calendar tr > th,
.box_calendar > table.table_calendar tr > td {
  padding: 15px 10px;
  border:solid 1px #472400;
  text-align: center;
  position: relative;
  font-size: 20px;
  width: calc(100% / 7);
}
.box_calendar > table.table_calendar tr > th {
  background-color: #80bfbf;
}
.box_calendar > table.table_calendar th:nth-child(1) {
  color: red;
}
.box_calendar > table.table_calendar th:nth-child(7) {
  color: blue;
}
.box_calendar > table.table_calendar td:nth-child(1) {
  background-color: #FAeAe9;
}
.box_calendar > table.table_calendar td.syukujitu {
  background-color: #FAeAe9;
}
.box_calendar > table.table_calendar td:nth-child(7) {
  background-color: #e9E9FA;
}
.box_calendar > table.table_calendar td.open > a {
  opacity: 0.7;
}
.box_calendar > table.table_calendar td p {
  margin: 0;
}
.box_calendar > table.table_calendar td.td1 > a {
  display: block;
  width: 100%;
  height: auto;
  padding: 10px 0;
  text-decoration: none;

  color: #fff;
  font-weight: bold;
  background-color: #008080;
  border-bottom: 3px solid #003d3d;
  border-radius: 5px;
  -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
   box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
}
.box_calendar > table.table_calendar td.td1 > a p {
  line-height: 26px;
  max-width: 28px;
  display: inline-block;
  overflow: hidden;
}
.box_calendar > table.table_calendar td.td1.sankaku > a .p_hantei {
  /*color: #ffd2da;*/
  font-family: "Material Icons";
  color: #fff;
}
.box_calendar > table.table_calendar td > a:hover {
  opacity: 0.7;
}
.box_calendar > table.table_calendar table {
  border-collapse: collapse;
  position: absolute;
  width: 180px;
  z-index: 3;
  border: solid 4px #472400;
  display: none;
}
.box_calendar > table.table_calendar td:nth-child(1) table,
.box_calendar > table.table_calendar td:nth-child(2) table,
.box_calendar > table.table_calendar td:nth-child(3) table {
  right: -175px;
}
.box_calendar > table.table_calendar td:nth-child(4) table,
.box_calendar > table.table_calendar td:nth-child(5) table,
.box_calendar > table.table_calendar td:nth-child(6) table,
.box_calendar > table.table_calendar td:nth-child(7) table {
  left: -175px;
}
.box_calendar > table.table_calendar .w0 table {
  top: 0;
}
.box_calendar > table.table_calendar .w1 table,
.box_calendar > table.table_calendar .w2 table {
  top: -100%;
}
.box_calendar > table.table_calendar .w3 table {
  bottom: -100%;
}
.box_calendar > table.table_calendar .w4 table,
.box_calendar > table.table_calendar .w5 table {
  bottom: 0;
}
.box_calendar > table.table_calendar .open table {
  display: table;
}
.box_calendar > table.table_calendar table th,
.box_calendar > table.table_calendar table td {
  border: solid 1px #472400;
  background-color: #fff;
  padding: 8px 10px;
  text-align: center;
  font-size: 18px;
  font-weight: bold;
  color: #000 !important;
  vertical-align: middle;
  line-height: 1;
  white-space: nowrap;
}
.box_calendar > table.table_calendar table td.zumi {
  background-color: pink;
}
.box_calendar > table.table_calendar table td.etc {
  background-color: #cfcfcf;
}
.box_calendar > table.table_calendar table td a {
  font-size: 18px;
  display: inline;
  position: relative;
  color: #1c3ae0;
  text-decoration: underline;
}
.box_calendar > table.table_calendar table th {
  background-color: #80bfbf;
  
}
@media (max-width: 768px) {
  .box_calendar > table.table_caltop td {
      font-size: 20px;
  }
  .box_calendar > table.table_caltop td a {
      font-size: 18px;
  }
  .box_calendar > table.table_calendar tr > th,
  .box_calendar > table.table_calendar tr > td {
      padding: 10px 5px;
      font-size: 18px;
  }
  .box_calendar > table.table_calendar table {
      width: 120px;
      border: solid 3px #472400;
  }
  .box_calendar > table.table_calendar td:nth-child(1) table,
  .box_calendar > table.table_calendar td:nth-child(2) table,
  .box_calendar > table.table_calendar td:nth-child(3) table {
      right: -118px;
  }
  .box_calendar > table.table_calendar td:nth-child(4) table,
  .box_calendar > table.table_calendar td:nth-child(5) table,
  .box_calendar > table.table_calendar td:nth-child(6) table,
  .box_calendar > table.table_calendar td:nth-child(7) table {
      left: -118px;
  }
  .box_calendar > table.table_calendar table th,
  .box_calendar > table.table_calendar table td {
      padding: 6px 5px;
      font-size: 14px;
  }
  .box_calendar > table.table_calendar table td a {
      font-size: 14px;
  }
  #form_area .dd_soudan label {
    font-size: 14px;
    min-width: 100px;
    padding: 4px 6px;
  }
}

.box_thanks {
  width: 70%;
  margin: 30px auto 50px;
}
.box_thanks p {
  margin: 25px 0 25px;
}
@media (max-width: 768px) {
  .box_thanks {
    width: 90%;
  }
}


.p01 {
  margin: 20px 0 20px;
  text-align: center;
}
/* 最新の項目を、従来のフォーム配置で表示 */
.cfp-preview{background:transparent;font-family:inherit;color:inherit}
#form_area *,#form_area *::before,#form_area *::after{box-sizing:border-box}
#form_area dl dd{margin:0}
#form_area dl dt .req,#form_area dl dt .optional{display:block;margin:5px 0 0;padding:0;background:none;border:0;font-size:12px;font-weight:bold;line-height:1.5}
#form_area dl dt .req{color:#c00}#form_area dl dt .optional{color:#666}
#form_area .reservation-reception{display:block}#form_area .reservation-reception>dt,#form_area .reservation-reception>dd{width:100%;border:0;text-align:center;background:none}
#form_area .reservation-intro{margin:20px 0;padding:15px;border:1px solid #bfbfbf;background:transparent;border-radius:0;box-shadow:none;text-align:left}
#form_area h2.reservation-intro__title{margin:0 0 10px;padding:0;border:0;background:none;font:inherit;font-weight:bold;font-size:1.2em}
#form_area h2.reservation-intro__title::before,#form_area h2.reservation-intro__title::after,#form_area .reservation-notice__title::before,#form_area .reservation-notice__title::after,#form_area .reservation-notice__subtitle::before,#form_area .reservation-notice__subtitle::after{display:none}
#form_area .reservation-notice{margin:30px 0;padding:15px;background:#fbf9f4;border:1px solid #bfbfbf;border-radius:0}
#form_area .reservation-notice__title{font:inherit;font-size:1.2em;font-weight:bold;margin:0 0 15px;padding:0;background:none;border:0}
#form_area .reservation-notice__list{margin:0;padding:0;list-style:none}
#form_area .reservation-notice__item{display:grid;grid-template-columns:24px 1fr;gap:5px 8px;margin:0 0 20px;padding:0}
#form_area .reservation-notice__number{grid-column:1;font:inherit;font-weight:bold;line-height:1.5;letter-spacing:0}
#form_area h3.reservation-notice__subtitle{grid-column:2;font:inherit;font-weight:bold;line-height:1.5;margin:0;padding:0;background:none;border:0}
#form_area .reservation-notice__item>p{grid-column:2;margin:0;font-size:inherit;line-height:1.8}
#form_area .submit_area [type=submit]{padding:10px 25px;cursor:pointer;font-size:20px}
#form_area input[type=radio],#form_area input[type=checkbox]{width:auto}
#form_area .reservation-consent{display:flex;align-items:flex-start;gap:.5em}
#form_area .reservation-consent__text{flex:1;min-width:0}
#form_area [hidden]{display:none!important}
#form_area .cfp-message{white-space:pre-line;color:#a00}

#form_area .region-picker{position:relative;display:inline-block;max-width:100%;min-width:200px}
#form_area .region-picker__button{display:block;width:100%;padding:4px 28px 4px 8px;border:1px solid #999;border-radius:2px;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer;position:relative}
#form_area .region-picker__button::after{content:"▾";position:absolute;right:8px}
#form_area .region-picker__list{position:absolute;top:100%;left:0;width:100%;max-height:min(300px,50vh);overflow-y:auto;background:#fff;border:1px solid #999;box-shadow:0 2px 5px #0002;z-index:100;text-align:left}
#form_area .region-picker__option{padding:5px 8px;line-height:1.5;cursor:pointer;white-space:normal}
#form_area .region-picker__option:hover,#form_area .region-picker__option.is-active{background:#e5effa;color:#222}
#form_area .region-picker__option[aria-selected=true]{font-weight:bold}
#form_area .region-picker__button:focus-visible,#form_area .region-picker__list:focus-visible{outline:2px solid #2467a5;outline-offset:2px}

/* ご予約前の確認事項：淡い背景・丸数字・太字の小見出し */
#form_area .reservation-notice {
    margin: 3rem 0 1.5rem;
    padding: 1.5rem;
    border: 1px solid #ead9c3;
    border-radius: 1rem;
    background: #fbf9f4;
}

#form_area h2.reservation-notice__title {
    margin: 0;
    padding: 0 0 .65rem;
    border: 0;
    border-bottom: 2px solid #c99150;
    background: none;
    box-shadow: none;
    color: #6c4022;
    font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
    font-size: clamp(1.3rem, 2.5vw, 1.9rem);
    font-weight: 700;
    line-height: 1.5;
}

#form_area .reservation-notice__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

#form_area .reservation-notice__item {
    display: grid;
    grid-template-columns: 2.75rem 8rem minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
    margin: 0;
    padding: 1rem 0;
    border-bottom: 1px solid #ead9c3;
}

#form_area .reservation-notice__item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

#form_area .reservation-notice__number {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: #c99150;
    color: #fff;
    font-family: Georgia, serif;
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1;
}

#form_area h3.reservation-notice__subtitle {
    margin: 0;
    padding: .5rem 0 0;
    border: 0;
    background: none;
    box-shadow: none;
    color: #6c4022;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.6;
}

#form_area .reservation-notice__item > p {
    margin: 0;
    padding-top: .5rem;
    line-height: 1.8;
}

#form_area h2.reservation-notice__title::before,
#form_area h2.reservation-notice__title::after,
#form_area h3.reservation-notice__subtitle::before,
#form_area h3.reservation-notice__subtitle::after,
#form_area .reservation-notice__item::before {
    display: none;
}

@media (max-width: 600px) {
    #form_area .reservation-notice { padding: 1.25rem; }
    #form_area .reservation-notice__item {
        grid-template-columns: 2.75rem minmax(0, 1fr);
        gap: .5rem .75rem;
    }
    #form_area .reservation-notice__item > p {
        grid-column: 1 / -1;
        padding-top: 0;
    }
}

#form_area .reservation-notice__number {
    font-family: "Noto Serif JP", "Hiragino Mincho ProN", serif;
    font-size: 1.4rem;
}

/* PC版の見出しを約0.8倍に */
@media (min-width: 601px) {
    #form_area h2.reservation-notice__title {
        font-size: clamp(1.04rem, 2vw, 1.52rem);
    }
}

#form_area .reservation-notice__number {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0 0 .12em;
    line-height: 1;
    letter-spacing: 0;
    text-indent: 0;
}
/* 囲み内の見出しはSWELLの白文字を継承させない */
.cfp-preview #form_area .reservation-intro{margin:3rem 0;padding:1.5rem;border:1px solid #b87001;border-radius:1rem;background:#fff;color:#443b33;box-shadow:0 2px 4px #0000000d,0 4px 4px -4px #0000001a;text-align:left}
.cfp-preview #form_area h2.reservation-intro__title{color:#04165a;font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;font-size:clamp(1.28rem,2.16vw,2.16rem);font-weight:700;line-height:1.5;margin:0 0 .75em;padding:0;background:transparent;border:0;box-shadow:none}
.cfp-preview #form_area .reservation-intro p{color:#443b33;margin:0;line-height:1.8}
.cfp-preview #form_area .reservation-notice{color:#443b33;background:#fbf9f4}
.cfp-preview #form_area h2.reservation-notice__title,.cfp-preview #form_area h3.reservation-notice__subtitle{color:#6c4022}
.cfp-preview #form_area .reservation-notice__item>p{color:#443b33}
.cfp-preview #form_area .reservation-notice__number{color:#fff;background:#c99150}
@media(min-width:601px){.cfp-preview #form_area .reservation-notice__item>p{grid-column:3}}
@media(max-width:600px){.cfp-preview #form_area .reservation-notice__item>p{grid-column:1/-1}}

/* 案内・確認事項の見出し：黒のゴシック体、従来の約80% */
.cfp-preview:not(.cfp-preview--lp) #form_area h2.reservation-intro__title,
.cfp-preview:not(.cfp-preview--lp) #form_area h2.reservation-notice__title{
 color:#000;
 font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
}
.cfp-preview #form_area h2.reservation-intro__title{font-size:clamp(1.024rem,1.728vw,1.728rem)}
.cfp-preview #form_area h2.reservation-notice__title{font-size:clamp(1.04rem,2vw,1.52rem)}
@media(min-width:601px){.cfp-preview #form_area h2.reservation-notice__title{font-size:clamp(.832rem,1.6vw,1.216rem)}}

/* タイトルの下に、文字幅の必須・任意ラベルを表示 */
.cfp-preview #form_area dl dt .req,
.cfp-preview #form_area dl dt .optional{
 display:table;
 width:auto;
 margin:5px 0 0 auto;
 padding:3px 7px;
 border:0;
 border-radius:3px;
 color:#fff;
 font-size:12px;
 font-weight:600;
 line-height:1.4;
 text-align:center;
 white-space:nowrap;
}
.cfp-preview #form_area dl dt .req{background:#c00;color:#fff}
.cfp-preview #form_area dl dt .optional{background:#888;color:#fff}
@media(max-width:600px){
 .cfp-preview #form_area dl dt .req,
 .cfp-preview #form_area dl dt .optional{margin-left:0;margin-right:auto}
}

/* 見出し・枠の色を調整（書体とサイズは維持） */
.cfp-preview #form_area h2.reservation-notice__title{color:#6c4022}
.cfp-preview #form_area h2.reservation-intro__title{color:var(--color_main,#345344)}
.cfp-preview #form_area .reservation-intro{border-color:var(--color_main,#345344)}

/* 確認事項：設置先SWELLのメインカラーと同系色に統一 */
.cfp-preview #form_area .reservation-notice{
 --notice-main:var(--color_main,#345344);
 color:var(--notice-main);
 border-color:var(--notice-main);
 background:#f5f8f6;
 background:color-mix(in srgb,var(--notice-main) 5%,white);
}
.cfp-preview #form_area h2.reservation-notice__title{
 color:var(--notice-main);
 border-bottom-color:var(--notice-main);
}
.cfp-preview #form_area h3.reservation-notice__subtitle{color:var(--notice-main)}
.cfp-preview #form_area .reservation-notice__item{
 border-bottom-color:var(--notice-main);
 border-bottom-color:color-mix(in srgb,var(--notice-main) 22%,white);
}
.cfp-preview #form_area .reservation-notice__item>p{
 color:#293e34;
 color:color-mix(in srgb,var(--notice-main) 78%,#222);
}
.cfp-preview #form_area .reservation-notice__item a{
 color:var(--notice-main);
 text-decoration:underline;
 text-underline-offset:3px;
}
.cfp-preview #form_area .reservation-notice__number{
 background:var(--notice-main);
 color:#fff;
}

/* LPフォーム専用のメインカラー。通常フォームには影響させない。 */
.cfp-preview--lp{
 --color_main:#b48c4c;
 --color_htag:#b48c4c;
 --color_link:#b48c4c;
 --color_main_dark:#b48c4c;
}
.cfp-preview--lp #form_area h2.reservation-notice__title{border-bottom:0}
.cfp-preview--lp a{color:#b48c4c}
.cfp-preview--lp #form_area .submit_area [type=submit]{background:#b48c4c;border:1px solid #b48c4c;color:#fff}
.cfp-preview--lp #form_area .region-picker__option:hover,
.cfp-preview--lp #form_area .region-picker__option.is-active{background:#f7f1e7;color:#513f22}
.cfp-preview--lp #form_area .region-picker__button:focus-visible,
.cfp-preview--lp #form_area .region-picker__list:focus-visible{outline-color:#b48c4c}
.cfp-preview--lp .box_calendar>table.table_calendar tr>th,
.cfp-preview--lp .box_calendar>table.table_calendar td.td1>a,
.cfp-preview--lp .box_calendar table.table_hours th{background-color:#b48c4c;color:#fff}
.cfp-preview--lp .box_calendar>table.table_calendar td.td1>a{color:#fff}
.cfp-preview--lp #form_area label:has(input:checked){border-color:#b48c4c}
.cfp-preview--lp #form_area .reservation-notice{background:#fff}

/* LP用の見出し書体 */
.cfp-preview--lp>h2.wp-block-heading,
.cfp-preview--lp #form_area h2.reservation-intro__title,
.cfp-preview--lp #form_area h2.reservation-notice__title,
.cfp-preview--lp #form_area h3.reservation-notice__subtitle{
 font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;
}

.cfp-preview .cfp-reservation-guide,.cfp-preview #form_area .reservation-intro,.cfp-preview #form_area .reservation-intro__title,.cfp-preview #form_area .reservation-intro p{text-align:center;}

/* スマホの仮名案内：意味の区切りで改行し、見出しを本文より大きく。 */
.cfp-preview .intro-mobile-break{display:none;}
@media(max-width:599px){
 .cfp-preview #form_area .reservation-intro{padding:1.25rem .75rem;}
 .cfp-preview #form_area h2.reservation-intro__title{font-size:clamp(1.05rem,4.5vw,1.25rem);line-height:1.6;margin-bottom:.75em;}
 .cfp-preview #form_area .reservation-intro p{font-size:clamp(.82rem,3.65vw,1rem);line-height:1.9;}
 .cfp-preview .intro-mobile-break{display:block;}
 .cfp-preview .intro-desktop-break{display:none;}
 .cfp-preview .intro-text-line{display:block;}
}

/* スマホは項目名と必須・任意を横並びにする。 */
@media(max-width:600px){
 .cfp-preview #form_area dl dt:has(>.cfp-field-title){display:flex;align-items:center;justify-content:flex-start;gap:.6em;text-align:left;}
 .cfp-preview #form_area dl dt .cfp-field-title{min-width:0;}
 .cfp-preview #form_area dl dt .req,.cfp-preview #form_area dl dt .optional{display:inline-block;flex:0 0 auto;width:auto;margin:0;vertical-align:middle;}
}

@media(max-width:600px){
 .cfp-preview .cfp-reservation-guide{font-size:clamp(.8125rem,4vw,1rem);line-height:1.9;text-align:center;}
 .cfp-preview .cfp-reservation-guide .cfp-guide-line{display:block;}
}

.cfp-preview #form_area [data-initial-only][hidden]{display:none!important;}
.cfp-preview .cfp-osaka-guide{margin-bottom:.8em;}
