/* 文字化けを防ぐ */
@charset "UTF-8";

/* 共通部分
--------------------------------- */
html {
    height: 100%;
    margin: 0;
    font-size: 100%;        /* ユーザーの設定した文字サイズを正しく反映する */
}

body {
    height: 100%;
    margin: 0;
    /* font-family: "Montserrat", sans-serif; */
    /* font-family: "Source Code Pro", "Helvetica Neue", Arial, sans-serif; */
    /* font-family: "Consolas", "Courier New", "Montserrat", sans-serif; */
    /* font-family: "Consolas", "Courier New", "Montserrat", "Meiryo", sans-serif; */
    /* font-family: "FixCircledNumber", "Consolas", "Courier New", "Montserrat", "Noto Sans JP", sans-serif; */
    /* font-family: "FixCircledNumber", "Consolas", "Courier New", "Noto Sans JP", "Montserrat", sans-serif; */
    /* font-family: "FixCircledNumber", "Noto Sans JP", sans-serif; */
    /* font-family: "Noto Sans JP", "FixCircledNumber", sans-serif; */
    font-family: "Source Code Pro", "Noto Sans JP", sans-serif;
    font-optical-sizing: none;
    font-weight: normal;
    font-style: normal;  
    line-height: 1.7;       /* 行の高さ */
    color: #222222;
    font-size: 95%;
    text-rendering: optimizeLegibility; 
}

.code-line-height {
    line-height: 1.6; 
}

.pre-wrap {
    white-space: pre-wrap;
    word-break: break-all;
    font-family: "Source Code Pro", "Noto Sans JP", sans-serif;
    /* font-family: "Consolas", "Courier New", "Noto Sans JP", "FixCircledNumber", "Montserrat", sans-serif; */
    text-rendering: optimizeLegibility;
}

pre.macro_code_font {
    font-family: "Source Code Pro", "Noto Sans JP", sans-serif !important;
    text-rendering: optimizeLegibility !important;
}

.background-color-g {
    background-color:#f5f5f5;
}

.plan_title {
    color: #005070;
    background-color:#ddd;
    /* border: 1.5px solid #005070; */
    padding: 10px 0;
    border-radius: 8px;
}

.title_bar {
    color: #005070;
    background-color:#ddd;
    padding: 7px 0;
    border-radius: 2px;
    margin: 1.5rem 0 2rem 20px;
    font-weight: bolder;
}

a {
    text-decoration: none;  /* aタグの傍線 */
}

/* item-border-bottomに変更可能か確認 */
.border-bottom {
    text-align: center;
    border-bottom: 2px solid #ddd;
    margin: 1rem 0 1.5rem;
}

.item {
    margin: 1.5rem 0 3rem;
    padding: 0.5rem 0.2rem;
}

.item-command {
    margin: 1.5rem 0 0;
    padding: 0.5rem 0.5rem;
}

.item-border-bottom {
    text-align: center;
    border-bottom: 2.5px solid #005070;
    padding-bottom: 5px;
    margin: 1rem 0 2.0rem;
}

.font-large {
    font-size: 1.3rem;
    font-family: "Montserrat", sans-serif;
}

.font-bold {
    font-weight: 500;
}

.font-bold-600 {
    font-weight: 600;
}

.border-bottom-flex {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-bottom: 2px solid #ddd;
    padding: 5px 20px;
    margin: 1rem 0 1.5rem;
    align-items: baseline;
}

.border-bottom-mobile {
    border-bottom: 2px solid #ddd;
    padding: 5px 5px;
    margin: 1.5rem 0 ;
    align-items: baseline;
}


.item-large {
    font-size: 1.2rem;
}

.item-q {
    /* font-size: 1.3rem; */
    font-size: 1.2rem;
    font-weight: bold;
    color: #005070;
    text-align: center;
}

.item-a {
    font-size: 1.1rem;
    font-weight: bold;
    color: #005070;
}

.category {
    /* font-size: clamp(6px, 2.7vw, 18px);
    font-weight: bold;
    color: #005070;
    width: 170px;
    height: auto;
    text-align: right;
    white-space: nowrap;  */
    font-size: 0.85rem;
    font-weight: normal;
    color: #005070;
    margin-bottom: 2px;
    text-align: center;
}

.content {
    /* padding: 0 15px; */
    padding: 0 10px;
    line-height: 1.9;
}

.content-1 {
    padding: 0 5px 0 20px;
    line-height: 1.9;
    
}

.content_indent {
    padding: 0 0 0 30px;
}

.content_payment {
    padding: 0 5px 0 5px;
    line-height: 1.7;   
}

.content_payment p {
    padding: 0 30px;
    line-height: 1.7;
    margin-bottom: 1rem;   
}


.content-box {
    /* padding: 0 0 0 10px; */
    padding: 0 0 0 5px;
    line-height: 1.9;
}

.content-box-img {
    width: 100%;
    padding: 0 0 0rem 10px;
    /* margin-bottom: 2rem; */
    margin: 1rem 0 2rem;
    line-height: 1.9;
}

.content-img {
    width: 100%;
    /* margin: 2rem 0; */
    margin: 1rem 0 2rem;
    line-height: 1.9;
}

.img-frame {
    margin: 1rem 0 0 0.5rem;
    height: 180px;
}

.img-frame2 {
    margin: 1rem 0 2rem 0.5rem;
    height: 150px;
}

.img-2 {
    max-width: 100%;
    height: 100%; 
    object-fit: contain;
}

.content-ol {
    padding: 0 10px 0 40px;
    line-height: 1.9;
}

.sentense {
    padding: 0 10px 0 10px;
}

.sentense2 {
    padding: 0 10px 7px 10px;
}

.sentense3 {
    padding: 0;
}

.list-style {
    list-style: none;
    padding: 0 10px 0 25px;
}

.list-style2 {
    list-style: none;
    padding: 0 25px 0 60px;
}

.list-style3 {
    list-style: none;
    padding: 0 25px 0 40px;
}

.list-style4 {
    list-style: none;
    padding: 0 25px 0 70px;
}

.list-style5 {
    list-style: none;
    padding: 0 0 0 15px;
}

.list-style6 {
    list-style: none;
    padding: 0;
}

.list-item {
    text-indent: -1rem;
    margin-bottom: 0.8rem;
}

.list-item2 {
    text-indent: -1.55rem;
    margin-bottom: 0.8rem;
}

.list-item3 {
    text-indent: -1.55rem;
}

.list-item4 {
    text-indent: -0.8rem;
    margin-bottom: 0.2rem;
}

.list-item5 {
    text-indent: -1.65rem;
    padding-left: 0.8rem;
    margin-bottom: 0.5rem;
}

.list-item-accounts {
    margin-left: 10px;
    /* text-indent: -1rem; */
    margin-bottom: 0.8rem;
}

.list-item-confirm {
    margin-left: 40px;
    font-weight: bold;
    /* text-indent: -1rem; */
    margin-bottom: 0.3rem;
}

.blank-top {
    margin-top: 2rem;
}

.blank-top-1rem {
    margin-top: 1rem;
}

.blank-top-2rem {
    margin-top: 2rem;
}

.blank-top-5rem {
    margin-top: 5rem;
}

.blank-top-3rem {
    margin-top: 3rem;
}

