@charset "UTF-8";

/* base style
-----------------------------------------------*/
body {
    background-color:#F7F7F7;
    color:#5B5B5B;
}

body.ja {
    font-family: 'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro',sans-serif;
}

a {
    color:#5B5B5B;
    text-decoration:underline;
}

a:hover {
    color:#0094DA;
    text-decoration:underline;
}

/* contents style
-----------------------------------------------*/

/*
- デフォルト
- 幅768px未満(携帯)
- デバイス縦向き
*/
#boxFrame {
    margin-top: 15px;
    margin-bottom: 20px;

    background-color:#FFFFFF;
    border:1px solid #ADADAD;
    border-radius:4px;
    -webkit-border-radius:4px;
       -moz-border-radius:4px;
    box-shadow: 0px 0px 20px #0000003D;
}
#areaLogo {
    padding: 0px;
    text-align: center;
    margin: 2px 2px 2px 2px;
}
#areaForm {
    padding: 0px;
    margin: 34px 24px 32px 24px;
}
.boxContents {
    padding: 0px;
    margin: 0px 24px 32px 24px;
}
#loggedInAsArea {
    margin: 12px 0px 8px 0px;
}
#msgRequirePasswordChange {
    margin: 0px 8px 0px 8px;
}

.info-box {
    background-color:#5e6976;
    color:#FFFFFF;
    border-radius: 4px;
    margin: 16px 0px 32px 0px;
    padding:24px 0px 22px 0px;
    text-align: center;
    font-weight: bold;
    font-size: 13px;
}

.login-logo {
    display: inline-block;
    object-fit: contain;
}
.login-message {
    margin-bottom: 15px;
    white-space: pre-wrap;
    font-weight: bold;
}
.info-modal-header{
    border-bottom: none;
}
.info-modal-footer{
    justify-content: center;
    border-top: none;
}
.info-modal-title{
    font-weight: bold;
}
.info-modal-dialog{
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    overflow-y: initial;
}
.info-modal-content{
    width: 480px;
    padding: 16px 16px 0px 16px;
}
.selected-li{
    background-color: #e9ecef;
}
.facial-take-picture-modal-dialog{
    max-width: 560px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    overflow-y: initial;
}
.facial-take-picture-modal-content{
    width: 560px;
    padding: 28px 32px 32px 32px;
}
@media screen and (max-width: 679px) {
    .facial-take-picture-modal-content {
        padding: 13px 15px 15px 15px;
    }
}
.facial-take-picture-modal-footer{
    margin-top: 25px;
    border-top: none !important;
    padding: 0px 0px 0px 0px !important;
    justify-content: space-between;
    align-items: flex-start;
}
.facial-take-picture-modal-footer-end-area{
    display: flex;
    align-items: flex-start;
}
.facial-take-picture-modal-cancel-button{
    margin-left: 8px;
}
#facial-camera-switch-button {
    font-size: 13px;
    display: flex;
    background-color: #F6FAFE;
    width: 128px;
    height: 44px;
    border: 1px solid #CCCCCC;
    border-radius: 4px;
    opacity: 1;
    display: flex;
    align-items: center;
}
.facial-camera-switch-button-icon {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    content: "";
    background: url('/idp/img/icon_camera_switch.svg') no-repeat;
    background-size: contain;
    margin-left: 4px;
}
.facial-camera-switch-button-text {
    min-width: 85px;
    color: #212529;
}

.username-confirm-modal-content{
    /* Layout Properties */
    align-items: center;
    /* UI Properties */
    background: #FFFFFF 0% 0% no-repeat padding-box;
    box-shadow: 0px 12px 16px #00000066;
    opacity: 1;
    /* !importantを設定しない場合modal-content classのwidth: 100%;が優先して適用されてしまう */
    width: 70% !important;
}

.username-confirm-modal-header {
    /* Layout Properties */
    width: 100%;
    min-height: 118px;
    margin: 40px 32px 12px;
    /* UI Properties */
    text-align: center;
    font: normal normal normal 20px/30px;
    letter-spacing: 0px;
    color: #444444;
    opacity: 1;
}

.username-confirm-modal-login-form {
    display: contents;
}

