* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body, html {
    height: 100%;
    font-family: 'ヒラギノ明朝 ProN', 'Hiragino Mincho ProN', '游明朝', 'Yu Mincho', 'ＭＳ Ｐ明朝', 'MS PMincho', serif;
    overflow-x: hidden; /* Hide horizontal scrollbar */
}

header.globalNavigation {
    display: flex;
    align-items: center;
    background-color: #fff;
    padding: 10px;
    height: 130px;
    width: 100%; /* Ensure the header takes the full width */
}

header.globalNavigation img.header-logo {
    height: 130px;
    max-width: 200px;
    margin-left: 50px;
}

header.globalNavigation .header-button {
    width: auto;
    height: auto;
    margin-left: auto;
    margin-right: 20px;
    padding: 10px 20px;
    background-color: #575757;
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 18px;
    text-decoration: none;
    text-align: center;
    display: inline-block;
}

header.globalNavigation .header-button:hover {
    background-color: #a39d8c;
}

main {
    display: flex;
    flex-direction: row;
    height: calc(100vh - 130px);
    overflow: hidden; /* Hide overflow to prevent scrollbar */
}


.localNavigation {
    width: 300px;
    background-color: #f4f4f4;
    position: sticky;
    top: 130px;
    height: calc(100vh - 130px);
    overflow-y: auto;
}

.localNavigation ul {
    list-style: none;
    padding: 0;
    margin: 25px 0 0 0;
}

.localNavigation li {
    margin-bottom: 10px;
}

.localNavigation a {
    color: #333;
    text-decoration: none;
    padding: 10px;
    display: block;
    text-align: center;
}

.localNavigation a:hover {
    background: #575757;
    color: white;
    width: 100%;
}

.localNavigation a:active {
    background-color: #444;
}
.localNavigation li.space-item {
  margin-top: 50px;
}
.content {
    margin-left: 50px;
    padding: 20px;
    overflow-y: auto;
    width: calc(100% - 320px);
    background-color: #fff;
}

.content section {
    margin-bottom: 40px;
    background-color: #f9f9f9;
    padding: 10px;
    border-radius: 5px;
    text-align: center;
}

h2 {
    margin-bottom: 50px;
    text-align: center;
}

p {
    margin-bottom: 20px;
    line-height: 1.4;
}

.photo-container {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin: 20px auto;
    width: 100%;
    max-width: 900px;
    background-color: #e9e8e5;
    padding: 10px;
    border-radius: 5px;
}

.photo {
    width: 100%;
    max-width: 300px;
    height: auto;
    object-fit: cover;
    margin-right: 10px;
}

.text-container {
    flex: 1;
    text-align: left;
    color: black;
}

.address-map-container {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 20px auto 50px auto;
    width: 100%;
    max-width: 900px;
    justify-content: space-around;
    background-color: #a39d8c;
    padding: 0px;
    border-radius: 5px;
    height:500px;
}

.address {
    margin-right: -50px;
    text-align: center;
    color: white;
}

.address p {
    line-height: 1.2;
    margin-bottom: 5px;
}

.google-map {
    border: none;
    width: 100%;
    max-width: 500px;
    height: 450px;
}

.section-image {
    display: block;
    max-width: 100%;
    width: 100%;
    height: auto;
}

.image-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 24px;
    font-weight: bold;
    background: rgba(0, 0, 0, 0.5);
    padding: 10px;
    border-radius: 5px;
    text-align: center;
}
.bold-text {
     font-weight: 900;
     font-family: 'Arial Black', sans-serif;
  }
#section1 {
    background-image: url('../img/u_main.jpg');
    background-size: cover;
    background-position: center;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.text-overlay {
    position: absolute;
    top: 20%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: white;
    padding: 20px;
    border-radius: 10px;
}

.text-overlay h1 {
    margin: 0;
    font-size: 36px;
}

.text-overlay p {
    margin: 10px 0 0 0;
    font-size: 18px;
}
.faq-container {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
    background-color: #f9f9f9;
    padding: 20px;
    border-radius: 5px;
}