.blank-bottom-05rem {
    margin-bottom: 0.5rem;
}

.blank-bottom-1rem {
    margin-bottom: 1rem;
}

.blank-bottom-1-05rem {
    margin-bottom: 1.5rem;
}

.blank-bottom-2rem {
    margin-bottom: 2rem;
}

.blank-bottom-3rem {
    margin-bottom: 3rem;
}

.blank-bottom-5rem {
    padding-bottom: 5rem;
}

.padding-top-05rem {
    padding-top: 0.5rem;
}

.padding-top-1-05rem {
    padding-top: 1.5rem;
}

.container-q {
    /* margin: 1rem 1rem 2rem; */
    margin: 1rem 0.5rem 1rem;
    border: 1.5px solid #ddd;
    /* padding: 1rem 0.5rem 2rem; */
    padding: 1rem 0.5rem 1rem;
    line-height: 1.7;
    border-radius: 8px;
}

.container-code {
    /* margin: 1rem 1rem 2rem; */
    margin: 1rem 0.3rem 1rem;
    border: 1.5px solid #ddd;
    /* padding: 1rem 1.5rem 2rem; */
    padding: 1rem 1rem 0.5rem;
    line-height: 1.7;
    border-radius: 8px;
}

.container-a {
    margin: 1rem 0.5rem 1rem;
    border: 1.5px solid #ddd;
    padding: 1rem 0.7rem 2rem;
    line-height: 1.7;
    border-radius: 8px;
}

.container-beside {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    /* gap: 11px; */
    gap: 15px;
}

.container-flex {
    width: 100%;
    margin: 0 0.5rem 0;
    border: 1.5px solid #ddd;
    padding: 1rem 0.7rem 2rem;
    line-height: 1.7;
    border-radius: 8px;
}

.code_container-flex {
    display: flex; /* 横並びにする */
    font-family: "Consolas", "Courier New", monospace; 
    /* font-family: "Source Code Pro", monospace;  */
    /* font-size: 14px; */
    font-size: 95%;
    line-height: 1.6; /* 行高（左右の枠で必ず一致させる） */
    background-color: #f8f9fa; /* 薄いグレーの背景 */
    border: 1px solid #e9ecef;
    border-radius: 4px;
    margin: 15px 0;
    overflow: hidden; /* 枠からはみ出た部分の制御 */
}

.code-numbers {
    flex-shrink: 0; /* コードが長くても左枠は絶対に縮めない */
    /* padding: 10px 8px 10px 12px; */
    padding: 10px 0px 10px 0px;
    margin: 0;
    color: #6c757d; /* 番号を少し薄い色にしてコードを引き立てる */
    background-color: #f1f3f5; /* ナンバーエリアを分かりやすく色分け */
    border-right: 1px solid #dee2e6; /* 区切り線 */
    text-align: right; /* 番号を右寄せにして綺麗に揃える */
    user-select: none; /* ユーザーがコードをコピペするときに番号が邪魔にならない */
}

.vba-code {
    flex-grow: 1; /* 横幅いっぱいに広げる */
    padding: 10px 12px;
    margin: 0;
    color: #212529;
    overflow-x: auto; /* 長いコードの場合のみ、この枠内だけが横スクロールする */
    white-space: pre; /* Excelのインデントと改行を100%そのまま表示する */
}

.vba-code-number-none {
    padding: 10px 12px;
    margin: 0;
    color: #212529;
    overflow-x: auto; /* 長いコードの場合のみ、この枠内だけが横スクロールする */
    white-space: pre; /* Excelのインデントと改行を100%そのまま表示する */
    background-color: #f8f9fa; /* 薄いグレーの背景 */
}


.content-padding {
    margin-bottom: 1rem;
    padding: 0.2rem 0;
    border-bottom: 3px solid #ddd;
}

.sentence-code-set {
    margin: 1rem;
    border: 1.5px solid #ddd;
    padding: 1rem 1.5rem;
    line-height: 1.7;    
}

/* 正誤判定の表示設定 */
.border-circle {
    border-width: 2px;
    border-style: solid;
    border-radius: 8px;
    width: 100%;
    text-align: center;
    padding: 0.7rem 0.1rem;
    /* margin: 1rem 0 0.1rem; */
    margin: 2rem 0 1rem;
}

.true-color {
    border-color: #005070;
    background-color: #005070;
    color: #fff;
}

.false-color {
    border-color: #87263F;
    background-color: #87263F;
    color: #fff;
}

.result-color {
    border-color: #005070;
    background-color: #005070;
    color: #fff;
}

.unselected-color {
    border-color: #e5cf6e;
    background-color: #e5cf6e;
    font-weight: 500;
    /* color: #005070; */
    /* font-size: 100%; */
}

/* 未ログインユーザーに対する注意書き */
.login-notice-slim {
    width: 100%;
    margin: 2rem auto 0;
    padding: 8px 16px;
    background-color: #f1f1e6;
    opacity: 0.8;       /* 不透明度 */
    border: 2px solid #e5cf6e;
    border-radius: 4px;
    /* color: #005070; */
    font-size: 0.85rem;     /* 文字を少し小さく */
    text-align: center;     /* 中央寄せでスマートに */
    box-sizing: border-box;
}

.align-center {
    text-align: center;
}

.align-right {
    text-align: right;
}

.thanks_report {
    text-align: center;
    line-height: 2.5;
}

.thanks_payment_center {
    text-align: center;
    line-height: 2.5;
    font-weight: bold;
}

.thanks_payment {
    /* text-align: center; */
    word-break: break-all;
    line-height: 1.7;
}

.margin-top-1rem {
    margin-top: 1rem;
}

.textbox {
    outline: solid 2px #ddd;
    width: 100%;
}

.scroll-bar {
    /* テキストの折り返しなし */
    white-space: nowrap;
    /* 横方向のスクロールバー */
    overflow-x: auto;
    /* padding: 0 10px; */
    padding: 0 10px 10px;
}

.select-scroll-bar {
    /* テキストの折り返しなし */
    white-space: nowrap;
    /* 横方向のスクロールバー */
    overflow-x: auto;
    /* padding: 0; */
    /* -webkit-overflow-scrolling: touch; */
    /* box-sizing: border-box; */
}

.strong {
    font-weight: bold;
}

.font-small {
    font-size: small;
}

.caution-note {
    padding: 0 5px 10px 15px;
}



/* レイアウト
--------------------------------- */
.wrapper {
    max-width: 1120px;
    margin: auto;
    padding: 0 0.3rem;
}

.wrapper-q {
    max-width: 1120px;
    margin: 1rem 2%;
    padding: 0 0.2rem 1.5rem;
    background-color: #f1f1e6;
    opacity: 0.8;       /* 不透明度 */
    border-radius: 8px;
}

/* 更新履歴 */
.news-list {
    list-style: none outside;   /* リストマーカー：なし マーカーを文章より左側の位置（リストボックスの外側）に表示 */
    margin: 0;
    padding: 0;
}

/* .news-list .list-item a .list-item span{ */
.news-list .news-item a {
    display: flex;
    flex-wrap: nowrap;  /* 1行に並べる */
    color: #222222;
    border-bottom: 1px solid #ddd;
    padding: 20px 20px;
    margin: 0 20px;
}