.username-confirm-modal-password-form {
    width: 100%;
    padding: 12px 0px;
    margin-bottom: 12px;
    background-color: #F3F3F3;
    opacity: 1;
    text-align: center;
}
.username-confirm-modal-password {
    width: 80%;
}

.username-confirm-modal-main-area {
    text-align: center;
    margin-top: 12px;
}

.username-confirm-modal-login-submit-area {
    text-align: center;
    width: 80%;
}
.username-confirm-modal-cancel {
    margin-bottom: 12px;
    text-align: center;
}
.username-confirm-modal-icon {
    margin-bottom: 6px;
}
.userid-and-name-confirmation {
    overflow-wrap: break-word;
    margin: 0px 5px;
}

.facial-video-preview{
    width: 100%;
    aspect-ratio: 4 / 3;
}
.facial-video-zoom{
    position:absolute;
    /* translate: -11.54% -11.54%;だとiPadで顔写真プレビューの表示の縦位置がずれるため以下のように記述 */
    translate: -11.54%;
    margin-top: -11.54%;
    width: 130%;
    height: 130%;
    object-fit: contain;
    z-index: 1;
}
.facial-video-stage{
    width: 100%;
    aspect-ratio: 4 / 3;
    position:relative;
    overflow:hidden;
}
.facial-guide {
    position: absolute;
    top: -6%;
    left: -6%;
    width: 112%;
    height: 112%;
    z-index: 2;
}

@media screen and (max-width: 374px) {
    .facial-guide {
        top: -15%;
        left: -15%;
        width: 130%;
        height: 130%;
    }
}

.preview-mirror{
    transform: scaleX(-1);
}

.facial-description-background{
    background: #F3F3F3;
    text-align: center;
}
.facial-camera-icon{
    width: 20%;
    margin-top: 18%;
    margin-bottom: 5%;
}
.facial-description{
    text-align: center;
    color: #555555;
}
.facial-description-multi-step{
    font-size: 14px;
}

#facial-auth-message{
    margin-bottom: 16px;
}

#facial-auth-error-message{
    margin-bottom: 16px;
}

#authcode-modal-close-button{
    padding: 20px;
    font-size: 28px;
}
.info-modal-body{
    padding-top: 0px;
    max-height: 334px;
    overflow-y: auto;
}
.info-modal-heading{
    font-weight: bold;
    margin-bottom: 5px;
}
.info-modal-text{
    font-size: 13px;
    line-height: 1.6;
    margin-bottom: 15px;
    white-space: pre-wrap;
    /* 標準プロパティ */
    overflow-wrap: break-word;
    /* レガシーSafari対応 */
    word-wrap: break-word;
    /* 強制的な折り返し */
    word-break: break-word;
}
.blank-login-logo{
    width: 343px;
    height: 180px;
}
.blank-additional-auth-login-logo{
    width: 139px;
    height: 48px;
}
.blank-header-logo{
    width: 122px;
    height: 42px;
}
.btn-outline-gray{
    color: #333333;
    border-color: #ced4da;
}
.btn-outline-gray:hover{
    background-color: #E6E6E6;
}
.dropdown-item{
    color: #333333;
}
.dropdown-item:hover{
    background-color: #E6E6E6;
}
.dropdown-item:active{
    color: #333333;
    background-color: #FFFFFF;
}

/*
IEでのみロゴ画像の表示が崩れる現象への対応
IEが対応ブラウザでなくなった場合、以下の記述は削除してよい
*/
.img-fluid{
    margin-top: 0px;
    width: 100%;
    min-height: 1px;
    min-width: 1px;
}

label {
    padding:3px 0px 0px 0px;
    font-size:18px;
    font-weight:normal;
}

.form-label {
    font-size:12px;
    line-height: 18px;
    color:#555555;
}
.form-control {
    height:38px;
    padding:7px 12px;
    font-size:16px;
}

.checkbox-label {
    font-size:14px;
    line-height: 21px;
    color:#555555;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
}

#fg-username {
    margin-bottom: 12px;
}
#fg-userpass {
    margin-bottom: 0px;
}
.checkbox {
    margin-top: 0px;
    margin-bottom: 0px;
    line-height:69px;
}

