[data-fv] {
width: 100vw;
height: 1080px;
position: absolute;
top: 0;
border: solid 1px #dc143c;
z-index: 999;
pointer-events: none;
}

body {
background-color: rgba(137, 195, 235, 0.1);
overflow-y: auto;
}

/* common.css の body>section>main{min-width:1400px} を u210 だけ解除してリキッド化 */
body#u210 main {
min-width: 0;
}

/* common.css の header>div{min-width:1400px} も解除。これが残っていると
   狭い画面で1400px幅を強制し横オーバーフロー→全体が縮小表示される */
body#u210 header > div {
min-width: 0;
}

main {
margin: 0 auto;
padding: 0 50px 30px 50px !important;
width: 100%;
max-width: 1920px;

  [data-jclip] {
  margin: 20px auto 0 auto;
  padding: 20px 0 30px 0;
  width: 100%;
  border: solid 5px #007bbb;
  background-color: #fff;
  border-radius: 8px;
  display: flex;
  align-items: stretch;

    [data-leftBlock] {
    width: 500px;
    padding: 30px 30px 50px 50px;

      [data-logo] {

        & > div {
        margin: 0 auto;
        width: 180px;

          img {
          width: 100%;
          height: auto;
          }
        }
      }

      [data-login] {
      margin-top: 40px;
      
        p {
        text-align: center;
        font-size: 16px !important;
        font-weight: 600 !important;
        color: #dc143c !important;
        }
      }

      [data-form] {

        h1 {
        margin-top: 30px;
        text-align: center;
        color: #302833;
        letter-spacing: 1px;
        font-size: 24px;
        font-weight: 600;
        line-height: 1.4;

          span {
          margin: 0 3px;
          color: #007bbb;
          font-size: 35px;
          font-weight: 600;
          }
        }

        p {
        margin-top: 10px;
        text-align: center;
        line-height: 1.5;
        color: #595857;
        font-size: 14px;
        font-weight: 200;
        }

        form {
        margin: 20px 0 0 0;

          & > p {
          padding: 0 30px;
          color: #dc143c;
          font-size: 12px;
          font-weight: 600;
          }

          dl {
          margin: 15px auto 0 auto;
          width: 200px;
          display: flex;
          flex-direction: column;
          align-items: flex-start;

            dt {
            margin-bottom: 5px;
            }

            dd {

              input {
              width: 200px;
              height: 35px;
              border: solid 2px #dddcd6;
              font-size: 14px;
              font-weight: 200;

                &:focus {
                border: solid 2px #007bbb !important;
                }

                &:hover {
                border: solid 2px #007bbb !important;
                }
              }
            }
          }

          a {
          margin: 30px auto 0 auto;
          width: 200px;
          height: 35px;
          font-size: 14px;
          }
        }
      }
    }

    

    [data-list] {
    padding: 30px 20px 20px 20px;
    flex: 1;

      dl {
      width: 100%;
      display: flex;
      align-items: stretch;
      border-bottom: solid 1px #c0c6c9;

        &:nth-of-type(1) {
        border-top: solid 1px #c0c6c9;
        }

        dt {
        padding: 0 0 0 20px;
        width: 130px;
        background-color: rgba(192, 198, 201, 0.3);
        display: flex;
        align-items: center;
        }

        dd {
        padding-top: 20px;
        flex: 1;

          &:empty {
          min-height: 60px;
          }

          ul {
          display: flex;
          align-items: center;
          flex-wrap: wrap;

            li {
            margin-bottom: 15px;
            margin-left: 15px;
            width: 150px;


              a {

              height: 60px;
              display: flex;
              justify-content: center;
              align-items: center;
              }
            }
          }
        }
      }
    }
  }

  [data-other] {
  margin: 30px auto 0 auto;
  padding: 0 0 30px 0;
  width: 100%;
  border: solid 5px #999999;
  background-color: #fff;
  border-radius: 8px;

    [data-title] {
    width: 100%;
    height: 60px;
    background-color: #999999;
    display: flex;
    align-items: center;
    justify-content: center;

      h2 {
      color: #fafafa;
      font-size: 18px;
      }
    }

    [data-info] {
    margin: 30px 20px 0 20px;
    padding: 20px 20px 10px 20px;
    border: solid 1px #c0c6c9;
    width: calc(100% - 40px);
    background-color: rgba(192, 198, 201, 0.3);

      h3 {
      font-size: 15px;
      font-weight: 600;
      }

      p {
      margin-top: 10px;
      line-height: 1.4;
      font-size: 14px;
      font-weight: 200;
      }
    }

    [data-list] {
    margin: 20px 0 0 0;
    padding: 0 20px;

      dl {
      width: 100%;
      display: flex;
      align-items: stretch;
      border-bottom: solid 1px #c0c6c9;

        &:nth-of-type(1) {
        border-top: solid 1px #c0c6c9;
        }

        dt {
        padding: 0 0 0 20px;
        width: 180px;
        background-color: rgba(192, 198, 201, 0.3);
        display: flex;
        align-items: center;
        }

        dd {
        padding-top: 10px;
        width: calc(100% - 180px);

          ul {
          display: flex;
          align-items: center;
          flex-wrap: wrap;

            li {
            margin-bottom: 10px;
            margin-left: 15px;
            width: 130px;
            }
          }
        }
      }
    }
  }
}

/* ============================================
   レスポンシブ対応（768px以下） u210_4 専用
   ============================================ */