.news-list .news-item .date{
    margin: 0;
    min-width: 120px;   /* 日付の最小幅*/
    font-size: 1rem;
    color: #999;
    padding: 0 20px 0 0;
}

.news-list .news-item .title{
    margin: 0;
    width: 100%;
}

.content-a {
    color: #222222;
}

.news-list .news-item a:hover 
.title {
    color: #005070;
}

/* .news-list .news-item a:hover .title,
.content a:hover {
    color: #005070;
} */



/* ヘッダー
--------------------------------- */
.cover {
    background-color: #ddd;
    height: 11.5rem;
}

.page-header {
    padding-top: 0.5rem;
}

.page-title {
    font-size: 3rem;
    text-align: center;
    margin: 0.5rem 0 1rem 0;
    line-height: 1.4;
    font-family: "Montserrat", sans-serif;
}

/* ハンバーガーボタン
--------------------------------- */
.header_inner {
    padding: 0 10px; /*左右の余白確保*/
    display: flex; /*ロゴとハンバーガーメニューを横に並べる*/
    align-items: center;
    justify-content: space-between;
    height: inherit; /*親要素の高さを継承*/
    position: relative;
}

.page-description {
    font-size: 95%;
    font-optical-sizing: none;
    font-weight: normal;
    font-style: normal;
    line-height: 1.7;
    color: #222222;
    width: 270px;
}

.header_hamburger {
    width: 40px;
    height: 100%;
}

.hamburger {
    background-color: transparent; /*buttonタグデフォルトスタイルを打ち消し*/
    border-color: transparent; /*buttonタグデフォルトスタイルを打ち消し*/
    z-index: 100000;
}

.hamburger span {
    width: 100%;
    height: 2px;
    background-color: #000;
    position: relative;
    transition: ease .4s; /*ハンバーガーメニュークリック時の三本線の動きを遅延*/
    display: block;
}

.hamburger span:nth-child(1) {
    top: 0;
}

.hamburger span:nth-child(2) {
    margin: 7px 0;
}

.hamburger span:nth-child(3) {
    top: 0;
}

.header_nav {
    display: none;
    position: fixed;       /* 👈 absolute から fixed に変更（スクロール追従） */
    right: 0;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    z-index: 99999;         /* 👈 注意書きより前面に出すために追加（ボタン9999より少し小さく） */
    transform: translateX(100%);
    background-color: #fff;
    transition: ease .4s;
    overflow-y: auto;      /* 👈 メニュー内の項目が多くて画面からはみ出たとき、メニュー内だけをスクロールできるようにする保険 */
}

/* ハンバーガーメニュークリック後のスタイル */
.header_nav.active {
    display: block;
    transform: translateX(0);
}

.hamburger.active span:nth-child(1) {
    top: 5px;
    transform: rotate(45deg);
}

.hamburger.active span:nth-child(2) {
    opacity: 0;
}

.hamburger.active span:nth-child(3) {
    top: -13px;
    transform: rotate(-45deg);
}

.nav_items {
    list-style: none;
    text-align: center;
    margin-bottom: 4rem;
}

.nav_items li {
    border-bottom: 1px solid #ddd;
}

.nav_items li:first-child {
    margin-top: 2rem;
    border-top: 1px solid #ddd;
}

.nav_items a {
    color: #222222;
    display: block;
    padding: 1rem;
}

.nav_items a:hover {
    color: #005070;
}

.page-header .align-center a {
    color:#005070;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}

.main-nav {
    display: flex;
    justify-content: center;
    gap: 2.5rem;
    font-size: 1rem;
    list-style: none;
}

.main-nav a {
    font-weight: 600;
    color: #28373c;
} 

.page-header p {
    color: #28373c;
    font-size: 0.8rem;
    font-style: Bold;
    font-weight: 500;
    padding-bottom: 2px;
}

.font-y {
    color: #e5cf6e;
    /* color: #005070; */
}

.font-s {
    font-size: small;
}

/* ロックアイコン
--------------------------------- */
/* ボタンの基本スタイル（PC・スマホ共通） */
/* .premium-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px; 
    padding: 12px 24px;
    font-size: 16px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-weight: bold;
} */

/* 鍵マーク（画像）のサイズ調整 */
.lock-icon {
    width: 18px;
    height: 18px;
    color: #005070;          /* 👈 鍵の色を元の薄いグレーから指定の色に変更 */
    display: inline-block;
    vertical-align: -3px;    /* 👈 鍵の位置が文字より浮いて見えないように下へ微調整 */
    margin-right: 6px;       /* 👈 鍵と文字の間のすき間（お好みで調整してください） */
}

/* 押せないボタンの見た目（グレーアウト） */
.disabled-btn {
    background-color: #e0e0e0; /* 薄いグレー */
    color: #888888;            /* 濃いグレーの文字 */
    cursor: not-allowed;       /* マウスカーソルを押せない形に */
}

/* 鍵画像自体も少し薄くして馴染ませる場合 */
/* .disabled-btn .lock-icon {
    opacity: 0.6;
} */


/* フッター
https://magazine.techacademy.jp/magazine/19410
--------------------------------- */
.footerFixed {
    /* ブラウザの画面の高さ：ブラウザによって高さは異なるのでvhで指定 */
    min-height: 100%;
    position: relative;
    padding-bottom: 130px;   
    box-sizing: border-box;
}

.footer-about {
    /* max-width: 736px; */
    max-width: 1120px;
    padding: 0 0.5rem;
    margin: 1rem auto 1.5rem;
}

.footer {
    position: absolute; 
    /* 下に固定 */    
    bottom: 0;          
    left: 0;
    /* コピーライトの装飾 */
    width: 100%;        
    height: 130px;
    background-color: #ddd;
    font-family: Montserrat, sans-serif;  
    margin-top: auto;
}

.footer-copyright {
    font-weight: 800;
    font-size: 14px;
    padding: 7px 0 0 0;
    color: #005070;
    margin-right: 10px;
}

.footer-containar {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: 100%;
}

.footer-category {
    font-weight: 420;
    font-size: 13px;
    padding: 0 7px;
    color: #005070;
}

.footer-items {
    text-align: right;
}

.font-big {
    font-size: 100%;
}

/* ボタン
--------------------------------- */
/* ボタンの基本設定 */
.btn {
    display: inline-block;  /* インライン要素をブロックレベル要素に指定*/
    border-radius: 8px;     /* ボタンの角を丸く設定 */
    padding: .55rem 0; /* ボタンのテキストからの内余白を設定（上下、左右） */
    text-align: center;     /* ボタンの中央にテキストを配置 */
}

/* indexページのボタンの色 */
.btn-i {
    background-color: #005070;  /* 背景色 */
    color: #fff;             /* 文字色 */
    width: 80%;             /* ボタンの幅 */
}

.btn-i-prac {
    background-color: #ddd;  /* 背景色 */
    color: #005070;            /* 文字色 */
    border: #005070 solid 2px;
    width: 80%;                 /* ボタンの幅 */
}

/* 練習問題の「〇」「×」ボタン */
.btn-prec-q {
    background-color: #ddd;
    color: #005070;  
    border: 2px solid #005070;  
    width: 80%;                   /* ボタンの幅 */
    font-weight: 500;
}

.btn-q-a {
    background-color: #ddd;
    color: #005070;  
    border: 2px solid #005070;  
    width: 80%;                   /* ボタンの幅 */
    font-weight: 500;
}

/* 問題・解答ページのボタンの余白 */
.btn-margin-q {
    margin: 3rem 0 7rem;
}

.btn-margin {
    margin: 3rem 0;
}

/* モバイルサイトのindexページのボタンの配置 */
.container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px 0;
}