.faq-item {
    margin-bottom: 10px;
}

.faq-question {
    width: 100%;
    padding: 15px;
    background-color: #a39d8c;
    color: white;
    border: none;
    border-radius: 5px;
    text-align: left;
    cursor: pointer;
    font-size: 18px;
    transition: background-color 0.3s ease;
}

.faq-question:hover {
    background-color: #575757;
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background-color: #fff;
    padding: 0 15px;
    border-radius: 0 0 5px 5px;
}

.faq-answer p {
    margin: 15px 0;
}
.vertical-text-container {
    writing-mode: vertical-rl;
    text-orientation: upright;
    border: 0px solid #333;
    padding: 20px;
    width: fit-content;
    margin-right: 20px; /* Add some margin from the right edge */
    /*background-color: rgba(255, 255, 255, 0.8); */
   
}

.vertical-text {
    font-size: 20px;
    line-height: 1.8;
    text-align: justify;
    color: black; 
}
#section2 {
    background: linear-gradient(to left, white 80%, white 80%);
    display: flex;
    align-items: flex-start;
    justify-content: flex-end; /* Align items to the right */
    /* padding: 10px 300px; Adjust padding to your needs */
    height: 100vh; /* Full viewport height to demonstrate alignment */
}

.highlight {
    color: #F20F21;
}
.left-image-container {
    display: flex;
    align-items: center; /* Center image vertically within its container */
    margin-left: 20px; /* Space between the image and the text */
}

.left-image {
    max-width: 500px; /* Adjust the size of the image */
    display: block; /* Ensures that the image is treated as a block element */
}
.right-image-container {
    display: flex;
    align-items: center; /* Center image vertically within its container */
}

.right-image {
    max-width: 400px; /* Adjust the size of the image */
    display: block; /* Ensures that the image is treated as a block element */
}

.section-content {
    display: flex;
    align-items: center; /* Center items vertically */
    justify-content: center; /* Center items horizontally */
    margin-bottom: 0; /* 下のマージンを0に設定 */
    padding-bottom: 0; /* 下のパディングを0に設定 */
    border: 1px solid #333;
}


.text-container {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center; /* Center text horizontally */
    justify-content: center; /* Center text vertically */
    text-align: center; /* Center text */
    padding-right: 20px; /* Add some padding to separate the text and image */
}

.image-container {
    flex: 1;
    display: flex;
    align-items: center; /* Center image vertically within its container */
    justify-content: center; /* Center image horizontally */
}

.section-image {
    max-width: 100%;
    height: auto;
    object-fit: cover;
}


#section3{

}
.left-section-container {
    display: flex;
    align-items: center; /* 画像を垂直方向中央に配置 */
    justify-content: center;
    margin-top: 0; /* 上のマージンを0に設定 */
    padding-top: 0; /* 上のパディングを0に設定 */
    border: 1px solid #333;
}

.left-image-container {
    flex: 1;
    display: flex;
    align-items: center; /* Center image vertically within its container */
    justify-content: center; /* Center image horizontally */
    margin: 0; /* 左の余白をなくす */
    padding: 0; /* 左のパディングをなくす */
}

.left-image {
    max-width: 51%;
    height: 50%;
    object-fit: cover;
}

.text-container {
    flex: 1; /* 残りのスペースを取る */
    text-align: left; /* テキストを左寄せ */
    color: black; /* テキストの色 */
}

.water-text {
    text-align: left; /* 左寄せ */
    margin-left: 60px; /* 左余白を削除 */
    padding-left: 0; /* 左パディングを削除 */
    
    display: block; /* 左寄せを明示するためブロック要素にする */

}
.line-image {
    margin-top: 40px;
    max-width: 20%;
    height: 20%;
   
}
/* テーブル全体 */
table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
 .fixed-height {
    height: 300px; /* 高さを固定 */
  }
  
  .business-fixed-height {
    height: 400px; /* 高さを固定 */
  }
   .okosama-fixed-height {
    height: 400px; /* 高さを固定 */
  }
