@charset "UTF-8";

:root {
  /* --primary-color: #49A7C3; */
  --primary-color: #009B4A;
  /* --secondary-color: rgba(73, 167, 195, 0.5); */
  --secondary-color: rgba(0, 155, 74, 0.5);
  --font-family: Arial, sans-serif;
  --font-size-large: 3em;
  --font-size-medium: 1.5em;
  --font-size-small: 1.2rem;
  /* タイトルのフォントサイズを少し大きく */
  --logo-height: 40px;
  /* ロゴの高さを設定 */
  --footer-bg-color: #333;
  --footer-text-color: white;
}

body {
  font-family: var(--font-family);
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

header {
  width: 100%;
  top: 0;
  z-index: 1000;
}

.navbar {
  background-color: var(--primary-color);
  transition: background-color 0.3s;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.navbar.scrolled {
  background-color: var(--secondary-color);
}

.navbar-brand {
  display: flex;
  align-items: center;
}

.navbar-nav {
  display: flex;
  align-items: center;
  margin-left: auto;
}

/*登録関係メッセージ画面のコンテナサイズを設定*/
.container-message {
  width: 100%;
  max-width: 650px;
  margin: 0 auto;
  padding-left: 15px;
  padding-right: 15px;
}

/*ユーザー表示用のクラス*/
.user {
  position: relative;
  cursor: pointer;
}

/*ユーザークリック時に表示するメニュー*/
#menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 10px;
  background-color: white;
  padding: 5px;
  border: 1px solid #ddd;
  z-index: 9999;
  width: max-content;
}

.logo {
  height: var(--logo-height);
  /* ロゴの高さを変数で管理 */
  margin-right: 10px;
}

/*ポータル画面に表示するコンテンツアイコン表示用クラス*/
.app-icon {
  border: 2px solid gray;
  /* 灰色の枠線を設定 */
  max-width: 100%;
  /* 画像のサイズを親要素に合わせる */
  height: auto;
  /* アスペクト比を保ちながら高さを調整 */
  display: block;
  margin-bottom: 10px;
}

/*見出しの先頭に付けるアイコンのサイズを設定*/
.title-icon {
  width: 80px;
  height: auto;
}

/*ボタンの先頭に付けるアイコンのサイズを設定*/
.bottun-icon {
  width: 30px;
  height: auto;
}

/*問合せ時の電話ボタンクラス*/
.btn-inquiry {
  width: 80%;
  min-width: 400px;
  height: 60px;
  background-color: white;
  border-radius: 5px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
}

.btn-inquiry p {
  margin: 0;
  /* 不要なマージンを削除 */
}

/*問合せ時のメールボタンクラス*/
#btn-mail {
  background-color: var(--primary-color);
  cursor: pointer;
}

.site-title {
  font-size: var(--font-size-small);
  /* タイトルのフォントサイズを変数で管理 */
  font-weight: bold;
  color: white;
}

.banner {
  background: url('../images/common/mainvisual.jpg') no-repeat center center;
  background-size: cover;
  color: white;
  text-align: center;
  height: 0;
  padding-top: 26.04%;
  margin-top: 65px;
  /* ヘッダーの高さ分のマージンを追加 */

}

.banner h1 {
  font-size: var(--font-size-large);
  margin-bottom: 0.5em;
}

.banner p {
  font-size: var(--font-size-medium);
}

main {
  flex: 1;
  padding: 2em 0;
  margin-top: 70px;
}

section {
  margin-bottom: 2em;
}

.image-grid {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
}

.image-grid img {
  width: 170px;
  height: 170px;
  margin: 10px;
}

footer {
  background-color: var(--footer-bg-color);
  color: var(--footer-text-color);
  text-align: center;
  padding: 1em;
  position: relative;
  bottom: 0;
  width: 100%;
}

.login-section {
  display: flex;
  align-items: center;
}

.login-section i {
  font-size: 1.5em;
}

/* What's New用に作成 */
.tight-line {
  line-height: 1.4;
  margin-bottom: 4px;
}

/* ユーザー一覧画面用に追加 */
.clickable-row {
  cursor: pointer;
  /* カーソルをポインターに */
}

.clickable-row:hover {
  background-color: var(--primary-color);
}

/* スマートフォン用のスタイル */
@media (max-width: 767px) {
  .navbar-nav {
    display: none;
  }

  .navbar-toggler {
    display: block;
  }

  .navbar-collapse.show .navbar-nav {
    display: block;
  }

  .login-section {
    display: none;
  }

  .navbar-collapse.show .login-section {
    display: flex;
    align-items: center;
    margin-left: 0;
  }

  .banner {
    margin-top: 56px;
    /* スマートフォン用のヘッダーの高さ分のマージンを追加 */
  }
}

form {
  max-width: 600px;
  margin: 0 auto;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
textarea {
  border-radius: 40px;
}

#prefecture {
  border-radius: 40px;
  /* 角を丸くする */
}

.required-icon {
  color: orange;
  border: 1px solid orange;
  padding: 0 5px;
  border-radius: 3px;
  margin-left: 5px;
}

.is-invalid {
  border-color: red;
}

.is-invalid::placeholder {
  color: red;
}

.error-message {
  color: orange;
  font-size: 0.9em;
  margin-top: 5px;
  display: block;
}

.no-style-link {
  text-decoration: underline;
  background: none;
  border: none;
  color: blue;
  cursor: pointer;
}

.no-style-link {
  all: unset;
  /* もともとのボタンスタイルリセット */
  color: #0d6efd;
  /* 青文字だけ残す */
  text-decoration: underline;
  /* 下線 */
  cursor: pointer;
  /* クリックできる感 */
  vertical-align: baseline;
  /* ここ重要！！ */
  font-size: 1rem;
  /* フォントサイズ合わせるならここ */
}