.container-q-btn {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px 0;
}

/* モバイルサイトの問題ページのボタンの配置 */
.btn-layout-q {
    text-align: center;
}

/* headerのボタン */
.btn-nav {
    display: inline-block;
    border-radius: 8px;   
    padding: .1rem .5rem 0.1rem .5rem;
    text-align: center;
    font-size: 90%;    
}

.btn-nav-white {
    background-color: #fff;
    min-width: 150px;                 
}

.btn-nav-gray {
    min-width: 150px;                 
}

.back-circle-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;      /* スマホで押しやすいサイズ（44px以上が理想） */
    height: 44px;
    background-color: #f0f0f0; /* 薄いグレー */
    color: #555555;            /* 矢印の色 */
    border-radius: 50%;        /* 正円にする */
    text-decoration: none;
    transition: background-color 0.2s;
    -webkit-tap-highlight-color: transparent; /* タップ時の青い影を消す */
}
/* タップしたときに少し濃いグレーにする */
.back-circle-btn:active {
    background-color: #e0e0e0;
}

/* フローティングボタン
--------------------------------- */
.floating-back-btn {
    position: fixed;      /* 画面（ウィンドウ）に対して位置を完全に固定 */
    bottom: 30px;        /* 画面の「下」から30ピクセルの位置に浮かせる */

    /* 画面の横方向の「真ん中」に配置 */
    left: 50%;          /* 画面の横幅の「50%（真ん中）」の位置に配置 */
    transform: translateX(-50%);
    
    /* 2枚目の問題ページに高さを合わせた丸型ボタンの装飾 */
    width: 48px;
    height: 48px;
    border-radius: 50%;  /* 完全な丸型にする */
    background-color: #f5f5f5; /* 2枚目画像に近い馴染む薄グレー */
    color: #555555;      /* 矢印（SVG）のデフォルトの色 */
    
    /* SVGアイコンを縦横とも「真中央」に配置する設定 */
    display: flex;
    justify-content: center;
    align-items: center;
    
    /* ボタンの周囲に少し影をつけて、解説文の上に浮いている立体感を出す */
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
    
    /* 長い解説文がスクロールで重なっても、文字の下に隠れないように最前面に出す */
    z-index: 9999;
    
    /* マウスを乗せたときに指マークにし、変化をなめらかにする */
    cursor: pointer;

    /* スマホでタップした時の青い四角い影を消す（これがあると丸型が台無しになるのを防ぎます） */
    -webkit-tap-highlight-color: transparent;
    
    transition: background-color 0.2s, color 0.2s;
}

/* スマホでタップした瞬間（アクティブ時）の演出 */
.floating-back-btn:active {
    transform: translateX(-50%) scale(0.95);    /* ほんの一瞬ボタンを小さくして、押した感覚を出す */
}

/* 
採点結果ページ
--------------------------------- */
.result-category {
    font-size: 14px;
}

