/* styles.css */

html, body {
    height: 100%;  /* 画面全体の高さを100%に設定 */
    margin: 0;
    padding: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
}

.page-wrapper {
    position: relative;
    height: 100%;  /* 高さは画面の100%に設定 */
    width: 100%;
    max-width: calc(100vh * 9 / 16);  /* 幅を縦の9/16に設定 */
    min-width: 350px;  /* 最小横幅 */
    margin: 0 auto;  /* 横に中央寄せ */
    margin-top: 42px;
    background-color: #ffffff;
}

.page-wrapper-content {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #fff;  /* コンテンツの背景色 */
}

header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9999;
    background-color: #fff;
    border-bottom: 1px solid #ddd;
    padding: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #555;

    /* これがポイント ↓ */
    max-width: calc(100vh * 9 / 16);
    min-width: 350px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    max-width: calc(100vh * 9 / 16);  /* .page-wrapper と同じ幅 */
    min-width: 350px;
    padding: 0 20px;
    box-sizing: border-box;
    width: 100%;
}

header h1 {
    font-size: clamp(20px, 2vw, 24px);
}

.content h1 {
    font-size: clamp(20px, 2vw, 24px);
} 

.header-icon {
    height: 2em;
    vertical-align: top;
}

.header-back-button {
    text-decoration: none;
    color: inherit;
    position: absolute; /* ヘッダー内で絶対配置 */
    left: 20px;  /* 左端に配置 */
    font-size: clamp(20px, 2vw, 24px);
}

footer {
    position: fixed;
    bottom: 0;
    width: 100%;
    max-width: calc(100vh * 9 / 16);  /* ヘッダーと同じ横幅に設定 */
    min-width: 350px;  /* ヘッダーと同じ最小横幅に設定 */
    margin: 0 auto;  /* 横に中央寄せ */
    background-color: #fff;
    text-align: center;
    border-top: 1px solid #ddd;
    z-index: 9999;
}

.footer-menu {
    display: flex;
    justify-content: space-around;
    align-items: center;         /* 垂直方向に中央揃え */
    background-color: #fff;
}

.footer-menu a {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px; /* アイコンとテキストの間隔 */
    color: #555;
    text-decoration: none;
    font-size: clamp(12px, 2vw, 16px);
    padding: 20px 5px;
    font-weight: bold;
    border-right: 1px solid #ddd; /* 右側に境界線を追加 */
}

.footer-menu a:last-child {
    border-right: none;          /* 最後のリンクには境界線を表示しない */
}

.footer-menu a i {
    font-size: 18px; /* アイコンのサイズ */
}

h1 {
    margin: 0;
    font-size: 24px;
    font-weight: bold;
}

.container {
    min-height: calc(100vh - 60px - 50px);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px;
    box-sizing: border-box;
    overflow: auto;
    background-color: white;
    padding-bottom: 100px;  /* フッター分の余白を追加 */
}

main {
    padding: 20px;
    text-align: center;
}

/* 背景色の設定 */
body {
    background-color: #dddddd;
}

.required {
    color: red;
    font-weight: bold;
}

ul a {
    color: black;  /* リンクの文字色を黒に設定 */
    text-decoration: none;  /* アンダーラインを削除 */
    flex-grow: 1;  /* リンクテキストを横に広げる */
}

ul a:hover {
    color: #777777;  /* ホバー時にグレーに変わる */
}

.profile-edit-container {
    max-width: 600px;
    margin: 0 auto;
    padding: 20px;
}

.profile-image-container {
    position: relative;
    width: 150px;
    height: 150px;
    margin-bottom: 20px;
    border-radius: 50%;
    overflow: hidden;  /* 画像が枠外に出ないように制限 */
}

.profile-image {
    width: 100%;
    height: 100%;
    border-radius: 50%;  /* 画像を丸く表示 */
    object-fit: cover;   /* 画像が枠にフィットするようにトリミング */
    position: absolute;  /* 画像の位置を調整 */
    top: 0;
    left: 0;
}

.profile-image.placeholder {
    background-color: #ccc;
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.camera-icon {
    position: absolute;
    bottom: 10px;
    right: 10px;
    font-size: 30px;
    color: gray;
    cursor: pointer;
    background-color: rgba(255, 255, 255, 0.6);  /* 透明背景でカメラアイコンを際立たせる */
    border-radius: 50%;
    padding: 10px;  /* 上下左右の余白を均等にする */
    width: 30px;  /* 固定幅 */
    height: 30px; /* 固定高さ */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10;
}

.form-group {
    display: block;
    margin-bottom: 20px;
    width: 100%;
}

.form-group label {
    display: block; /* ラベルをブロック要素にして、上に表示 */
    font-weight: bold;
    margin-bottom: 5px; /* ラベルと入力欄の間にスペース */
}
  
.form-group input,
.form-group select,
.form-group textarea {
    width: 100%; /* 入力欄を横いっぱいに広げる */
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box; /* パディングやボーダーが幅に影響しないように */
}

.example-text {
    padding: 10px;
    color: #999;  /* 例のテキストを薄い色に */
    font-size: 0.7em;  /* 少し小さめに */
}

button.btn {
    padding: 10px 20px;
    background-color: #555;
    color: white;
    border: none;
    cursor: pointer;
}

button.btn:hover {
    background-color: #333;
}

/* 通知の基本スタイル */
.notification {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    background-color: #555;  /* 通常の通知色 */
    color: white;
    padding: 10px;
    border-radius: 5px;
    display: none;
    z-index: 1000;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.notification.show {
    display: block;
    opacity: 1;
    animation: slideDown 0.5s ease-out;
}

button.disabled, input[type="submit"].disabled {
    opacity: 0.5;
    pointer-events: none;
}

@keyframes slideDown {
    from {
        top: -50px;
    }
    to {
        top: 0;
    }
}

.blur {
    filter: blur(2px);
}