.userid {
    text-align: right;
}
#loginMessage {
    overflow-wrap: anywhere;
}

/* button style
-----------------------------------------------*/

.btn-login {
    background-color:#2978D5;
    background-image:none;
    color:#FFFFFF;
    border:none;
    font-size:14px;
    line-height: 21px;
}

.btn-login:hover {
    background-color:#0056BC;
    background-image:none;
}

.btn-login:active {
    background-color:#0056BC;
    background-image:none;
    transform: translateY(1px);
}

.btn-login:focus {
    background-color:#0056BC;
    background-image:none;
    outline:none;
}

.btn-disabled{
    background-color:#5B9BD5 !important;
}
.btn-disabled:hover{
    background-color:#5B9BD5 !important;
}
.btn-disabled-gray{
    background-color:#CCCCCC !important;
}

#btn-self-password-reset{
    text-align: center;
    margin-top: 24px;
    font-size:12px;
}
.btn-text-style-blue{
    color: #2978D5;
    text-decoration: none;
}
.btn-info-modal{
    width: 16px;
    height: 16px;
    margin-left: 8px;
    border: none;
    background: #FFFFFF url(/idp/img/icon_help_2.svg) no-repeat top right;
    background-size: contain;
}

.btn-white-with-blue-text{
    width: 128px;
    height: 44px;
    color: #315DC4;
    background: #FFFFFF 0% 0% no-repeat padding-box;
    border: 1px solid #CCCCCC;
    border-radius: 4px;
    opacity: 1;
}

#saved-display-name{
    font-size:20px;
    text-align: center;
    overflow-wrap: anywhere;
}

#auto-selection-management-area{
    display: flex;
    justify-content: center;
}
.btn-enable-to-select{
    background-color: #FFFFFF;
    margin-top: 12px;
    font-size:12px;
    border: none;
}
.btn-enable-to-select:hover{
    text-decoration: underline;
}

.btn-link-like{
    background-color: #FFFFFF;
    font-size: 14px;
    border: none;
}
.btn-link-like:hover{
    color:#0094DA;
    text-decoration: underline;
}

/* footer style
-----------------------------------------------*/

#areaFooter {
    text-align: center;
    color: #666666;
}
#areaFooter small {
    font-size:12px;
    line-height: 18px;
}

/*  errMsg
-----------------------------------------------*/

.errMsg {
    color: #CC0000;
    font-size: 14px;
}

/* responsive style
-----------------------------------------------*/
/* 480px以上 */
@media screen and (min-width: 480px) {
    #boxContainer {
        margin: 60px auto 20px auto;
        width: 440px;
    }
    #areaFooter {
        margin-bottom: 60px;
    }
/*
IEでのみロゴ画像の表示が崩れる現象への対応
IEが対応ブラウザでなくなった場合、以下の記述は削除してよい
*/
    #areaLogo {
        width: 434px;
    }
}

/* 480px未満 */
@media screen and (max-width: 479px) {
    #boxContainer {
        margin: 20px 20px 20px 20px;
    }
    #boxFrame {
        width: 100%;
    }
}

/*
ICカード認証
*/
#ic-card-info-box {
    font-size: 16px;
}