/* 採点結果ページのボタン */
.btn-progress {
    background-color: #ddd;  /* 背景色 */
    color: #005070;             
    border: 2px solid #005070;
    width: 310px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

/* 注意書き */
.result-notice {
    max-width: calc(100% - 32px); /* 下の枠線と左右の端をぴったり合わせる */
    margin: 20px auto;
    padding: 16px;
    background-color: #f9f9f9;     /* 画面の邪魔をしない薄いグレー */
    border-left: 3px solid #005070;   /* 落ち着いたグレーのアクセント線 */
    border-radius: 6px;
    box-sizing: border-box;
    text-align: left;              /* 左詰めに整列 */
}

.notice-title {
    font-size: 14px;
    font-weight: bold;
    color: #222222;
    margin: 0 0 8px 0;             /* 下に少し隙間を空ける */
}

.notice-text {
    font-size: 13px;
    color: #666;                   /* 補足文は少し薄めの色に */
    line-height: 1.6;
    margin: 0;
}


/* すべての要素でサイズ計算を共通化（枠線やパディングを含めた幅にする） */
.score-container,
.score-card,
.result,
.result-item,
.result-container,
.result-box {
    box-sizing: border-box;
}

/* 正答率・正答数
--------------------------------- */
/* 正答率・正答数を包むコンテナ（result-containerの手前に配置） */
.score-container {
    display: flex;
    gap: 16px;
    margin: 24px auto;
    padding: 0 16px;
    width: 100%;
}

/* 個別のカード */
.score-card {
    flex: 1;              /* 2つのカードを同じ幅で広げる */
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 8px;
    padding: 16px;
    text-align: center;
}

.score-label {
    font-size: 14px;
    color: #666;
    font-weight: bold;
    margin-bottom: 8px;
}

.score-value {
    font-size: 28px;      /* 数字を大きく目立たせる */
    font-weight: bold;
    color: #005070;       /* サイトのアクセントカラー（青） */
}


/* 解答結果表示
--------------------------------- */

.result {
    width: calc(100% - 32px);    /* 【重要】上の.score-containerの左右padding(16px×2=32px)と同じ分だけ幅を縮める */
    margin: 0 auto 24px auto;    /* 左右をautoにして中央寄せ。これで上のカードと完全に位置が合います */
    /* padding: 16px; */
    padding: 16px 0;
    border: 1px solid #ccc;
    border-radius: 8px;
}

.result-item {
    padding: 16px 16px 8px 16px;
    width: 100%;            
    font-weight: bold;
    color: #666;
    font-size: 14px;
    text-align: center;
}

/* 親要素：箱を並べる全体のエリア */
.result-container {
    display: flex;          /* 横並びにする */
    flex-wrap: wrap;        /* 端にきたら折り返す */
    justify-content: flex-start;    /* 左詰め */
    gap: 10px;    
    padding: 16px 10px;
    width: 100%;            /* 画面いっぱいに広げる */
    max-width: 100%;        
    margin: 0 auto;               /* コンテナ自体を中央寄せにする */
    box-sizing: border-box;
}

  /* 子要素：1問ごとの罫線の箱 */
.result-box {
    width: calc((100% - (10px * 4)) / 5);  /* 箱の横幅（全体の20%から、隙間4個分（12px × 4）を引いて5等分する） */
    height: 80px;           /* 箱の高さ */
    border: 1px solid #ccc; /* 罫線 */
    border-radius: 8px;     /* 角丸（お好みで） */
    display: flex;
    flex-direction: column; /* ナンバーと結果を縦に並べる */
    align-items: center;    /* 中央揃え（横） */
    justify-content: space-between; /* 上下にきれいに分ける */
    overflow: hidden; /* 角丸からはみ出た塗りつぶしをカット */
    background-color: #fff;
}

  /* 問題番号のスタイル */
.question-number {
    width: 100%;
    text-align: center;
    font-size: 14px;
    font-weight: bold;
    padding: 4px 0;
    color: #fff;
}

  /* 正解・不正解のスタイル */
.status {
    font-size: 24px;
    font-weight: bold;
    padding-bottom: 8px;
}

/* --- 正解・不正解の出し分け --- */
/* 正解：上のQを青、下の〇も青、背景はグレー */
.result-box.correct .question-number { 
    background-color: #ddd; 
    color: #005070; 
}

.result-box.correct .status { 
    color: #005070; 
}

/* 不正解：上のQを赤、下の×も赤、背景はグレー */
.result-box.incorrect .question-number { 
    background-color: #ddd; 
    color: #87263F; 
}

.result-box.incorrect .status { 
    color: #87263F; 
}

/* 
マイページ
--------------------------------- */

/* 注意書き */
.progress-notice {
    max-width: 720px;
    margin: 20px auto;
    padding: 16px;
    background-color: #f9f9f9;     /* 画面の邪魔をしない薄いグレー */
    border-left: 3px solid #005070;   /* 落ち着いたグレーのアクセント線 */
    border-radius: 6px;
    box-sizing: border-box;
    text-align: left;              /* 左詰めに整列 */
}



/* 解答ページのボタン配置
--------------------------------- */
.answer-button-container {
    display: flex;
    align-items: center;    /* 上下の中央揃え */
    width: 100%;
    box-sizing: border-box;
    padding: 5px 5px;
    margin: 2rem 0 2rem;
}

.answer-button-item {
    flex: 1;
    display: flex;
    align-items: center;
}

/* 左エリア：戻るボタンを一番左に寄せる */
.answer-button.left {
    flex: 1;
    justify-content: flex-start;
}

.answer-button.right {
    flex: 4;
    justify-content: flex-end;
    justify-content: center;
    flex-direction: column;
    text-align: center; 
}


/* ラジオボタン
--------------------------------- */
.radio-ck-color {
    accent-color: #005070;
}


/* コンテンツ
--------------------------------- */
.about {
    max-width: 736px;
    padding: 0 0.5rem;
    margin: 0.5rem auto 4rem;
}

.wrapper-q {
    padding: 0 0.2rem 1.5rem;
    background-color: #f1f1e6;
    opacity: 0.8;       /* 不透明度 */
    border-radius: 8px;
}

.radio {
    /* margin: 1.5rem 0 3rem; */
    /* margin: 1.5rem 0 2.5rem; */
    margin: 1.5rem 0.2rem 2.5rem 0;
    padding: 0 0 0 1rem;
}

.radio label {
    background-color: #ddd;
}

.radio p {
    padding: 0.5rem 1rem;
}

.radio div {
    /* padding: 0.7rem 0.7rem 1.5rem; */
    padding: 0.5rem 0.7rem 0;
}

.radio-reset-padding {
    padding: 10px 0 5px 0 !important; 
}

.item-question-answer {
    margin-top: 1.5rem;
    padding: 0.5rem 0.3rem 0.5rem 0;
}


/* プライバシーポリシー
--------------------------------- */
.item-category {
    font-weight: 500;
    font-size: 1.1rem;
    /* margin-bottom: 0.5rem; */
    margin-bottom: 1rem;
    padding: 0 5px
}

.item-bold {
    margin: 1.5rem 0 1rem 20px;
    font-weight: bolder;
}

.main-sentense {
    margin-bottom: 1.5rem;
    padding: 0 5px
}

/* 合格者の声
--------------------------------- */
.testimonial-wrapper {
    padding: 0 20px;
}

.testimonial-note {
    padding-bottom: 0.5rem;
    line-height: 1.7;
}

.testimonial-item {
    border-top: 1px solid #ddd;
    padding-top: 1rem;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
}

.testimonial-content {
    padding: 10px 0 10px 10px;
}


/* セレクトボックス
--------------------------------- */
select {
    border: 2px solid #ddd;
    padding-left: 10px;
    position: relative;
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.select_container {
    position: relative;
    /* width: 280px; */
    width: 100%;
}

.select_container::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 12px;
    width: 7px;
    height: 7px;
    border-top: 2px solid #999;
    border-left: 2px solid #999;
    pointer-events: none;
    transform: translateY(-50%) rotate(
-135deg);
}

/* サイドバー
--------------------------------- */
.side-menu{
    list-style: none;
    text-align: center;
    margin-bottom: 4rem;
}

.side-menu li {
    border-bottom: 1px solid #ddd;
}

.side-menu a {
    color: #222222;
    display: block;
    padding: 1rem;
}

.side-menu a:hover {
    color: #005070;
}

.heading-mediam {
    font-size: 2.0rem;
    text-align: center;
}

/* テーブル
--------------------------------- */
.table5 {
    max-width: 720px;
    width: 100%;
    /* 隣接セルの境界線を同士を間を空けずに重ねて表示 */
    border-collapse: collapse;
    margin: auto;
    border: solid 0.5px #CCC;
}

/* テーブルの1列目だけに設定 */
.table5 th{
    /* background: #ddd; */
    background: #005070;
    color: #fff;
    text-align: center;
    vertical-align: center;
    border: solid 0.5px #ccc;
    padding: 6px 0;
    font-weight: normal;
}

.table5 td {
    border: solid 0.5px #CCC;
    padding: 3px 5px ;
    font-size: small;
}

.table5 td:first-child {
    width: 45%;
}

.table5 td:nth-child(2) {
    width: 35%;
    text-align: center;
}

.table5 td:nth-child(3) {
    width: 20%;
    text-align: center;
}

.table5 tr.row-expired {
    background-color: #f9f9f9; /* 行全体の背景を薄いグレーに */
    color: #888888;            /* 行全体の文字色を薄く（グレーアウト） */
}

/* 終了行の中の「終了」テキストを少し引き締める（お好みで） */
.table5 tr.row-expired td:nth-child(3) {
    font-weight: bold;
}

/* 「契約中」のボタン化（リンクタグをボタン風にする） */
.btn-status-active {
    display: inline-block;
    padding: 4px 10px;       /* スマホで押しきりやすいサイズ */
    border-radius: 4px;      /* 角丸にしてボタン感を出す */
    font-size: 12px;
    font-weight: bold;
    text-decoration: none;   /* 下線を消す */
    background-color: #ddd;  /* 背景色 */
    color: #005070;            /* 文字色 */
    border: #005070 solid 1px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15); /* ほんの少し立体感を出す影 */
}

/* 押し込んだときのアクション（スマホのタップ時） */
.btn-status-active:active {
    transform: translateY(1px);
    box-shadow: none;
}


/* 進捗ページのテーブル
--------------------------------- */
/* テーブル全体のコンテナ（スマホではみ出さないためのガード） */
.table-container {
    max-width: 720px;
    width: 100%;
    /* margin: auto; */
    margin: 2rem 0;
    padding: 0 10px;
    box-sizing: border-box;
}

.progress-table {
    width: 100%;
    border-collapse: collapse;
    border: solid 0.5px #ccc;
    font-size: 14px;
}

/* マイページと統一感を持たせたヘッダーカラー */
.progress-table th {
    background: #005070;
    color: #ffffff;
    text-align: center;
    padding: 8px 5px;
    font-weight: bold;
    font-size: 13px;
    border: solid 0.5px #005070;
}

.progress-table td {
    border: solid 0.5px #ccc;
    padding: 8px 8px;
    vertical-align: middle;
}

/* 列ごとの横幅バランスの調整 */
.progress-table td:first-child { width: 50%; } /* 章名 */
.progress-table td:nth-child(2) { width: 25%; text-align: center; } /* 正答数 */
.progress-table td:nth-child(3) { width: 25%; text-align: center; } /* 正答率 */

/* 章番号の装飾 */
.cat-num {
    font-weight: bold;
    color: #005070;
    margin-right: 5px;
}

/* 🔥 進捗バー（インラインメーター）の立体デザイン */
.progress-bar-wrapper {
    position: relative;
    background-color: #e0e0e0; /* 未達成部分のグレー */
    border-radius: 4px;        /* 好みに合わせて角丸の具合を調整 */
    height: 20px;
    width: 100%;
    overflow: hidden;
}

.progress-bar-fill {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    background-color: #e5cf6e; /* 達成度を表す鮮やかなブルー */
    z-index: 1;                 /* 文字より下に配置 */
    transition: width 0.3s ease;
}

/* 3. 中央に表示するパーセンテージ文字 */
.progress-text {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    
    /* ➔ ここで「文字だけ」を縦横中央に綺麗に配置します */
    display: flex;
    align-items: center;
    justify-content: center;
    
    font-size: 11px;
    font-weight: bold;
    color: #333333; /* 文字色（好みに合わせて変更してください） */
    z-index: 2;     /* 🔥 最も重要：水色バーより上に重ねて絶対につぶされないようにする */
}


.table6 {
    max-width: 720px;
    width: 100%;
    /* 隣接セルの境界線を同士を間を空けずに重ねて表示 */
    border-collapse: collapse;
    margin: auto;
    border: solid 0.5px #222;
}

/* テーブルの1列目だけに設定 */
.table6 th{
    background: #ddd;
    text-align: left;
    vertical-align: center;
    border: solid 0.5px #222;
    padding: 10px 3px 10px 10px;
    font-weight: normal;
}

.table6 td {
    border: solid 0.5px #222;
    padding: 10px 3px 10px 10px;
}

.table6 th {
    width: 25%;
}

.table1,
.table2 {
    max-width: 650px;
    width: 100%;
    /* 隣接セルの境界線を同士を間を空けずに重ねて表示 */
    border-collapse: collapse;
    margin: auto;
    border: solid 0.5px #222;
}

/* テーブルの1列目だけに設定 */
.table1 th,
.table2 th{
    background: #ddd;
    /* color: #005070; */
    text-align: center;
    vertical-align: center;
    border: solid 0.5px #222;
    padding: 3px 0;
    font-weight: normal;
}

.table1 th {
    width: 20%;
}

.table1 td,
.table2 td {
    border: solid 0.5px #222;
    padding: 3px 10px ;
}

.table3,
.table4 {
    max-width: 650px;
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    margin: auto;
    border: solid 0.5px #222;
}

.table3-th,
.table4 th {
    background: #ddd;
    text-align: center;
    vertical-align: center;
    border: solid 0.5px #222;
    padding: 3px 0;
    font-weight: normal;
}

.table3-td,
.table4 td {
    border: solid 0.5px #222;
    padding: 3px 5px 3px 7px ;
}

.table3-th {
    width: 20%;
}

.table3-td {
    width: 80%;
}

.table3-td div {
    max-width: 100%;
    overflow-x: auto;
    white-space: nowrap;
    background-color:#f5f5f5;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
}

/* テーブルの1列目の幅設定
　 ※rowspanを設定しているため、項目の1列目のみに設定 */
.table2 th:first-child {
    width: 40%;
}

.table4 th:first-child,
.table4 td:first-child {
    width: 20%;
    text-align: center;
}

.table-caption {
    font-weight: 450;
    font-size: 1rem;
    margin-bottom: 0.5rem;
    /* margin-left:1rem; */
    padding: 0 5px
}

/* markdownテーブル */
.markdown-table {
    border-collapse: collapse;
}

.markdown-table, 
.markdown-table th, 
.markdown-table td {
    border: 1px solid #222222;
}

.markdown-table th,
.markdown-table td:first-child {
    background-color: #ddd;
    font-weight: normal;
    
}

.markdown-table th:first-child,
.markdown-table td:first-child {
    min-width: 25px;
    text-align: center;
}

.markdown-table th:nth-child(n+2), 
.markdown-table td:nth-child(n+2) {
    padding: 0 2px;
    min-width: 75px;
    text-align: center;    
}


/* 解説の項目名あり（1行目）テーブル */
.field-name-table {
    border: solid 0.5px #222;
}

.field-name-table th {
    background-color: #ddd;
    font-weight: normal;
}


/* Googleアドセンス広告表示
--------------------------------- */

/* 広告未配信の広告ユニットを非表示にする方法 */
ins.adsbygoogle[data-ad-status="unfilled"] {
    display: none !important;
}

.flex {
    display: flex;
    flex-wrap: wrap;
    justify-content:center;
}

.image {
    width: 200px;
    height: auto;
    overflow: hidden;
    position: relative;
    padding: 0 45px;
}

.text-affiliate {
    width: 300px; 
    margin: 0.7rem;
}

.btn-affiliate {
    background-color: #e5cf6e;
    color: #005070;
    width: 95%;
    height: 45px;
    margin: 0.5rem;
}

.ad-box-01 {
    margin-top: 50px;
    margin-bottom: 100px;
}

.ad-box-02 {
    margin-top: 50px;
    margin-bottom: 50px;
}

.mobile-only {
    display: none; /* 初期設定: 非表示 */    
}

.mobile-only-flex {
    display: none; /* 初期設定: 非表示 */    
}

.pc-only {
    display: none; /* 初期設定: 非表示 */    
}

.pc-only-flex {
    display: none; /* 初期設定: 非表示 */    
}

/* コマンドリンク
--------------------------------- */

.content a,
.link a,
.li-a {
    color: #005070;
}

.content a:visited,
.link a:visited,
.li-a:visited {
    color: #87263F; /* 訪れたリンクの色を設定 */
}

.content a:hover, 
.link a:hover,
.li-a:hover {
    color: #e5cf6e;    /* リンクhover時の文字色*/
}


/* 用語集
--------------------------------- */

.glossary-p {
    margin: 0 0 1rem 1rem;
    padding: 0.5rem 0;
}

/* 合格体験記・ユーザー認証・購入プラン確認
--------------------------------- */

.testimonial_form {
    margin: 0 50px 2rem 50px;
}

.plan_confirmation_form {
    margin: 0 0px 2rem 18px;
}

.auth_form {
    margin: 0 50px 2rem 25px;
}


.testimonial_form_row,
.auth_form_row {
    display: flex;
    flex-direction: column; /* ← 縦に並べる */
    margin-bottom: 1rem;
    /* grid-template-columns: 1fr;  */
}

.testimonial_form_lavel {
    vertical-align: top;
}

.testimonial_form_text {
    border: solid 0.5px #ddd;
    max-width: 150px;
}

.auth_form_text {
    border: solid 0.5px #ddd;
    max-width: 400px;
}

.testimonial_form_textarea {
    border: solid 0.5px #ddd;
    height: 120px;
}

.testimonial_form_select {
    border: solid 0.5px #ddd;
    max-width: 120px;
}

.testimonial_form_select_container {
    position: relative;
    width: 280px;
}

.testimonial_form_select_container::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 12px;
    width: 7px;
    height: 7px;
    border-top: 2px solid #999;
    border-left: 2px solid #999;
    pointer-events: none;
    transform: translateY(-50%) rotate(
-135deg);
}

