/* レスポンシブ対応のスタイル - パスワード入力画面 */
/* PC/SP表示切替用クラス */
.pc-only {
    display: block;
}
.sp-only {
    display: none;
}

/* メディアクエリによるスマホ表示切り替え */
@media screen and (max-width: 768px) {
    /* ====== 基本設定 ====== */
    html, body {
        width: 100%;
        margin: 0;
        padding: 0;
        font-size: 16px;
        line-height: 1.4;
    }
    
    /* PC/SP表示切替 */
    .pc-only {
        display: none;
    }
    .sp-only {
        display: block;
    }
    
    /* ====== コンテナ設定 ====== */
    #container, #container_in {
        width: 100%;
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    
    #container_bottom {
        width: 100%;
        margin: 0;
        padding: 0;
    }
    
    /* ====== ヘッダー ====== */
    #header {
        width: 100%;
        margin: 0;
        padding: 10px;
        box-sizing: border-box;
        text-align: center;
    }

    div[style*="clear:both; overflow:hidden; width:800px;"] {
        width: 100% !important;
    }
    
    #header_logo {
        width: 100% !important;
        margin: 0;
        padding: 0;
        text-align: center;
        float: none;
    }
    
    #header_text {
        width: 100% !important;
        margin: 10px 0;
        padding: 0;
        font-size: 1.2em;
        line-height: 1.4;
        text-align: center;
        float: none;
    }
    
    #header div[style*="cclear:both; overflow:hidden; width:740px; margin-top:5px;"] {
        width: 100% !important;
    }
    
    /* PC表示用要素を非表示 */
    #content_of_page_bar {
        display: none;
    }
    
    /* スマホ版ヘッダー */
    #content_of_page_bar_sp {
        padding: 10px 15px;
        background-color: #878787;
        border-bottom: 1px solid #ccc;
        margin-bottom: 15px;
        display: block;
        border-radius: 5px;
    }
    
    .sp-page-title {
        font-size: 2em;
        font-weight: bold;
        color: #ffffff;
    }
    
    .sp-language-switcher {
        font-size: 1.3em;
        text-align: right;
    }
    
    .sp-language-switcher .active {
        font-weight: bold;
        color: #ffffff;
        font-size: 0.7em;
    }
    
    .sp-language-switcher a {
        color: #dddddd;
        text-decoration: none;
        padding: 2px 5px;
        font-size: 0.7em;
    }
    
    /* ====== メインコンテンツ ====== */
    #middle {
        margin-top: 20px;
    }
    
    #contents, #contents_in {
        width: 100%;
        margin: 0;
        padding: 0 10px;
        box-sizing: border-box;
        font-size: 1.1em;
    }
    
    /* ====== パスワード入力エリア ====== */
    #passArea {
        width: 100%;
        max-width: 320px;
        margin: 20px auto 30px;
        padding: 15px;
        background-color: #f5f5f5;
        border-radius: 8px;
        box-shadow: 0 2px 4px rgba(0,0,0,0.1);
        box-sizing: border-box;
        overflow: hidden;
    }

    #passArea input[type="password"]{
        width: 100% !important;
    }
    
    #passArea form {
        width: 100%;
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    
    #passArea table {
        width: 100%;
        margin: 0;
        padding: 0;
        border-collapse: collapse;
        box-sizing: border-box;
        table-layout: fixed;
    }
    
    #passArea tr, #passArea td {
        display: block;
        width: 100%;
        box-sizing: border-box;
        padding: 5px 0;
    }
    
    #passArea .passTitle {
        font-size: 1.3em;
        font-weight: bold;
        color: #555;
        margin-bottom: 10px;
        text-align: center;
    }
    
    #passBox {
        width: 100%;
        padding: 12px;
        font-size: 16px;
        border: 1px solid #ccc;
        border-radius: 4px;
        box-sizing: border-box;
    }
    
    #passArea .passBtn {
        text-align: center;
        margin-top: 15px;
    }
    
    #passArea input[type="submit"] {
        width: 80%;
        padding: 12px 20px;
        background-color: #878787;
        color: #fff;
        border: none;
        border-radius: 4px;
        font-size: 1.2em;
        font-weight: bold;
        cursor: pointer;
    }
    
    table[border="0"][cellspacing="0"][cellpadding="0"] tbody,
    table[border="0"][cellspacing="0"][cellpadding="0"] tr,
    table[border="0"][cellspacing="0"][cellpadding="0"] td,
    table[border="0"][cellspacing="0"][cellpadding="5"] tbody,
    table[border="0"][cellspacing="0"][cellpadding="5"] tr,
    table[border="0"][cellspacing="0"][cellpadding="5"] td {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }
    
    
    /* ====== フッター ====== */
    .koumoku {
        width: 100%;
    }
    
    .naiyou {
        width: 100%;
        padding: 0;
    }
    
    .naiyou img[src*="dot_bar.jpg"] {
        width: 100%;
        height: auto;
        margin: 0 auto;
    }
    
    /* テーブル行とセル */
    table[border="0"][cellspacing="0"][width="100%"] {
        width: 100%;
        margin: 10px 0;
    }
    
    table[border="0"][cellspacing="0"][width="100%"] tr {
        display: flex;
        flex-direction: column;
    }
    
    table[border="0"][cellspacing="0"][width="100%"] td {
        width: 100%;
        display: block;
        padding: 5px;
        text-align: center;
        box-sizing: border-box;
    }
    
    table[border="0"][cellspacing="0"][width="100%"] td[align="right"] {
        text-align: center;
        margin-top: 15px;
    }
    
    /* お問い合わせ部分 */
    div[style*="width:740px"] {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 10px;
        box-sizing: border-box;
        overflow: visible;
    }
    
    div[style*="width:540; padding:0px;margin-left:95px; text-align:center;"],
    div[style*="clear:both; padding:0px;margin:0px; text-align:center;"] {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 10px;
        box-sizing: border-box;
    }
    
    /* お問い合わせテーブル */
    table[border="1"][cellpadding="0"][cellspacing="0"][style*="border-collapse: collapse"] {
        width: 100% !important;
        margin: 15px auto;
        border-collapse: collapse;
        box-sizing: border-box;
    }
    
    table[border="1"][cellpadding="0"][cellspacing="0"] tr {
        display: block;
    }
    
    table[border="1"][cellpadding="0"][cellspacing="0"] td {
        display: block;
        width: 100%;
        padding: 5px;
        text-align: center;
        box-sizing: border-box;
    }
    
    /* リンクとテキスト */
    .naiyou a {
        display: inline-block;
        padding: 5px 0;
        font-size: 0.9em;
        color: #000000;
        text-decoration: underline;
    }
    
    /* nobrタグの調整 */
    nobr {
        white-space: normal;
    }
}
