@charset "utf-8";
/*=============================================== 
 * style.css 画面の横幅が769px以上 
 * ===============================================*/ 
@media screen {
  /* 共通 */
  html, body, main, article {
    margin: 0;
    padding: 0;
    height: 100%;
    min-height: 620px;
    /* font-family: "Trebuchet MS", Helvetica, sans-serif; */
    font-family: "Segoe UI Light", "Helvetica Neue", Helvetica, sans-serif;
    font-weight: 300;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  footer {
    margin-top: 10%;
    position: relative;
    padding-top: 30px;
    z-index: 0;
    color: white;
    text-align: center;
    background-image: url('/images_en/sakura_campaign/footer.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-width: 800px;
    min-height: 200px;
  }
  footer p {
    padding: 2px;
    margin: 0;
    font-size: 1.8rem;
    font-weight: lighter;
    letter-spacing: 4px;
  }
  footer a {
    text-decoration: none;
    color: white;
    font-size: 1.4rem;
    letter-spacing: 2px;
  }
  footer p:nth-of-type(1) {  }
  footer p:nth-of-type(2) {
    font-size: 1.6rem;
  }
  footer p:nth-of-type(3) {
    margin-top: 20px;
  }
  footer img.logo {
    width: 200px;
    height: auto;
  }
  
  /* キャンペーン情報エリア */
  article {
  }

  article header {
  }

  div#sidebar {
    position: fixed;
    z-index: 1;
    top: 0;
    right: 0;
    width: 100px; /* 任意の横幅 */
    height: 100%;
    background-image: url('/images_en/sakura_campaign/sidebar.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
  }

  div#scroll {
    position: fixed;
    z-index: 1;
    bottom: 0;
    left: 45%;
    width: 10%; /* 任意の横幅 */
    height: 10%;
    background-image: url('/images_en/sakura_campaign/scroll.png');
    background-size: 50%;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
  }

  section#prologue ,
  section#concept ,
  section#tour_pre ,
  section#tour_top ,
  section#tour_am_pre ,
  section#tour_am ,
  section#tour_pm_pre ,
  section#tour_pm ,
  section#booking ,
  section#sakura ,
  section#service_pre ,
  section#service {
    position: relative;
    z-index: 0;
    min-width: 800px;
    height: 100%;
    min-height: 620px;
  }
  section#tour_pre ,
  section#service_pre {
    height: 60%;
    min-height: 330px;
  }

  section#prologue {
    background-image: url('/images_en/sakura_campaign/sakura_symbol.png');
    background-size: 15%;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
  }

  section#concept ,
  section#tour_top ,
  section#booking ,
  section#sakura {
    background-image: url('/images_en/sakura_campaign/concept.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  section#concept {
    opacity: 0;
  }
  section#concept::before {
    content: "";
    position: absolute;
    top: 5%;
    left: 2%;
    width: 10%; 
    height: 10%;
    background: url('/images_en/sakura_campaign/sakura_symbol_w.png') no-repeat center/contain;
    z-index: 1;  /* 背景より前に出す */
  }

  section#tour_top {
    background-image: url('/images_en/sakura_campaign/tour_top.jpg');
  }
  section#booking {
    color: white;
    margin-top: 100px;
    background-image: url('/images_en/sakura_campaign/booking.jpg');
  }
  section#tour_am_pre ,
  section#tour_pm_pre {
    margin-top: 10%;
  }
  section#tour_am_pre .image,
  section#tour_pm_pre .image {
    display: flex;
    height: 100%;   /* bodyが100%なので画面全体の高さになる */
    width: 100%;    /* 横幅いっぱい */
  }
  section#tour_am_pre .image {
    justify-content: flex-start; /* 左寄せ */
  }
  section#tour_pm_pre .image {
    justify-content: flex-end;   /* 右寄せ */
  }

  section#tour_am_pre .image img ,
  section#tour_pm_pre .image img {
    height: auto;        /* 高さは自動計算に任せる */
    width: auto;         /* 縦横比を維持 */
    max-height: 100%;    /* 親の高さを超えない */
    max-width: 50%;      /* 横幅は半分以内 */
    object-fit: contain; /* 枠内に収めつつ縦横比維持 */
  }

  section#sakura {
    background-image: url('/images_en/sakura_campaign/sakura_city.png');
    background-size: 30%;
    background-position: left 20% center;
    background-repeat: no-repeat;
  }

  section#concept p {
    position: absolute;
    left: 5vw;
    display: block;
    color: white;
    font-size: 1.4rem;
    font-weight: 500;
    text-decoration: none;
    line-height: 1.4;
    cursor: pointer;
    opacity: 0;
    /*
    text-shadow: 
      0 0 5px #0ff,
      0 0 10px #0ff,
      0 0 20px #0ff,
      0 0 40px #0ff;
    */
  }

  section#concept p:nth-of-type(1) { top: 60%; }
  section#concept p:nth-of-type(2) { top: calc(60% + 3rem); }
  section#concept p:nth-of-type(3) { top: calc(60% + 6rem); }
  section#concept p:nth-of-type(4) { top: calc(60% + 9rem); }

  section#tour_pre p ,
  section#service_pre p {
    text-align: center;
    position: absolute;
    width: 100%;
    top: 45%;
    font-size: 2.4rem;
    font-weight: 700;
    margin: 0;
    padding: 0;
  }

  section#tour_top p {
    position: absolute;
    left: 15vw;
    display: block;
    color: white;
  }
  section#tour_top .one {
    font-size: 2.8rem;
    font-weight: 500;
    line-height: 1.8;
  }
  section#tour_top .one p:nth-of-type(1) { top: 8%; }
  section#tour_top .one p:nth-of-type(2) { top: calc(8% + 3.2rem); }
  section#tour_top .one p:nth-of-type(3) { top: calc(8% + 6.4rem); }
  section#tour_top .two {
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.4;
  }
  section#tour_top .two p:nth-of-type(1) { top: 45%; }
  section#tour_top .two p:nth-of-type(2) { top: calc(45% + 2rem); }
  section#tour_top .three {
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.4;
  }
  section#tour_top .three p:nth-of-type(1) { top: 60%; }
  section#tour_top .three p:nth-of-type(2) { top: calc(60% + 2rem); }
  section#tour_top .three p:nth-of-type(3) { top: calc(60% + 4rem); }

  section#tour_am_pre p ,
  section#tour_pm_pre p {
    position: absolute;
    top: 10%;
    left: 56vw;
    display: block;
    color: black;
  }
  section#tour_pm_pre p {
    left: 6vw;
  }
  section#tour_am_pre .head p,
  section#tour_pm_pre .head p {
    width: 40%;
    font-size: 2.0rem;
    font-weight: 700;
    line-height: 1.6;
  }
  section#tour_am_pre .head p span,
  section#tour_pm_pre .head p span {
    margin-left: 5%;
    font-size: 1.4rem;
    font-weight: 300;
    line-height: 1.4;
  }
  section#tour_am_pre .one p,
  section#tour_pm_pre .one p {
    top: 28%;
    font-size: 1.4rem;
    font-weight: 300;
    line-height: 1.4;
  }

  section#tour_am p ,
  section#tour_pm p {
    position: absolute;
    left: 10vw;
    display: block;
    color: black;
  }
  section#tour_am .head ,
  section#tour_pm .head {
    width: 40%;
    padding-left: 5%;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.2;
    border-bottom: 3px solid gray;
  }
  section#tour_am .head p ,
  section#tour_pm .head p {
    position: relative;
    left: 0;
    margin-bottom: 5px;
  }
  section#tour_am .one ,
  section#tour_pm .one {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.6;
  }
  section#tour_am .one p:nth-of-type(1) { top: 3%; }
  section#tour_pm .one p:nth-of-type(1) { top: 3%; }
  section#tour_am .two ,
  section#tour_pm .two {
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.2;
  }
  section#tour_am .two p ,
  section#tour_pm .two p {
    width: 70%;
    color: #888;
  }
  section#tour_am .two p:nth-of-type(1) { top: 13%; }
  section#tour_pm .two p:nth-of-type(1) { top: 13%; }
  section#tour_am .three ,
  section#tour_pm .three {
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.6;
  }
  section#tour_am .three p ,
  section#tour_pm .three p {
    width: 70%;
    color: #888;
  }
  section#tour_am .three p:nth-of-type(1) { top: 30%; }
  section#tour_pm .three p:nth-of-type(1) { top: 34%; }


  /* slider */
  section#tour_am .slider ,
  section#tour_pm .slider {
    position: absolute;
    top: 55%;
    padding: 0;
    padding-bottom: 100px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
  }
  section#tour_am .slider a ,
  section#tour_pm .slider a {
    margin-right: 20px;
    cursor: pointer;
  }
  section#tour_am .slider img ,
  section#tour_pm .slider img {
    width: 400px;
    height: auto;
  }
  section#tour_am .slider .slide-arrow ,
  section#tour_pm .slider .slide-arrow {
    position: absolute;
    top: 30%;
    cursor: pointer;
    width: 4vw;
    height: 4vw;
  }
  section#tour_am .slider .prev-arrow ,
  section#tour_pm .slider .prev-arrow {
    z-index: 1;
  }
  section#tour_am .slider .next-arrow ,
  section#tour_pm .slider .next-arrow {
    left: 85%;
    z-index: 1;
  }
  section#tour_am .slider .prev-arrow.slick-disabled ,
  section#tour_am .slider .next-arrow.slick-disabled ,
  section#tour_pm .slider .prev-arrow.slick-disabled ,
  section#tour_pm .slider .next-arrow.slick-disabled {
    display: none !important;
  }
  section#tour_am a::after ,
  section#tour_pm a::after {
    content: "See details";
    display: inline-block;
    position: absolute;
    margin-top: -30px;
    margin-left: 320px;
    color: #fff; /* 白文字 */
    text-shadow:
      -1px -1px 0 #000,
       1px -1px 0 #000,
      -1px  1px 0 #000,
       1px  1px 0 #000; /* 黒い縁取り */
  }
  .remodal {
    max-width: 800px !important;
  }
  .remodal.place {
    width: 100%;
    background: transparent;
    color: white;
  }
  .remodal.place img {
    width: 100%;
    max-width: 600px;
    height: auto;
  }
  .remodal.place p.title {
    font-size: x-large;
    margin: 0;
  }
  .remodal.place p.desc {
    text-align: left;
  }
  .remodal.place .remodal-close::before {
    font-size: 50px;
    line-height; 80px;
  }

  section#booking p {
    position: absolute;
    left: 10vw;
    display: block;
    color: white;
  }
  section#booking .zero {
    font-size: 2.8rem;
    font-weight: 800;
    line-height: 1.6;
  }
  section#booking .zero p:nth-of-type(1) { top: 0%; }
  section#booking .one {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.4;
  }
  section#booking .one p:nth-of-type(1) { top: 12%; }
  section#booking .two {
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.4;
  }
  section#booking .two p:nth-of-type(1) {
    border-bottom: 1px solid white;
    top: 52%;
  }
  section#booking .two p:nth-of-type(2) { 
    top: calc(52% + 2rem);
    font-size: 1.6rem;
    line-height: 1.6;
  }
  section#booking .three {
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 1.8;
  }
  section#booking .three p:nth-of-type(1) {
    top: 65%;
  }
  section#booking .four {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    position: absolute;
    top: 80%;
    left: 10vw;
    font-size: 1.4rem;
    font-weight: 500;
    line-height: 1.4;
    width: 30%;
  }
  section#booking .four input[type="text"] {
    background: transparent;
    border: none;
    border-bottom: 1px solid #999;
    color: white;
    padding: 4px 0;
    outline: none;
    font-size: 16px;
    width: 100%;
  }
  section#booking .four input[type="text"]:focus:not([readonly]) {
    border-bottom: 1px solid #fff;
  }
  section#booking .four input[type="text"]::placeholder {
    color: gray;
    opacity: 1; /* Firefox対応 */
  }
  section#booking .four button {
    background-image: url('/images_en/sakura_campaign/book_now.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    margin-top: 20px;
    width: 195px;
    height: 45px;
    background-color: transparent;
    cursor: pointer;
    opacity: 0.5;
  }
  section#booking .four button:hover {
    opacity: 1;
  }


  section#sakura p {
    position: absolute;
    right: 10%;
    width: 40%;
    min-width: 450px;
    display: block;
  }
  section#sakura .one {
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 1.4;
  }
  section#sakura .one p:nth-of-type(1) {
    border-bottom:1px solid #666;
    top: 10%;
  }
  section#sakura .one p:nth-of-type(2) {
    font-size: 1.2rem;
    line-height: 1.4;
    top: calc(10% + 3.4rem);
  }
  section#sakura .two {
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.4;
  }
  section#sakura .two p:nth-of-type(1) {
    font-size: 1.8rem;
    top: 45%;
  }
  section#sakura .two p:nth-of-type(2) {
    border-bottom:1px solid #666;
    top: calc(45% + 3rem);
  }
  section#sakura .two p:nth-of-type(3) { top: calc(45% + 4.5rem); }
  section#sakura .three {
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.4;
  }
  section#sakura .three p:nth-of-type(1) {
    border-bottom:1px solid #666;
    top: 62%;
  }
  section#sakura .three p:nth-of-type(2) { top: calc(62% + 1.5rem); }

  section#service {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  section#service .one, section#service .two, section#service .three {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 4vw;
    max-width: 80rem;
    width: 100%;
  }
  section#service .image {
    flex: 0 0 auto;
    width: clamp(10rem, 20vw, 14rem);
    aspect-ratio: 1 / 1;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }
  section#service .private_service {
    background-image: url('/images_en/sakura_campaign/private_service.png');
  }
  section#service .english_guide {
    background-image: url('/images_en/sakura_campaign/english_guide.png');
  }
  section#service .all_include {
    background-image: url('/images_en/sakura_campaign/all_include.png');
  }
  section#service .desc {
    margin-top: -5%;
    flex: 1 1 auto;
    max-width: 40rem;
    
  }
  section#service .desc h3 {
    margin: 0 0 0.5rem;
    font-size: clamp(1.2rem, 3vw, 1.8rem);
    color: #222;
    margin: 0;
    padding: 0;
  }
  section#service .desc p {
    font-size: clamp(1.0rem, 2vw, 1.2rem);
    line-height: 1.2;
    color: #444;
    margin: 0;
    margin-top: 2%;
    padding: 0;
    width: 55vw;
  }

  /* 活性化エリア */
  /* 予約情報エリア */

  section#reserving {
    font-size: large;
    text-align: center;
    background: #fff;
    text-align: center;
    min-height: 1em;
    overflow: hidden;
  }
  section#reserving section#booking_header {
    position: relative;
    padding-top: 80px;
    z-index: 0;
    color: white;
    text-align: center;
    background-image: url('/images_en/sakura_campaign/booking_header.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-width: 800px;
    min-height: 100px;
  }

  section#reserving section#input_data ,
  section#reserving section#confirm_data ,
  section#reserving section#reserve_complete {
    display: none;
  }
  section#reserving h2 {
    font-size: x-large;
    font-weight: 700;
    color: #003366;
    border-bottom: 2px solid #0077cc;
    padding-bottom: 8px;
    margin-bottom: 24px;
    font-family: "Segoe UI", "Helvetica Neue", sans-serif;
  }
  section#reserving .step-label {
    padding-top: 32px;
    font-size: 1.6em;
    font-weight: 600;
    color: #0077cc;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  section#reserving h3 {
    padding-bottom: 32px;
    border-bottom: 1px solid #ccc;
  }
  section#reserving .input_area {
    text-align: left;
    width: 60%;
    min-width: 800px;
    margin: 0 auto;
  }

  section#reserving span.error {
    display: inline-block;
    margin-top: 6px;
    font-size: small;
    font-weight: 500;
    color: #d93025; /* 赤系で注意を示す */
    background-color: #fff0f0;
    padding: 6px 10px;
    border-right: 4px solid #d93025;
    border-radius: 4px;
    font-family: "Segoe UI", "Helvetica Neue", sans-serif;
    margin-right: 5px;
  }
  section#reserving span.error:empty {
    display: none;
  }
  section#reserving input[type="button"] ,
  section#reserving button:not(.select_day) {
    margin-top: 20px;
    padding: 12px 24px;
    font-size: 16px;
    /* background: linear-gradient(135deg, #ff7a00, #ffb347); */
    background: #000;
    color: #fff;
    font-weight: bold;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    border: none;
    border-radius: 8px;
    box-sizing: border-box;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    font-family: "Segoe UI", "Helvetica Neue", sans-serif;
  }
  section#reserving input[type="button"] {
    background: linear-gradient(135deg, #e0e0e0, #f5f5f5);
    padding: 10px 24px;
    color: #333;
    font-weight: normal;
    border: 1px solid #ccc;
  }
  section#reserving button.complete{
    background-image: url('/images_en/sakura_campaign/place_a_booking.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    width: 200px;
    height: 42px;
  }

  section#reserving input[type="button"]:hover ,
  section#reserving button:hover {
   transform: translateY(-2px);
   box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
 }

  section#reserving input[type="button"]:active ,
  section#reserving button:not(.select_day):active {
   transform: translateY(0);
   box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
 }

  section#reserving input[type="text"] ,
  section#reserving select {
  border: none;
  border-bottom: 1px solid #333;
  background-color: transparent;
  outline: none;
  box-shadow: none;
  padding: 4px 8px;
  font-size: 1.0em;
  width: 300px;

  }
  section#reserving input[type="text"]:focus ,
  section#reserving select:focus {
    border-bottom: 1px solid #0078d4;
  }
  section#reserving .label-right {
    margin: 10px 0;
  }
  section#reserving .label-right label {
    display: inline-block; 
    font-size: 1.0em;
    width: 200px;
    text-align: left;
    vertical-align: bottom;
  }

  section#reserving .reserve_data {
    font-size: x-large;
    line-height: 1em;
    width: 80%;
    margin: 0 auto 20px auto; /* 上0px、左右中央寄せ、下20px */
    padding: 24px;
    background-color: #f9f9f9;
    border-radius: 8px;
    border: 1px solid #ccc;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    text-align: left; /* 内容は左揃え */
    font-family: "Segoe UI", "Helvetica Neue", sans-serif;
  }
  section#reserving .reserve_data span.underline {
    text-decoration: underline;
    font-weight: bold;
  }
  section#reserving .reserve_data span:not(.no_pad) {
    display: inline-block;
    margin-right: 12px;
  }
  section#reserving .reserve_data .tour_detail {
    font-family: sans-serif;
    padding: 10px 0;
  }
  section#reserving .reserve_data .tour_detail .row_top {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  section#reserving .reserve_data .tour_detail .tour_str {
    font-size: 14px;
    color: #888;
    display: none;
  }
  section#reserving .reserve_data .tour_detail .subtotal {
    font-size: 20px;
    font-weight: normal;
    color: #333;
    white-space: nowrap;
  }
  section#reserving .reserve_data .tour_detail .line {
    height: 2px;
    background-color: #333;
    margin: 8px 0;
  }
  section#reserving .reserve_data .tour_detail .row_bottom {
    display: flex;
    justify-content: flex-end;
  }
  section#reserving .reserve_data .tour_detail .total {
    font-size: 20px;
    font-weight: normal;
    color: #000;
    white-space: nowrap;
  }
  section#reserving .reserve_data .input_detail {
    font-size: large;
    font-family: sans-serif;
  }
  section#reserving .reserve_data .input_detail .label{
    width: 200px;
    font-size: medium;
    color: #888;
  }
  section#reserving .kkday {
    font-size: x-large;
    font-weight: 500;
    color: red;
  }
  section#reserving .how_to_reach {
    margin: 40px 0 auto; 
    font-weight: 500;
    color: #2c3e50;
    letter-spacing: 0.03em;
    text-shadow: 0.5px 0.5px 0.5px rgba(0, 0, 0, 0.04);
  }
  section#start_reserve p.desc {
    margin-bottom: 0px;
  }
  section#reserving .select_method ,
  section#reserving .mail_attention {
    font-size: 1rem;
    font-weight: 500;
    color: #1a3d7c;
    line-height: 1.6;
    letter-spacing: 0.3px;
    margin-bottom: 8px;
    margin-top: 5px;
  }
  section#reserving .select_method strong {
    color: #ff8800;
    font-weight: 600;
  }
  section#reserving .mail_attention {
    margin-left: 30px;
  }

  section#reserving .agree ,
  section#reserving .same_mail {
    font-weight: 400;
    color: #666;
    letter-spacing: 0.02em;
    text-shadow: 0.5px 0.5px 0.5px rgba(0, 0, 0, 0.03);
  }
  section#reserving .agree {
    color: #999;
  }
  section#reserving .agree a {
    color: #666;
    text-decoration: underline;   /* 下線でリンクと分かる */
    text-underline-offset: 2px;
    text-decoration-thickness: 1.2px;
    font-weight: 500;             /* わずかに強調 */
  }

  section#reserving .agree a:hover,
  section#reserving .agree a:active {
    color: #333;                  /* ホバー時に濃くして視認性アップ */
    text-decoration-color: #333;
  }

  section#reserving .agree a:focus {
    outline: 2px solid #aaa;      /* フォーカスリングはグレー系で自然に */
    outline-offset: 2px;
    border-radius: 3px;
  }
  section#reserving input[name="agree_to_terms"] ,
  section#reserving input[name="use_activation_email"] {
    transform: scale(1.5); /* 1.0 = 標準サイズ、1.5 = 150%拡大 */
    transform-origin: center;
    accent-color: #1a3d7c; /* モダンブラウザで色指定可能 */
    cursor: pointer;
    margin-right: 8px;
    vertical-align: middle;
  }

  section#confirm_data .reserve_data {
    background-color: #f9f9f9;
    border: 1px solid #ccc;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05);
    color: #333;
  }
  section#reserve_complete .thanks p {
    padding: 10px;
  }
  section#reserve_complete .thanks .mailsend {
  }
  section#reserve_complete a.back_to_top {
    display: inline-block;
    background-image: url('/images_en/sakura_campaign/back_to_top.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    margin-top: 25px;
    width: 200px;
    height: 42px;
  }

  section#reserving section#select_day .desc span { 
    font-family: "Segoe UI", "Helvetica Neue", "Arial", sans-serif;
    font-weight: 700;
    font-size: inherit;
    color: #333;
    background-color: transparent;
    border: none;
    text-shadow: 0 0 1px rgba(0, 0, 0, 0.2);
    box-shadow: none;
    cursor: pointer;
  }
  section#reserving section#select_day .cal_label {
    text-align: center;
    width: 100%;
    font-size: x-large;
    font-weight: bold;
  }

  section#reserving section#select_day .scroll-container {
   display: flex;
   position: relative;
   width: 100%;
   overflow-x: hidden;
   padding: 0;
  }

  section#reserving section#select_day .fixed-labels {
   display: block;
  }
  section#reserving section#select_day .fixed-labels table {
    border-collapse: collapse;
    min-width: 100px ;
  }

  section#reserving section#select_day .fixed-labels th {
    border: 2px solid transparent; /* 表と揃えるため */
    border-right: 2px solid black; /* 表と揃えるため */
    padding: 8px 12px;
    text-align: right;
    font-weight: bold;
    white-space: nowrap;
    line-height: 1.16em;
  }
  section#reserving section#select_day .fixed-labels th.spacer {
    color: transparent;
  }
  section#reserving section#select_day .table-wrapper {
    width: 80%;
    overflow-x: auto;
    scrollbar-width: none;        /* Firefox */
    -ms-overflow-style: none;     /* IE 10+ */
    white-space: nowrap;
    scroll-behavior: smooth;
    display: block;
    margin-left: 0;
    padding-left: 0;
    text-align: left;
  }
  section#reserving section#select_day .table-wrapper::-webkit-scrollbar {
    display: none;                /* Chrome, Safari */
  }

  section#reserving section#select_day .scroll-button {
    position: absolute;
    top: 40%;
    background: #fff;
    cursor: pointer;
    padding: 12px 12px;
    z-index: 10;
    font-size: 18px;
    opacity: 0.85;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  section#reserving section#select_day .scroll-left {
    background-image: url('/images_en/sakura_campaign/booking_arrow_left.png');
    display: none;
    left: 5%;
  }
  section#reserving section#select_day .scroll-right {
    background-image: url('/images_en/sakura_campaign/booking_arrow_right.png');
    right: 5%;
  }
  section#reserving section#select_day table {
    position: relative;
    border-collapse: collapse;
    border: 2px solid #333;
    border-left: none;
    min-width: 500px;
    width: max-content;
    
  }
  section#reserving section#select_day table th, td {
    width: 80px;
    line-height: 1.2em;
    border: 1px solid #333;
    padding: 8px 12px;
    text-align: center;
    font-size: 14px;
    font-weight: normal;
  }
  section#reserving section#select_day table th.first,
  section#reserving section#select_day table td.first {
    border-left: none;
  }
  section#reserving section#select_day table td.red ,
  section#reserving section#select_day table th.red {
    background-color: mistyrose;
  }

  section#reserving section#select_day table td.sep > button {
    margin: 0;
    padding: 0;
    line-height: 1.2em;
    font-family: "Segoe UI", "Helvetica Neue", "Arial", sans-serif;
    font-weight: 700;
    font-size: inherit;
    color: #333;
    background-color: transparent;
    border: none;
    text-shadow: 0 0 1px rgba(0, 0, 0, 0.2);
    box-shadow: none;
    cursor: pointer;
  }
  section#reserving section#select_day table td.sep > button:disabled {
    color: #aaa; /* 薄いグレーで無効感を出す */
    text-shadow: none;
    cursor: not-allowed;
    pointer-events: none;
    opacity: 0.6; /* 全体を少し薄くする */
  }

  section#reserving section#select_day .desc_area {
    text-align: left;
    width: 50%;
    min-width: 500px;
    margin: 0 auto;
  }
  section#reserving section#select_day .desc_area p.topic {
    font-size: 1.4rem;
    font-weight: bold;
    border-bottom: 1px solid #888;
    margin-left: -20px;
  }
  section#reserving section#select_day .desc_area p.explain {
    margin: 5px 0; 
  }
  section#reserving section#select_day .desc_area p.explain::before {
  content: "・";
  display: inline-block;
  position: absolute;
  margin-left: -20px;
  vertical-align: baseline;

  }
  section#booking .spinner,
  section#reserving .spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid #ccc;
    border-top-color: #333;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
    vertical-align: middle;
    margin-right: 8px;
  }
  section#booking .spinner,
  section#reserving .spinner {
    animation: spin 0.6s linear infinite;
  }
  @keyframes spin {
    to { transform: rotate(360deg); }
  }
  section#booking .loading,
  section#activated .loading,
  section#reserving .loading {
    font-weight: bold;
    padding: 8px;
  }
  .remodal[data-remodal-id="redo-modal"] .remodal-confirm {
    padding: 10px 20px;
    background-color: #eee;
    color: black;
  }
  .remodal[data-remodal-id="redo-modal"] .remodal-cancel {
    padding: 10px 20px;
    background-color: #333;
  }
  .remodal[data-remodal-id="campaign-alert-modal"] {
    font-size: large;
    background-color: transparent;
    color: white;
    border: 1px solid #666;
    border-radius: 10px;
  }
  /* デフォルトの疑似要素を消す */
  .slick-dots li button:before {
    content: none;
  }
  /* ドットの基本スタイル */
  .slick-dots {
    text-align: center;
    padding: 0;
    margin: 0;
  }
  .slick-dots li {
    display: inline-block;
    margin: 0 6px;
  }
  .slick-dot-btn {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ccc;
    border: none;
    padding: 0;
    cursor: pointer;
  }
  /* アクティブドット */
  .slick-dots li.slick-active .slick-dot-btn {
    background: #666;
    transform: scale(1.1);
  }
  /* フォーカス時の見た目（アクセシビリティ） */
  .slick-dot-btn:focus {
    outline: 2px solid rgba(0,0,0,0.2);
  } 
}