/*
2ステップ認証、追加認証ページ用
*/
.outer-container {
    position: absolute;
    inset: 0;
    margin: auto;
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
}
.auth-area-container {
    width: 364px;
    background-color: #FFFFFF;
    margin: auto;
    padding: 32px 32px 10px 32px;
    border: 0px;
    box-shadow: 0 0 20px #0000003D;
}
.logo-title-container {
    display: flex;
    margin-bottom: 24px;
}
.auth-logo-area {
    width: 139px;
}
.auth-title-area {
    margin: auto 0px 0px auto;
    border-bottom: solid 2px #0355B5;
}
.auth-title {
    margin-bottom: 4px;
    max-width: 130px;
    font-weight: bold;
    font-size:16px;
    color: #333333;
}
#auth-method-select-area p{
    font-size: 12px;
    margin-bottom: 4px;
}
#otp-mail-auth-area p{
    font-size: 12px;
    margin-bottom: 4px;
}
#dropdown-auth-method-ul li{
    height: 44px;
    padding: 10px 12px 10px 12px;
}
.btn-wide {
    background-image: none;
    border: none;
    border-radius: 4px;
    font-size: 13px;
    height: 44px;
    width: 100%;
    margin-bottom: 11px;
}
.btn-narrow {
    width: 128px;
    background-image: none;
    border: none;
    border-radius: 4px;
    font-size: 12px;
    height: 44px;
    margin-bottom: 11px;
}
.btn-tall {
    margin-top: 10px;
    height: 66px;
    font-size: 18px;
}
.btn-submit-large {
    display: none;
    font-size: 16px;
    height: 72px;
    line-height: 24px;
    padding-top: 14px;
}
.btn-blue {
    font-weight: bold;
    background-color: #0355B5;
    color: #FFFFFF;
}
.btn-white {
    background-color: #FFFFFF;
    color: #2978D5;
}
.btn-white:disabled {
  color: #999;
}
.auth-name-in-btn{
    font-weight: normal;
    font-size: 11px;
}
.waiting-auth-message {
    background-color: #F7F7F7;
    border: 1px solid #CCCCCC;
    border-radius: 4px;
    height: 128px;
    width: 100%;
    margin-bottom: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.waiting-auth-message p{
    color: #444444;
    font-size: 13px;
    font-weight: bold;
    margin-bottom: 0;
    text-align: center;
}
#auth-method-select-button{
    text-align: start;
    height: 38px;
    width: 100%;
    padding: 7px 12px 7px 12px;
    border: 1px solid #ced4da;
}
#auth-method-select-pulldown-mark{
    position: absolute;
    top: 20%;
    right: 2%;
    pointer-events: none;
}

#auth-method-select-dropdown{
    margin-bottom: 24px;
}
.input-otp-mail{
    margin-bottom: 24px;
}

#physical-address-area{
    text-align: center;   
}

/*
ミニブラウザ・横長なスクリーン対応

基準となるログインのフォーム(#boxContainer)の高さを
「ログイン名を保存する」チェックボックスも含めて630pxする。

- ビューポートが750px未満の場合は margin-top を (ビューポートの高さ - 630px) / 2 にする
  - 750px: (750px - 630px) / 2 = 60px => デフォルトの値と同じ
  - 630px: (630px - 630px) / 2 = 0px => マージンを無しにする
- ビューポートが630px未満の場合はあらゆるところを出来る限り調節してログインフォームの高さを抑える。
  - CSSファイルの最後尾に置いているのは、全てを上書き可能にするため
  - 検証用 Chromebook で検証した中で最も高さが低い場合(540px)で、
    パスワード認証かつユーザー名テキストボックス表示の状態で「パスワードを忘れた方はこちら」
    のリンクまで表示される。
*/
@media screen and (min-width: 480px) and (max-height: 750px) {
  #boxContainer {
    margin-top: calc(50vh - 315px);
  }
}
@media screen and (min-width: 480px) and (max-height: 630px) {
  #boxContainer {
    margin-top: 0px;
  }
  #areaForm {
    margin-top: 10px;
  }
  #auth-method-select-dropdown {
    margin-bottom: 10px;
  }
  #btn-self-password-reset{
    margin-top: 10px;
  }
  #fg-username {
    margin-bottom: 10px;
  }
}

.facial-guide-auto{
    position:absolute;
    top: -6%;
    left: -6%;
    width: 112%;
    height: 112%;
    z-index: 2;
    background-image: url('/idp/img/sog_faceguide.svg');
}

.facial-guide-auto.guide-blue{
    background-image: url('/idp/img/sog_faceguide_blue.svg') !important;
}

.facial-guide-auto.guide-green{
    background-image: url('/idp/img/sog_faceguide_green.svg') !important;
}

.facial-guide-auto.guide-black{
    background-image: url('/idp/img/sog_faceguide_black.svg') !important;
}

.facial-guide-auto.guide-orange{
    background-image: url('/idp/img/sog_faceguide_orange.svg') !important;
}