.testimonial_form_btn, 
.auth_form_btn {
    margin-top: 2rem;
    border-radius: 8px;
    background-color:#ddd;
    color:#005070;
    width: 100px;
    border: solid 2px #005070;
    padding: 2px 0;
}

.plan_confirmation_form_btn {
    margin-top: 0.5rem;
    border-radius: 8px;
    background-color:#ddd;
    color:#005070;
    width: 100px;
    border: solid 2px #005070;
    padding: 2px 0;
}

.error {
    color:#87263F;
    font-size: 1em;
    margin-bottom: 1rem;
    font-weight: bold;
}

.warning {
    color:#87263F;
}

.new {
    color:#fff;
    background-color:#e5cf6e;
    font-weight: bold;
    font-size: small;
    border-radius: 3px;
    padding: 2px 6px;
}

.congratulations-h2 {
    text-align: center;
    margin: 3rem 0;
}

.congratulations-p {
    text-align: center;
    margin: 2rem 0;
    line-height: 1.9;
}


/* 画像表示
--------------------------------- */
.img {
    width: 100%;            /* 親要素の幅にフィットさせる */
    height: auto;           /* 縦横比を維持 */
    max-height: 300px;      /* 高さの上限だけつける */
    object-fit: contain;    /* 中身が枠からはみ出さないよう調整 */
    display: block;
    margin: 0 auto;
}