/* 各セルのスタイル */
td {
  border: 1px solid #000;
  padding: 10px;
  text-align: center;
  vertical-align: top; /* 上揃え */
}

/* 高さを揃えるセル */
.content-cell {
  height: 150px; /* 固定の高さを設定 */
  
}
.text-center {
    text-align: center; /* 横方向の中央揃え */
    display: flex;
    flex-direction: column;
    justify-content: center; /* 縦方向の中央揃え */
    height: 60%; /* 親セルの高さ全体を使用 */
  }
.okosama-text-center {
    text-align: center; /* 横方向の中央揃え */
    display: flex;
    flex-direction: column;
    justify-content: center; /* 縦方向の中央揃え */
    height: 70%; /* 親セルの高さ全体を使用 */
  }
 .list-item {
    position: relative;
    padding-left: 20px; /* 左に余白を追加 */
    margin: 5px 0; /* 各項目に余白を追加 */
  }

  .list-item::before {
    content: '•'; /* カスタム箇条書きの記号 */
    position: absolute;
    center: 0; /* 左端に配置 */
    color: #007BFF; /* 青色に設定（変更可能） */
    font-size: 1.2em; /* サイズを調整 */
  }
/* 見出しのスタイル */
h2 {
  margin: 10px 0;
  text-align: center;
}

p {
  margin: 5px 0;
}

/* 画像のスタイル */
td img {
  width: 100%;
  height: auto;
}

/* 営業時間・お子さま連れの行を目立たせる */
tr:nth-child(2), tr:nth-child(3) {
  background-color: #f9f9f9; /* 背景色を薄く設定 */
  text-align: left; /* 左揃え */
}




#section4 .insta-image {
    margin-top: 40px;
    max-width: 20%;
    height: 20%;
   
}

/* Media Queries for Responsive Design */
@media (max-width: 1200px) {
    .photo-container, .address-map-container {
        width: 100%;
        flex-direction: column;
        text-align: center;
    }

    .photo {
        margin-right: 0;
        margin-bottom: 10px;
    }

    .address {
        margin-right: 0;
        margin-bottom: 20px;
    }

    .google-map {
        width: 100%;
        
    }

    .content {
        width: 100%;
        margin-left: 0;
    }
}

@media (max-width: 768px) {

    header.globalNavigation {
        flex-direction: column;
        height: auto;
        padding: 20px 10px;
    }

    header.globalNavigation img.header-logo {
        margin-left: 0;
        margin-bottom: 10px;
    }

    header.globalNavigation .header-button {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
    }

    main {
        flex-direction: column;
        height: auto;
    }

    .localNavigation {
        width: 100%;
        height: auto;
        position: relative;
        top: 0;
    }

    .localNavigation ul{
  display:flex;
  flex-wrap:wrap;
  gap: 18px 26px;     /* 縦 横の間隔 */
  list-style:none;
  margin:0;
  padding:0;
  align-items:center;
}
/* よもぎ蒸し・トップページを下段に落とす */
.localNavigation li.space-item{
  flex-basis: 100%;   /* 1行を占有して必ず下へ */
  margin-top: 18px;   /* 上段との間隔 */
  text-align: right;  /* 右寄せ（不要なら消してOK） */
}

/* 下段の2つを横並びにしたい場合 */
.localNavigation li.space-item a{
  display:inline-block;
  margin-left: 18px;  /* 2つのリンクの間隔 */
}
    .localNavigation li {
        margin-bottom: 0;
    }
    
    .localNavigation li:nth-child(4),
    .localNavigation li:nth-child(5),
    .localNavigation li:nth-child(6) {
        display: none;
    }
    
    .vertical-text {
        font-size: 14px; /* 小さくしたフォントサイズ */
    }

    .content {
        width: 100%;
        margin-left: 0;
    }

    .address-map-container {
        flex-direction: column;
        width: 100%;
    }

    .photo-container {
        flex-direction: column;
        width: 100%;
    }

    .photo {
        width: 100%;
        height: auto;
        margin-right: 0;
    }

    .google-map {
        width: 100%;
        height: 200px;
    }

    .text-overlay {
        padding: 10px;
        font-size: 18px;
    }

    .text-overlay h1 {
        font-size: 24px;
    }

    .text-overlay p {
        font-size: 14px;
    }
    .fixed-height {
    	height: 400px; /* 高さを固定 */
  	}
   .okosama-fixed-height {
    height: 500px; /* 高さを固定 */
  }
   #section2 {
        flex-direction: column-reverse; /* 画像を上、テキストを下に配置 */
        align-items: center;
    }

    .vertical-text-container {
        margin-right: 0;
        margin-top: -55px; /* テキストと画像の間に余白を作る */
    }

    .right-image-container {
        text-align: center;
    }

    .right-image {
        max-width: 100%; /* 画像の幅を親要素にフィット */
        height: auto;
    }
    .text-center p {
        
        text-align: left; /* スマホでは左揃え */
    }
   
    #section8 p {
        line-height: 1.6; /* 行間を広げて読みやすく */
        word-break: break-word; /* 単語の途中で改行を許可 */
    }
}

