* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: none;
}
html, body {
    height: 100%;
    overflow-x: auto;
    overflow-y: auto;
    touch-action: pan-x pan-y;
}
#n_PC___15 {
    position: relative;
    width: 100%;
    height: 100vh;
    background-color: rgba(255,255,255,1);
    margin: 0;
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; /* iOS 慣性スクロール */
    touch-action: pan-x pan-y;
}
/* スクロール幅を保証するための擬似要素（絶対配置でないコンテンツ幅を提供） */
/* #n_PC___15::after {
    content: "";
    display: block;
    width: 1500px;
    height: 0;
} */

/* 課金注意文（クエリ付きアクセス時） */
#billing_notice {
    position: relative;      /* 通常フローに載せる */
    width: 1050px;           /* 2カラム全体の幅に揃える */
    max-width: calc(100% - 300px); /* 両端の余白を確保して可変に */
    margin: 100px auto 0;     /* 横線の下に余白を広げて配置（さらに下げる） */
    padding: 14px 16px;
    background: #fff2f2;     /* 薄い赤 */
    border: 1px solid #f5b5b5;
    border-radius: 5px;
    color: #d93025;          /* 赤文字 */
    text-align: center;
    font-family: 'Noto Sans CJK JP', sans-serif;
    font-weight: bold;
    font-size: 14px;
    letter-spacing: 0.4px;
    z-index: 2;
}

#billing_notice .billing-notice-sub {
    margin-top: 6px;
    font-weight: normal;
    color: #d93025;
}

/* コンテンツ全体のラッパー。注意文があるときだけ下げる */
#content_group {
    position: relative;
    min-height: 670px; /* 絶対配置の子要素の高さを担保 */
    width: 1500px; /* スクロール幅を明示的に確保 */
}
#content_group.shifted {
    margin-top: -100px; /* 注意文直下との隙間をさらに詰める */
}
#aaa {
    border: 0;
    left: 650px;
    top: 22px;
    position: absolute;
    overflow: visible;
    width: 201px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 25px;
    color: rgba(51,51,51,1);
}
#aab {
    fill: rgba(255,255,255,1);
    stroke: rgba(204,204,204,1);
    stroke-width: 1px;
    stroke-linejoin: miter;
    stroke-linecap: butt;
    stroke-miterlimit: 4;
    shape-rendering: auto;
}
.aab {
    position: absolute;
    overflow: visible;
    width: 500px;
    height: 531px;
    left: 225px;
    top: 134px;
}
#aac {
    fill: rgba(255,255,255,1);
    stroke: rgba(204,204,204,1);
    stroke-width: 1px;
    stroke-linejoin: miter;
    stroke-linecap: butt;
    stroke-miterlimit: 4;
    shape-rendering: auto;
}
.aac {
    position: absolute;
    overflow: visible;
    width: 500px;
    height: 531px;
    left: 775px;
    top: 134px;
}
#aad {
    border: 0;
    left: 275px;
    top: 179px;
    position: absolute;
    overflow: visible;
    width: 250px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 20px;
    color: rgba(51,51,51,1);
    letter-spacing: 0.4px;
}
#aae {
    border: 0;
    left: 825px;
    top: 179px;
    position: absolute;
    overflow: visible;
    width: 291px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 20px;
    color: rgba(51,51,51,1);
    letter-spacing: 0.4px;
}
#aaf {
    border: 0;
    left: 275px;
    top: 247px;
    position: absolute;
    overflow: visible;
    width: 148px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    color: rgba(51,51,51,1);
    letter-spacing: 0.4px;
}
#aag {
    border: 0;
    left: 825px;
    top: 247px;
    position: absolute;
    overflow: visible;
    width: 401px;
    height: 48px;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    color: rgba(51,51,51,1);
    letter-spacing: 0.4px;
}
#aah {
    border: 0;
    left: 275px;
    top: 354px;
    position: absolute;
    overflow: visible;
    width: 84px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    color: rgba(51,51,51,1);
    letter-spacing: 0.4px;
}
#aai {
    border: 0;
    left: 303px;
    top: 454px;
    position: absolute;
    overflow: visible;
    width: 146px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 14px;
    color: rgba(51,51,51,1);
    letter-spacing: 0.4px;
}
#aaj {
    border: 0;
    left: 275px;
    top: 594px;
    position: absolute;
    overflow: visible;
    width: 189px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 14px;
    color: rgba(170,170,170,1);
    letter-spacing: 0.4px;
}
#aak {
    fill: rgba(247,247,247,1);
}
.aak {
    position: absolute;
    overflow: visible;
    width: 400px;
    height: 49px;
    left: 275px;
    top: 285px;
}
#aal {
    fill: rgba(51,51,51,1);
}
.aal {
    position: absolute;
    overflow: visible;
    width: 400px;
    height: 49px;
    left: 275px;
    top: 499px;
}
#aam {
    fill: rgba(51,51,51,1);
}
.aam {
    position: absolute;
    overflow: visible;
    width: 400px;
    height: 49px;
    left: 825px;
    top: 342px;
}
#aan {
    fill: rgba(247,247,247,1);
}
.aan {
    position: absolute;
    overflow: visible;
    width: 400px;
    height: 49px;
    left: 275px;
    top: 392px;
}
#aao {
    fill: rgba(255,255,255,1);
    stroke: rgba(51,51,51,1);
    stroke-width: 2px;
    stroke-linejoin: miter;
    stroke-linecap: butt;
    stroke-miterlimit: 4;
    shape-rendering: auto;
}
.aao {
    position: absolute;
    overflow: visible;
    width: 18px;
    height: 18px;
    left: 275px;
    top: 456px;
}
/* SVG全体をクリック可能に */
.aao {
    cursor: pointer;
  }
  
  /* 外枠の見た目 */
  .aao #aao {
    fill: none;
    stroke: rgba(51,51,51,1);
    stroke-width: 2px;
  }
  
  /* 内側四角の塗りつぶし色 */
  .aao #aao_fill {
    fill: rgba(51,51,51,1);
  }
  