/* ログイン状態表示
--------------------------------- */
.user-status {
    text-align: left;
    margin: 15px 0 15px 7px;
    font-size: 0.9rem;
}

.user-status a {
    color: #222222;
    text-decoration: none;
    margin: 0 5px;
}


/* モバイル版
--------------------------------- */

@media (max-width: 768px) {    
    /* モバイル画面でのみ表示 */
    .mobile-only {
        display: block; 
    }

    .mobile-only-flex {
        display: flex; 
    }
}

@font-face {
    font-family: "FixCircledNumber"; /* バグ回避用の新しいフォント名を作る */
    src: local("Noto Sans JP"), local("sans-serif"); /* Noto Sansを指定 */
    unicode-range: U+2460-2473; 
}


/* デスクトップ版
--------------------------------- */
/* @media (min-width: 800px) { */
@media (min-width: 769px) {
    body {
        /* ➔ PCでは、今大満足されているお気に入りのフォント順をそのまま適用します */
        font-family: "FixCircledNumber", "Consolas", "Courier New", "Montserrat", "Noto Sans JP", sans-serif;
    }

    .item {
        margin: 1.5rem 0 3rem;
        padding: 0.5rem 0.5rem;
    }

    /* PC画面でのみ表示 */
    .pc-only {
        display: block;
    }

    .pc-only-flex {
        display: flex; 
    }
    
    /* indexページの模擬試験ボタン */
    .btn-i {
        background-color: #005070;  /* 背景色 */
        color: #fff;            /* 文字色 */
        width: 200px;                 /* ボタンの幅 */
    }

    /* indexページの練習問題ボタン */
    .btn-i-prac {
        background-color: #ddd;  /* 背景色 */
        color: #005070;            /* 文字色 */
        border: #005070 solid 2px;
        width: 320px;                 /* ボタンの幅 */
    }

    /* 練習問題ページの「〇」「×」ボタン */
    .btn-prec-q {
        color: #005070;             
        border: 2px solid #005070;
        width: 310px;
        font-weight: bold;
    }

    /* indexページのボタン配置 */
    .container {
        /* margin: 0 30px 2rem 30px; */
        margin: 0 50px 2rem 50px;
        display: flex;
        flex-wrap: wrap;
        justify-content:space-between;
    }

    .container-q {
        /* margin: 1rem 1rem 2rem; */
        margin: 1rem 1rem 2rem;
        border: 1.5px solid #ddd;
        padding: 1rem 1.5rem 2rem;
        line-height: 1.7;
        border-radius: 8px;
    }

    .container-progress {
        /* margin: 3rem 50px 2rem; */
        margin: 3rem 50px 5rem;
        display: flex;
        flex-wrap: wrap;
        justify-content:space-between;
    }

    .wrapper-q {
        max-width: 900px;
        margin: 3rem auto;
        padding: 0 1.5rem 1.5rem;
        background-color: #f1f1e6;
        border-radius: 8px;
        opacity: 0.8;
    }
    
    .main-contents{
        display: flex;
        justify-content: space-between;
    }

    .main-contents-ceter{
        display: flex;
        justify-content: center;
    }

    .post {
        width: 70%;
        /* width: 60%; */
        /* order: 2; */
    }

    .sidebar {
        width: 25%;
        /* width: 20%; */
        margin-top: 2rem;
        /* order: 3; */
    }

    .post-quenstion-answer {
        width: 70%;
        order: 2;
    }

    .ad-1 {
        width: 12%;
        order: 1;
    }

    .ad-2 {
        width: 12%;
        order: 3;
    }


    /* ヘッダー
    --------------------------------- */
    .page-header {
        padding-top: 1.5rem;
    }
    
    .page-description {
        font-size: 100%;
        width: auto;
    }

    .page-title {
        font-size: 3.5rem;
        text-align: center;
        margin: 0.5rem 0 0.5rem 0;
        line-height: 1.4;
        font-family: "Montserrat", sans-serif;
    }

    .page-header .align-center a {
        color:#005070;
        font-optical-sizing: auto;
        font-weight: 700;
        font-style: normal;
    }
    
    .main-nav {
        display: flex;
        justify-content: center;
        gap: 2.5rem;
        font-size: 1rem;
        list-style: none;
    }
    
    .main-nav a {
        font-weight: 600;
        color: #28373c;
    }
    
    .page-header p {
        color: #28373c;
        font-size: 0.9rem;
        /* font-style: Bold; */
        font-weight: 500;
        padding-bottom: 2px;
    }

    .btn-nav {
        display: inline-block;
        border-radius: 8px;   
        padding: .5rem 1.5rem 0.8rem 1.5rem;
        text-align: center;
        font-size: 100%;    
    }

    .btn-nav-white {
        background-color: #fff;
        min-width: 150px;                 
    }

    .btn-nav-gray {
        min-width: 150px;                 
    }

    .flex {
        display: flex;
    }
    
    .image {
        width: 200px;
        height: auto;
        overflow: hidden;
        position: relative;
        padding: 0 45px;
    }

    .text-affiliate {
        width: 400px; 
        margin: 0.7rem;
    }

    .btn-affiliate {
        background-color: #e5cf6e;
        color: #005070;
        width: 200px;
        height: 45px;
        margin: 0.5rem;
    }

    .pc-only {
        display: block; /* モバイル画面でのみ表示 */
    }

    .category {
        font-size: 1rem;
        font-weight: normal;
        color: #005070;
        width: 400px;
        text-align: right;
    }

    .container-flex {
        /* margin: 1rem 0rem; */
        margin: 0.5rem 0rem;
        border: 1.5px solid #ddd;
        /* padding: 1rem 1.5rem 2rem; */
        padding: 1rem 1.2rem 2rem;
        line-height: 1.7;
        border-radius: 8px;
        width: 47%;
    }

    .table3,
    .table4 {
        max-width: 750px;
        /* max-width: 650px; */
        width: 100%;
        /* 隣接セルの境界線を同士を間を空けずに重ねて表示 */
        border-collapse: collapse;
        margin: auto;
        border: solid 0.5px #222;
    }

    /* テーブルの1列目だけに設定 */
    .table3-th, 
    .table4 th {
        background: #ddd;
        text-align: center;
        vertical-align: center;
        border: solid 0.5px #222;
        padding: 3px 0;
        font-weight: normal;
    }

    .table3-th {
        /* width: 50px; */
        width: 15%;
    }

    .table3-td,
    .table4 td {
        border: solid 0.5px #222;
        padding: 10px 10px ;
    }

    .table3-td {
        /* width: 50px; */
        width: 85%;
    }

    .table3-td-div {
        max-width: 100%;
        white-space: nowrap;
        overflow-x: auto;
        background-color:#f5f5f5;
        /* display: block; */
    }

    .select_container {
        position: relative;
        /* width: 560px; */
        width: 100%;
    }

    .testimonial_form_row {
        display: grid;
        /* ↓ ラベル幅固定＋入力欄が残り全部 */
        grid-template-columns: 120px 1fr;
        align-items: start;
        gap: 10px;
        margin-bottom: 15px;
    }

    .auth_form_row {
        display: grid;
        /* ↓ ラベル幅固定＋入力欄が残り全部 */
        grid-template-columns: 150px 1fr;
        align-items: start;
        gap: 10px;
        margin-bottom: 15px;
    }

    .gender_radio_group {
        display: flex;
        gap: 20px;
    }

    /* ログイン状態表示
    --------------------------------- */
    .user-status {
        text-align: right;
        margin: 10px 0;
        font-size: 0.9rem;
    }

    .user-status a {
        color: #222222;
        text-decoration: none;
        margin: 0 5px;
    }

    /* ヘッダー
    --------------------------------- */
    .cover {
        height: 14rem;
    }

    .sentense {
        padding: 0 25px 0 30px;
    }

    .list-style {
        list-style: none;
        padding: 0 25px 0 45px;
    }

    .content {
        /* padding: 0 25px; */
        padding: 0 25px 0 15px;
        /* line-height: 1.9; */
        line-height: 1.7;
        
    }

    .content-1 {
        padding: 0 45px;
        line-height: 1.9;
        
    }

    .table-caption {
        margin-left:1rem;
        padding: 0 5px
    }

    /* フッター
    --------------------------------- */
    .footer-about {
        max-width: auto;
    }
    
    .footer-border-left {
        border-left: 1px solid #005070;
    }
    
    .footer-border-right {
        border-right: 1px solid #005070;
    }
    
    .footer-containar {
        display: flex;
        flex-wrap: wrap;
        justify-content: right;
        flex-direction: row-reverse;
        gap: 15px 0;
    }

    .content-ol {
        padding: 0 0 0 70px;
        line-height: 1.9;
    }

    /* 購入プラン確認
    --------------------------------- */
    .plan_confirmation_form {
        margin: 0 0px 2rem 50px;
    }

    .content_payment {
        padding: 0 20px 0 20px;
        line-height: 1.7;   
    }

    .item-bold {
        margin: 1.5rem 0 1rem 20px;
        font-weight: bolder;
    }

    .list-style3 {
        list-style: none;
        padding: 0 25px 0 60px;
    }

    .table5 td {
        border: solid 0.5px #222;
        padding: 3px 5px ;
        font-size: 95%;
        text-align: center;
    }
    
    .table5 td:first-child {
        width: 55%;
    }
    
    .table5 td:nth-child(2) {
        width: 25%;
    }
    
    .table5 td:nth-child(3) {
        width: 20%;
    }

    .img-frame2 {
        margin: 1rem 0 2rem 1.5rem;
        height: 150px;
    }

    .sentense2 {
        padding: 0 25px 7px 25px;
    }

    .sentense3 {
        padding: 0 50px;
    }

    .list-style6 {
        list-style: none;
        padding: 0 70px;
    }

    .item-q {
        font-size: 1.3rem;
        font-weight: bold;
        color: #005070;
    }

    .radio {
        /* margin: 1.5rem 0 3rem; */
        /* margin: 1.5rem 0 2.5rem; */
        margin: 1.5rem 0 2.5rem 0.5rem;
        padding: 0 0 0 1rem;
    }

    /* フローティングボタン
    --------------------------------- */

    .floating-back-btn {
        position: fixed;
        bottom: 30px; /* 下からの高さはそのまま固定 */
    
        left: 50%; /* 1. まずボタンを画面の「真ん中（50%）」に持ってきます */
        
        /* 
        【計算の仕組み】
        画面の左端から「15%」の位置が、中央コンテンツ（70%）のちょうど左端になります。
        （計算式: (100% - 70%) ÷ 2 = 15%）
        
        そこから、さらにボタン自体の横幅（48px）の分だけ左にずらし、
        ちょっとした隙間（例：15px）を空けた位置に自動配置します。
        */
        left: calc(15% - 48px + 100px);
    
        /* ボタンの丸型デザインや影（既存のコードはそのまま） */
        width: 48px;
        height: 48px;
        border-radius: 50%;
        background-color: #f5f5f5;
        color: #555555;
        display: flex;
        justify-content: center;
        align-items: center;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
        z-index: 9999;
        text-decoration: none;
        cursor: pointer;
    }

    /* マウスを乗せたとき（ホバー時）の演出 */
    .floating-back-btn:hover {
        background-color: #e0e0e0; /* ボタンの背景を少し濃いグレーに */
        color: #111111;            /* 中の矢印の色をクッキリした黒に連動して変える */
    }

    /* 解答結果表示
    --------------------------------- */

    /* 親要素：箱を並べる全体のエリア */
    .result-container {
        display: flex;          /* 横並びにする */
        flex-wrap: wrap;        /* 端にきたら折り返す */
        justify-content: flex-start;    /* 左詰め */
        gap: 12px;              /* 箱と箱の間の隙間 */
        padding: 16px;
        width: 100%;            /* 画面いっぱいに広げる */
        max-width: calc(100% - 32px); /* 外枠のpadding分を考慮 */
        margin: 0 auto;               /* コンテナ自体を中央寄せにする */
        box-sizing: border-box;
    }

    /* 子要素：1問ごとの罫線の箱 */
    .result-box {
        width: calc((100% - (12px *9)) / 10);   /* 箱の横幅 */
        height: 80px;           /* 箱の高さ */
        border: 1px solid #ccc; /* 罫線 */
        border-radius: 8px;     /* 角丸（お好みで） */
        display: flex;
        flex-direction: column; /* ナンバーと結果を縦に並べる */
        align-items: center;    /* 中央揃え（横） */
        justify-content: space-between; /* 上下にきれいに分ける */
        overflow: hidden; /* 角丸からはみ出た塗りつぶしをカット */
        background-color: #fff;
    }

}