@media (max-width: 480px) {
    header.globalNavigation {
        padding: 10px;
    }

    header.globalNavigation img.header-logo {
        height: 80px;
        max-width: 150px;
    }

    header.globalNavigation .header-button {
        font-size: 16px;
        padding: 8px 16px;
    }

    .photo-container {
        padding: 5px;
    }

    .address-map-container {
        padding: 5px;
    }

    .photo {
        height: 150px;
    }

    .google-map {
        height: 150px;
    }
    
}
@media (max-width: 768px) {

  /* ナビ全体 */
  .localNavigation ul{
    display:flex;
    flex-wrap:wrap;
    gap: 18px 26px;
    margin:0;
    padding:0;
    align-items:center;
    justify-content:center;   /* 上段は中央 */
  }

  /* ===== 2行目 ===== */
  .localNavigation li.nav-bottom{
    flex-basis: 100%;          /* 必ず2行目へ */
    display:flex;
    justify-content:center;   /* ★ 真ん中に */
    gap: 10px;                /* ★ 間を狭く */
    margin-top: 0px;         /* ★ 上との距離を詰める */
  }

  .localNavigation li.nav-bottom a{
    padding: 6px 8px;         /* ★ 余白もコンパクトに */
    font-size: 14px;
  }
}
/* ===== iPhone Safari 縦書き位置ズレ対策 ===== */
@supports (-webkit-touch-callout: none) {

  #section2{
    align-items: center;      /* 上寄せをやめる */
    justify-content: center; /* 右寄せをやめる */
  }

  .vertical-text-container{
    margin-right: 0;
    margin-top: 40px;        /* 上からの余白を明示 */
  }
}
.photo-no-crop{
  height: auto !important;        /* 480pxの height:150px を無効化 */
  object-fit: contain !important; /* 全体を表示（切れない） */
}
/* section8 を画像で表示 */
.info-image-wrap{
  max-width: 900px;     /* PCで横に伸びすぎない */
  margin: 0 auto;
  padding: 10px;
}

.info-image{
  width: 100%;
  height: auto;         /* 縦横比を保つ */
  display: block;
  border-radius: 10px;  /* 角丸（不要なら消してOK） */
}

/* スマホは余白を少し小さく */
@media (max-width: 768px){
  .info-image-wrap{
    padding: 6px;
  }
}
/* =========================
   section8（ピラティスとは）専用：長文を崩さない
========================= */
.section8-prose{
  max-width: 70ch;          /* 1行の長さを安定 */
  margin: 0 auto;
  padding: 0 16px;
  text-align: left;
  line-height: 1.9;
  overflow-wrap: anywhere;  /* 長い単語/URLで崩れない */
  word-break: break-word;
}

.section8-prose p{
  margin: 0 0 1.2em;
}