@media (max-width: 768px) {

  /* 768px以下は左右余白を詰める（min-widthはベースで撤廃済み） */
  main {
  padding: 0 15px 20px 15px !important;
  }

  /* ヘッダーの左右余白も本文に合わせて15pxに（baseは0 50px） */
  body#u210 header > div {
  padding: 0 15px;
  }

  /* ヘッダーのol（タイトル・画面ID）はスマホでは非表示 */
  body#u210 header > div ol {
  display: none;
  }

  /* ログインフォーム（左）と新聞一覧（右）を縦積みに */
  main [data-jclip] {
  flex-direction: column;
  }

  main [data-jclip] [data-leftBlock] {
  width: 100%;
  padding: 20px 20px 30px 20px;
  }

  main [data-jclip] [data-list] {
  padding: 20px 15px;
  }

  /* 地域ラベル(dt)と中身(dd)を縦積みに */
  main [data-jclip] [data-list] dl,
  main [data-other] [data-list] dl {
  flex-direction: column;
  }

  main [data-jclip] [data-list] dl dt,
  main [data-other] [data-list] dl dt {
  width: 100%;
  padding: 8px 0 8px 15px;
  }

  main [data-other] [data-list] dl dd {
  width: 100%;
  padding: 10px 0;
  }

  /* 新聞一覧(data-jclip)のdd上下余白を調整 */
  main [data-jclip] [data-list] dl dd {
  padding: 15px 0;
  }

  /* お知らせ枠(data-other)のロゴ一覧を均等3列に */
  main [data-other] [data-list] dl dd ul {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  align-items: center;
  }

  main [data-other] [data-list] dl dd ul li {
  width: auto;
  margin: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  }

  main [data-other] [data-list] dl dd ul li a {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  /* 神奈川新聞社などのテキストリンクはDB由来のinline style(font-size:18px)が
     入るため、!importantで上書きしないと効かない */
  font-size: 12px !important;
  }

  main [data-other] [data-list] dl dd ul li img {
  max-width: 100%;
  height: auto;
  }

  /* === data-jclip 内をリキッド化（縦積みは維持・固定px幅を画面幅に追従） === */

  /* J-CLIPロゴを画面幅に追従 */
  main [data-jclip] [data-leftBlock] [data-logo] > div {
  width: 50%;
  max-width: 180px;
  }

  /* 見出しh1をスマホでは20pxに縮小（baseは24px） */
  main [data-jclip] [data-leftBlock] [data-form] h1 {
  font-size: 20px;
  }

  /* ログイン入力欄を可変幅に（dt＋dd縦積みのddを横いっぱいに） */
  main [data-jclip] [data-leftBlock] [data-form] form dl {
  width: 100%;
  }

  main [data-jclip] [data-leftBlock] [data-form] form dl dd {
  width: 100%;
  }

  main [data-jclip] [data-leftBlock] [data-form] form dl dd input {
  width: 100%;
  }

  /* ログインボタンを可変幅に */
  main [data-jclip] [data-leftBlock] [data-form] form a {
  width: 100%;
  max-width: 240px;
  }

  /* 新聞ロゴ一覧：スマホ全域で2列固定（grid）。ロゴは150px上限・各セル中央寄せ */
  main [data-jclip] [data-list] dl dd ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  align-items: center;
  }

  main [data-jclip] [data-list] dl dd ul li {
  width: auto;
  max-width: 150px;
  margin: 0 auto;
  }

  /* ロゴ画像が枠からはみ出さないよう親に追従 */
  main [data-jclip] [data-list] dl dd ul li a img {
  max-width: 100%;
  height: auto;
  }

  /* お知らせ枠の左右余白を画面幅に合わせる */
  main [data-other] [data-info] {
  margin: 20px 15px 0 15px;
  width: calc(100% - 30px);
  }

  /* ============================================
     新聞ロゴ(data-menuID)クリックで出るモーダル
     (#clipping_menu) をスマホ幅に収める。
     ・#overlay は中身の固定900pxで画面外へはみ出すため、
       overlay自体に画面幅基準の幅を与えてリキッド化
     ・reSetPosition()がoverlayの実幅を読んで中央寄せするので
       JS改修は不要（CSSだけで追従する）
     ============================================ */
  body#u210 #overlay {
  padding: 20px 15px;
  width: calc(100vw - 30px);
  left: 15px !important;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  box-sizing: border-box;
  }

  body#u210 #clipping_menu {
  width: 100%;
  min-height: 0;
  }

  /* ロゴ画像エリアを画面幅に追従 */
  body#u210 #clipping_menu aside div {
  width: auto;
  max-width: 300px;
  }

  /* 本文スクロール領域を画面高に追従（固定400pxをやめる） */
  body#u210 #clipping_menu aside section {
  height: auto;
  max-height: 45vh;
  }

  /* 2番目の新聞(aside)のsectionに上余白を追加 */
  body#u210 #clipping_menu > [data-cl]:nth-of-type(2) > section {
  margin-top: 20px;
  }

  /* 1番目のdl（baseは30px）の上余白を他のdlと揃えて15pxに */
  body#u210 #clipping_menu aside section dl:nth-of-type(1) {
  margin: 15px 0 0 0;
  }

  /* 見出し（利用方法・料金・順守事項）をスマホ向けに縮小＋中央寄せ */
  body#u210 #clipping_menu aside section dl dt {
  font-size: 16px;
  text-align: center;
  }

  /* 見出し下線もテキスト中央に合わせる（baseはleft:0で左端） */
  body#u210 #clipping_menu aside section dl dt:after {
  left: 50%;
  transform: translateX(-50%);
  }

  /* 本文（ddとpreが継承）をスマホ向けに縮小 */
  body#u210 #clipping_menu aside section dl dd {
  font-size: 14px;
  }

  /* 「見積内容の入力へ」ボタン */
  body#u210 #clipping_menu a {
  width: 80%;
  height: 50px;
  font-size: 14px;
  margin: 20px auto 0 auto;
  }
}