#aap {
    border: 0;
    left: 290px;
    top: 295px;
    position: absolute;
    overflow: visible;
    width: 181px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    color: rgba(204,204,204,1);
    letter-spacing: 0.4px;
}
#password {
    border: 0;
    left: 290px;
    top: 402px;
    position: absolute;
    overflow: visible;
    width: 181px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    color: rgba(204,204,204,1);
    letter-spacing: 0.4px;
}
#aaq {
    border: 0;
    left: 409px;
    top: 512px;
    position: absolute;
    overflow: visible;
    width: 133px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    color: rgba(255,255,255,1);
    letter-spacing: 0.4px;
}
#aar {
    border: 0;
    left: 976px;
    top: 355px;
    position: absolute;
    overflow: visible;
    width: 100px;
    white-space: nowrap;
    text-align: left;
    font-family: Noto Sans CJK JP;
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    color: rgba(255,255,255,1);
    letter-spacing: 0.4px;
}
#aas {
    fill: transparent;
    stroke: rgba(170,170,170,1);
    stroke-width: 1px;
    stroke-linejoin: miter;
    stroke-linecap: butt;
    stroke-miterlimit: 4;
    shape-rendering: auto;
}
.aas {
    overflow: visible;
    position: absolute;
    width: 188px;
    height: 1px;
    left: 275.5px;
    top: 614.5px;
    transform: matrix(1,0,0,1,0,0);
}
#aat {
    fill: transparent;
    stroke: rgba(204,204,204,1);
    stroke-width: 1px;
    stroke-linejoin: miter;
    stroke-linecap: butt;
    stroke-miterlimit: 4;
    shape-rendering: auto;
}
.aat {
    overflow: visible;
    position: absolute;
    width: 1500px;
    height: 1px;
    left: 0.5px;
    top: 83.5px;
    transform: matrix(1,0,0,1,0,0);
}
/* ここからログインフォームの input 調整 */
input[id="aap"],
input[id="password"] {
  background-color: transparent;  /* 背景を透かす */
  border: none;                   /* 枠線を消す */
  outline: none;                  /* フォーカス時の輪郭も消す */
  caret-color: rgba(51,51,51,1);  /* カーソル色を設定 */
}
/* 文字色と幅の指定（幅は必要に応じて調整） */
input#aap,
input#password {
  color: rgba(51,51,51,1);
  width: 370px;
}
/* ブラウザの自動入力スタイルを上書き */
input[id="aap"]:-webkit-autofill,
input[id="aap"]:-webkit-autofill:hover, 
input[id="aap"]:-webkit-autofill:focus,
input[id="password"]:-webkit-autofill,
input[id="password"]:-webkit-autofill:hover,
input[id="password"]:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
  -webkit-text-fill-color: rgba(51,51,51,1) !important;
  transition: background-color 5000s ease-in-out 0s;
  background-color: transparent !important;
  border: none !important;
}

/* フッターリンクのスタイル */
.footer-container {
  position: relative;
  width: 1500px;
  margin-top: 40px; /* 上に詰まらないよう正の余白に */
  padding-bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
}

.footer-links {
  display: flex;
  justify-content: center;
  width: 100%;
  gap: 20px;
}

.footer-link-item a {
  font-family: 'Noto Sans CJK JP', sans-serif;
  font-size: 14px;
  font-weight: bold;
  color: rgba(51,51,51,1);
  text-decoration: none;
  letter-spacing: 0.4px;
}

.footer-link-item a:hover {
  color: rgba(51,51,51,1);
  text-decoration: underline;
}

.copyright {
  width: 100%;
  text-align: center;
  margin-top: 10px;
  font-family: 'Noto Sans CJK JP', sans-serif;
  font-size: 12px;
  font-weight: bold;
  color: rgba(51,51,51,1);
  letter-spacing: 0.4px;
}

/* 画面幅 < 1500px のときもサイト中央(=750px)基準でセンタリング */
@media (max-width: 1499.99px) {
  .footer-container {
    left: 750px;
    transform: translateX(-50%);
  }
}

/* モバイルではコンテナ側でスクロールさせて横パンを確実にする */
@media (max-width: 768px) {
  html, body {
    overflow: hidden; /* ルートではスクロールさせない */
  }
  #n_PC___15 {
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
  }
}