.section8-prose ul{
  margin: 0.4em auto 0;
  padding-left: 1.2em;      /* 箇条書きの左余白 */
  text-align: left;
  display: inline-block;    /* 中央に寄せつつ中身は左揃え */
}

.section8-prose li{
  margin: 0.4em 0;
}
.section8-prose ul{
  margin: 0 auto;          /* 全体を中央寄せ */
  padding-left: 1.2em;    /* ●の位置調整 */
  text-align: left;       /* 文字は左揃えのまま */
  display: inline-block;  /* 中央に置くために必要 */
}
/* リストだけ中央配置（外側は中央・中身は左揃え） */
#section8 .section8-prose{
  text-align: left; /* 文章は左 */
}

#section8 .section8-prose ul{
  display: table;     /* ← これが強い（確実に中央に寄る） */
  margin: 0 auto;     /* 中央寄せ */
  padding-left: 1.2em;
  text-align: left;   /* リスト項目は左 */
}
/* =========================
   スマホ：料金と持ち物を1列に
========================= */
/* =========================
   スマホ：料金と持ち物「だけ」を1列に
========================= */
/* =========================
   スマホ：section3（料金/持ち物/営業時間...）を縦並びブロック化
========================= */
@media (max-width: 768px){

  /* table構造をスマホだけ解除して縦並びにする */
  #section3 table,
  #section3 tbody,
  #section3 tr,
  #section3 td{
    display: block;
    width: 100%;
  }

  /* 固定高さを全部解除（重なり防止） */
  #section3 .fixed-height,
  #section3 .business-fixed-height,
  #section3 .okosama-fixed-height,
  #section3 .content-cell{
    height: auto !important;
  }

  /* セルの見た目（枠＆余白） */
  #section3 td{
    border: 1px solid #000;
    padding: 18px 14px;
    margin: 0;              /* 念のため */
    box-sizing: border-box;
  }

  /* 料金/持ち物の文章：左寄せで読みやすく */
  #section3 .text-center,
  #section3 .okosama-text-center{
    display: block;         /* flexをやめる（高さ計算ズレ防止） */
    text-align: left;
    height: auto !important;
  }

  #section3 .text-center p,
  #section3 .okosama-text-center p{
    margin: 8px 0;
    line-height: 1.6;
    overflow-wrap: break-word;
    word-break: break-word;
  }

  /* 写真4枚の行だけ：2列グリッドで並べる */
  #section3 tr:last-child{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  #section3 tr:last-child td{
    border: 0;              /* 写真枠線は不要なら */
    padding: 0;
  }
  #section3 tr:last-child img{
    width: 100%;
    height: auto;
    display: block;
  }
}
/* スマホのみ（768px以下） */
@media (max-width: 768px){

 

  /* 1行ごとの<p>が間延びして見える原因＝margin */
  .text-center p,
  .okosama-text-center p{
    margin: 0;            /* ← これが超重要 */
    line-height: 1.9;
    font-size: 15px;      /* 14〜15にすると変な折れが減りやすい */
    word-break: normal;
    overflow-wrap: break-word;
    line-break: strict;
  }

  /* 行ごとに少しだけ間隔が欲しい場合（お好み） */
  .text-center p + p,
  .okosama-text-center p + p{
    margin-top: 10px;
  }
}

@media (max-width: 768px){
  .content-cell{
    padding-left: 14px;
    padding-right: 14px;
  }
}
@media (max-width: 768px){

  /* テーブル自体を全幅に */
  #section3 table{
    width: 100%;
    table-layout: auto;
  }

  /* tdの左右余白が大きいと一気に細くなるので詰める */
  #section3 .content-cell{
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* pのデフォルト余白が“間延び”の原因になるので調整 */
  #section3 .text-center p,
  #section3 .okosama-text-center p{
    margin: 0 0 10px 0;
    line-height: 1.9;

    /* 変な1文字落ちを抑える */
    word-break: normal;
    overflow-wrap: break-word;
    line-break: strict;
  }
}





