.loginStore {
    max-width: 500px;
    margin: 50px auto;
    padding: 20px;
    background-color: #f8f9fa;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    font-family: Arial, sans-serif;
}
  
.loginStore__title {
    text-align: center;
    font-size: 1.8rem;
    margin-bottom: 20px;
    color: #666;
}
  
  
.loginStore__field {
    margin-bottom: 15px;
}
  
.loginStore__label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
    color: #555;
}
  
.loginStore__input {
    width: 100%; /* 幅を100%に設定 */
    padding: 8px; /* 内側の余白を追加 */
    font-size: 1rem; /* フォントサイズを適切に設定 */
    border: 1px solid #ccc; /* 枠線を統一 */
    border-radius: 4px; /* 角を丸める */
    box-sizing: border-box; /* フィールドが親要素からはみ出さないように */
}
  
.loginStore__button {
    display: block;
    width: 100%;
    padding: 12px;
    background-color: #17a2b8;
    color: #fff;
    font-size: 1rem;
    text-align: center;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    margin-top: 30px; /* ボタンを下にずらす */
}
  
.loginStore__button:hover {
    background-color: #0056b3;
}
  
.loginStore__field .error-message {
    color: red;
    font-size: 0.9em;
    margin-top: 5px;
    font-weight: bold; /* 文字を太くする */
}

  /* 親コンテナのスタイル */
.loginStore__flashMessages-container {
  margin: 10px 0;
  padding: 0;
}

/* 各メッセージの基本スタイル */
.loginStore__flashMessages {
  padding: 10px;
  margin-bottom: 5px;
  border-radius: 5px;
  font-size: 0.9em;
  font-weight: bold; 
}

/* メッセージの種類ごとのスタイル */
.loginStore__flashMessages--error {
  color:red;
}

.loginStore__flashMessages--success {
  color: blue;  
}

.loginStore__flashMessages--info {
  color: black;
}

.loginStore__signupLink {
    text-align: center; /* 中央揃え */
    margin-top: 20px; /* ボタンとリンクの間に余白を追加 */
    font-size: 1rem; /* 読みやすいサイズ */
    color: #666; /* ベースの文字色 */
}

.loginStore__signupLink--link {
    color: #1e90ff; /* 明るい青色 (DodgeBlue) */
    text-decoration: none;
    font-weight: bold;
    transition: color 0.3s ease; /* ホバー時のスムーズな変化 */
}

.loginStore__signupLink--link:hover {
    color: #00bfff; /* ホバー時にさらに明るい青色 */
}

.loginStore__passwordReset {
  text-align: center; /* 中央揃え */
  margin-top: 20px; /* ボタンとリンクの間に余白を追加 */
  font-size: 1rem; /* 読みやすいサイズ */
  color: #666; /* ベースの文字色 */
}

.loginStore__passwordReset--link {
  color: #1e90ff; /* 明るい青色 (DodgeBlue) */
  text-decoration: none;
  font-weight: bold;
  transition: color 0.3s ease; /* ホバー時のスムーズな変化 */
}

.loginStore__passwordReset--link:hover {
  color: #00bfff; /* ホバー時にさらに明るい青色 */
}

/* ========== 2ボタンエリア ========== */
.loginChoice {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 24px 0;
}

/* 共通ボタン（a, button 両対応） */
.choice-btn{
  display:flex; align-items:center; justify-content:center; gap:10px;
  height:46px; border-radius:10px; font-weight:700; text-decoration:none; cursor:pointer;
  border:1px solid #ebedf0; background:#fff;
}
.choice-btn--email{ background:#17a2b8; border-color:#17a2b8; color:#fff; }
.choice-btn--email:hover{ filter:brightness(.96); }
.choice-btn--google{ color:#555; }
.choice-btn--google:hover{ background:#f8fafc; }


/* 無効風（JSで付与）。pointer-eventsは入れない！ */
.choice-btn.is-disabled {
  opacity: .5;
  cursor: not-allowed;
}

/* Googleロゴ */
.oauth-logo {
  height: 18px;
  width: auto;
  display: inline-block;
}

/* ========== モーダル（curtain型） ========== */
.curtain {
  position: fixed;
  inset: 0;
  display: none;                 /* is-open で表示 */
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(2px);
  z-index: 1000;
}
.curtain.is-open { display: flex; }

.curtain__panel {
  width: min(560px, 92vw);
  max-height: 85vh;
  overflow: auto;
  background: #fff;
  border-radius: 12px;
  padding: 22px 18px;
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  animation: pop .14s ease;
}

.curtain__title {
  margin: 4px 0 16px;
  font-size: 1.4rem;
  text-align: center;
  color: #444;
}

.curtain__close {
  position: absolute;
  top: 10px;
  right: 12px;
  background: transparent;
  border: none;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  color: #666;
}

@keyframes pop {
  from { transform: scale(.98); opacity: .9; }
  to   { transform: scale(1);   opacity: 1; }
}

/* ========== 細かな調整 ========== */
.loginCustomer__field input[type="email"],
.loginCustomer__field input[type="password"] {
  width: 100%;
  padding: 10px;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  box-sizing: border-box;
}
  
  @media (max-width: 560px) {
    .loginStore {
      margin: 20px;
      padding: 10px;
    }

    .oauth-block{ 
        margin: 0 15px 150px 15px;
    }
  
    .loginStore__title {
      font-size: 1.5rem;
    }
  
    .loginStore__input {
      font-size: 16px !important;
      padding: 6px;
      height: 40px !important;
      border-radius: 6px;
    }
  
    .loginStore__button {
      font-size: 1rem;
      padding: 8px;
      height: 40px;
      border-radius: 6px;
    }

    
    .curtain__panel {
        width: 90%;
        max-width: 360px;
    }

    .modal form {
        padding: 16px;
    }
  }