@charset "utf-8";
/*
Theme Name: LED照明の設計・開発.COM
*/
@charset "utf-8";

/* =======================================================
   PC表示時（1001px以上）のみスマホ用メニューを隠す
======================================================= */
@media screen and (min-width: 1001px) {
  .sp-menu-btn,
  .sp-nav-wrap {
    display: none !important;
  }
  .sp-only {
    display: none !important;
  }
}

/* =======================================================
   詳しく見るボタン（既存の .btn クラスを活用）
======================================================= */
a.btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  width: 200px !important;
  padding: 12px 20px !important;
  background: linear-gradient(to bottom, #ffffff 0%, #e6e6e6 100%) !important;
  border: 1px solid #cccccc !important;
  border-radius: 4px !important;
  color: #333333 !important;
  font-size: 15px !important;
  font-weight: bold !important;
  text-decoration: none !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15) !important;
  transition: all 0.2s ease !important;
  margin: 0 auto;
}
a.btn:hover {
  background: linear-gradient(to bottom, #f0f0f0 0%, #d4d4d4 100%) !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) !important;
  transform: translateY(1px) !important;
  text-decoration: none !important;
}
a.btn::after {
  content: "" !important;
  position: absolute !important;
  right: 15px !important;
  top: 50% !important;
  transform: translateY(-50%) rotate(45deg) !important;
  width: 6px !important;
  height: 6px !important;
  border-top: 3px solid #333333 !important;
  border-right: 3px solid #333333 !important;
}
/* もし <img> が残っていた場合は安全対策で無効化 */
a.btn:has(img) {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  width: auto !important;
}
a.btn:has(img)::after {
  display: none !important;
}
.btn-wrap {
  text-align: center;
  margin-top: 15px;
}

/* =======================================================
   上下赤線・明朝体の見出し（旧画像置き換え用）
======================================================= */
.tit-red-lines {
  text-align: center !important;
  color: #b32600 !important;
  font-size: 32px !important;
  font-weight: bold !important;
  font-family:
    "Yu Mincho", "MS PMincho", "Hiragino Mincho ProN", serif !important;
  letter-spacing: 4px !important;
  padding: 15px 0 !important;
  margin: 0 0 30px !important;
  border-top: 2px solid #b32600 !important;
  border-bottom: 2px solid #b32600 !important;
  background: transparent !important;
}

/* =======================================================
   スマホ・レスポンシブ対応（1000px以下）
======================================================= */
@media screen and (max-width: 1000px) {
  /* --- 強制リセット --- */
  html,
  body,
  #wrapper,
  .mod_inner01,
  main {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 auto !important;
  }

  * {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  img,
  iframe,
  video,
  table,
  map,
  area {
    max-width: 100% !important;
    width: auto !important;
    height: auto !important;
    float: none !important;
  }
  .fL,
  .fR,
  .alignleft,
  .alignright {
    float: none !important;
  }

  /* --- ヘッダー・ナビ --- */
  #gHeader .hdInfo .content .areaContact,
  #gNav {
    display: none !important;
  }
  #gHeader .hdInfo .content .logo {
    width: 100% !important;
    float: none !important;
    margin-top: 10px !important;
    text-align: left;
  }
  #gHeader .hdInfo .content .logo img {
    max-width: 280px !important;
  }
  #gHeader .hdInfo .pageTit {
    font-size: 1rem !important;
    padding: 10px 0 !important;
  }

  /* --- ハンバーガーメニュー --- */
  .sp-menu-btn {
    display: block !important;
    position: fixed !important;
    top: 20px !important;
    right: 15px !important;
    width: 35px !important;
    height: 25px !important;
    z-index: 99999 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
  }
  .sp-menu-btn span {
    display: block;
    position: absolute;
    width: 100%;
    height: 3px;
    background: #194564;
    border-radius: 2px;
    transition: 0.3s;
  }
  .sp-menu-btn.open span {
    background: #ffffff !important;
  }
  .sp-menu-btn span:nth-child(1) {
    top: 0;
  }
  .sp-menu-btn span:nth-child(2) {
    top: 11px;
  }
  .sp-menu-btn span:nth-child(3) {
    top: 22px;
  }
  .sp-menu-btn.open span:nth-child(1) {
    transform: translateY(11px) rotate(-45deg);
  }
  .sp-menu-btn.open span:nth-child(2) {
    opacity: 0;
  }
  .sp-menu-btn.open span:nth-child(3) {
    transform: translateY(-11px) rotate(45deg);
  }

  .sp-nav-wrap {
    display: none;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: rgba(25, 69, 100, 0.95) !important;
    z-index: 99998 !important;
    padding: 80px 0 20px !important;
    overflow-y: auto !important;
  }
  .sp-gNav ul {
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .sp-gNav ul li {
    display: block !important;
    width: 100% !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .sp-nav-wrap a,
  .sp-gNav ul li a {
    display: block !important;
    padding: 20px !important;
    color: #ffffff !important;
    font-weight: bold !important;
    font-size: 16px !important;
    text-align: center !important;
    text-decoration: none !important;
    width: 100% !important;
    text-shadow: none !important;
    text-indent: 0 !important;
    background: none !important;
    white-space: normal !important;
  }

  /* --- トップ各コンテンツ --- */
  #mainimg {
    height: auto !important;
    background: none !important;
    padding: 0 !important;
    text-align: center;
    margin-bottom: 20px !important;
  }
  #mainimg .inner img {
    margin: 0 auto !important;
    display: block;
    max-width: 100%;
  }

  .mod_news_list01 .content {
    display: flex;
    width: 100%;
    flex-direction: column;
  }

  .mod_list01 .item .content {
    display: flex !important;
    flex-direction: column !important;
  }
  .mod_list01 .item .areaTxt,
  .mod_list01 .item .areaImg {
    width: 100% !important;
    float: none !important;
  }
  .mod_list01 .item .areaTxt {
    padding: 35px 15px !important;
    margin: 0 !important;
  }
  .mod_list01 .item .areaImg {
    margin-top: 15px !important;
    text-align: center !important;
  }

  .mod_list05 {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
  }
  .mod_list05 .item {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
  }

  .mod_list02 .item {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
  }
  .mod_list02 .listImg {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
  }
  .mod_list02 .listImg li {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
  }
  .mod_list02 .content .img {
    width: 100% !important;
    float: none !important;
    margin: 0 0 15px !important;
  }

  .mod_list06 {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
  .mod_list06 .item {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    text-align: center;
  }
  .mod_list06 .item img {
    margin: 0 auto !important;
    display: block;
  }

  .mod_list03 {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
  }
  .mod_list03 .item {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
  }

  .mod_box01 .content.has_img {
    display: flex !important;
    flex-direction: column !important;
  }
  .mod_box01 .content.has_img .img {
    width: 100% !important;
    float: none !important;
    margin: 0 0 15px 0 !important;
    text-align: center !important;
  }

  /* --- mod_box02 の強制縦並び化（修正版） --- */
  .mod_box02 {
    display: flex !important;
    flex-direction: column !important;
    padding: 0;
    border: none;
  }
  .mod_box02 .item {
    width: 100% !important;
    float: none !important;
    padding-bottom: 15px !important;
    margin: 0 0 15px 0 !important;
    text-align: center;
  }
  .mod_box02 .item img {
    max-width: 100% !important;
    height: auto !important;
    float: none !important;
    margin: 0 auto !important;
  }

  /* --- フッター --- */
  #gFooter .ftOuterLink .list li {
    width: 100% !important;
    float: none !important;
    margin-top: 10px !important;
    border-bottom: 1px dashed #ccc;
    padding-bottom: 10px;
  }
  #gFooter .ftOuterLink .list li:last-child {
    border-bottom: none;
  }
  #gFooter .ftContent .ftNavi .list {
    display: block !important;
  }
  #gFooter .ftContent .ftNavi .list li {
    display: block !important;
    width: 100% !important;
    border-bottom: 1px solid #ececec !important;
  }
  #gFooter .ftContent .ftNavi .list li a {
    padding: 15px !important;
  }
  #gFooter .ftContent .ftNavi .list li a:before,
  #gFooter .ftContent .ftNavi .list li a:after {
    display: none !important;
  }

  #gFooter .ftContent .ftInfo {
    padding: 30px 0 !important;
  }
  #gFooter .ftContent .ftInfo .logo {
    width: 100% !important;
    float: none !important;
    text-align: center !important;
  }
  #gFooter .ftContent .ftInfo .logo img {
    margin: 0 auto 15px !important;
  }
  #gFooter .ftContent .ftInfo .areaContact {
    width: 100% !important;
    float: none !important;
    margin-top: 20px !important;
    padding: 15px !important;
    box-sizing: border-box !important;
  }
  #gFooter .ftContent .ftInfo .areaContact .contact,
  #gFooter .ftContent .ftInfo .areaContact .link {
    width: 100% !important;
    float: none !important;
  }
  #gFooter .ftContent .ftInfo .areaContact .contact li {
    float: none !important;
    text-align: center;
    margin-bottom: 10px;
  }
  #gFooter .ftContent .ftInfo .areaContact .contact li img,
  #gFooter .ftContent .ftInfo .areaContact .link img {
    margin: 0 auto !important;
    display: block;
  }

  #gFooter .ftContent .ftInfo .pageLink {
    width: 100% !important;
    float: none !important;
    text-align: center !important;
    margin-top: 20px !important;
  }
  #gFooter .ftContent .ftInfo .pageLink li {
    display: block !important;
    margin: 10px 0 !important;
  }
  .pageTop {
    bottom: 20px !important;
    right: 20px !important;
  }

  /* --- CVエリア --- */
  .is_full_width {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }
  .pc-only {
    display: none !important;
  }
  .mod_cv01 {
    padding: 40px 15px !important;
    background: #194564 !important;
    height: auto !important;
    box-sizing: border-box !important;
  }
  .mod_cv01 .inner {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    background: #fff;
    padding: 30px 15px !important;
    border-radius: 15px;
  }
  .cv_html_area {
    width: 100% !important;
    text-align: center !important;
    margin-bottom: 25px !important;
  }
  .cv_html_area .subTit {
    color: #992314 !important;
    font-size: 18px !important;
    font-weight: bold !important;
    margin-bottom: 5px !important;
  }
  .cv_html_area .mainTit {
    font-size: 24px !important;
    font-weight: bold !important;
    color: #000 !important;
    margin-bottom: 20px !important;
    line-height: 1.4 !important;
  }
  .cv_html_area .mainTit span {
    color: #1e3f5a !important;
    font-weight: 900;
    font-size: 1.2em;
  }
  .cv_html_area .btnList {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .cv_html_area .btnList li {
    list-style: none !important;
  }
  .cv_html_area .btnList li a {
    display: block !important;
    background: #3a3a3a !important;
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: bold !important;
    padding: 15px !important;
    text-align: center !important;
    text-decoration: none !important;
    border-radius: 5px !important;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2) !important;
  }
  .mod_cv01 .areaContact {
    position: static !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 15px !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .mod_cv01 .areaContact .contact,
  .mod_cv01 .areaContact .link {
    width: 100% !important;
    float: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 15px !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .mod_cv01 .areaContact .link li {
    width: 100% !important;
    float: none !important;
    text-align: center !important;
    padding: 0 !important;
  }
  .mod_cv01 .areaContact .link li:last-child {
    padding-top: 0 !important;
  }
  .mod_cv01 .areaContact img {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto !important;
  }

  /* --- タグのGrid --- */
  .mod_list02 .mod_tag01,
  .mod_tag01 {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
    overflow: visible !important;
    width: 100% !important;
    padding: 0 !important;
  }
  .mod_list02 .mod_tag01 li,
  .mod_tag01 li {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    padding: 10px 5px !important;
    box-sizing: border-box !important;
    flex-wrap: wrap;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    text-align: center !important;
  }
  .mod_tag01 li span {
    font-size: 13px !important;
  }

  /* --- ステップの2列Grid --- */
  .mod_flow_list01 {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 15px 10px !important;
    padding: 15px !important;
    background: #f5f5f5 !important;
  }
  .mod_flow_list01 .item {
    width: 100% !important;
    height: auto !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 0 10px 0 !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    position: relative !important;
  }
  .mod_flow_list01 .item:before {
    display: none !important;
  }
  .mod_flow_list01 .item:nth-child(2n):before {
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    left: -8px !important;
    transform: translateY(-50%) !important;
    border-width: 8px 0 8px 6px !important;
    border-style: solid !important;
    border-color: transparent transparent transparent #c1dcf3 !important;
    content: "" !important;
    margin: 0 !important;
    z-index: 2 !important;
  }
  .mod_flow_list01 .item .tit {
    margin: 0 !important;
    padding: 0 !important;
  }
  .mod_flow_list01 .item .tit img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
  }
  .mod_flow_list01 .item .content {
    padding: 10px !important;
    flex-grow: 1 !important;
  }
  .mod_flow_list01 .item .content .img {
    font-size: 13px !important;
    font-weight: bold !important;
    text-align: center !important;
    margin-bottom: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  .mod_flow_list01 .item .content .img img {
    width: 100% !important;
    max-width: 120px !important;
    height: auto !important;
    margin-bottom: 8px !important;
    display: block !important;
  }
  .mod_flow_list01 .item .content .txt {
    font-size: 12px !important;
    text-align: left !important;
    line-height: 1.4 !important;
  }

  /* 詳しく見るボタン・赤線見出しのスマホ用 */
  a.btn {
    width: 100% !important;
    max-width: 250px !important;
  }
  .tit-red-lines {
    font-size: 24px !important;
    padding: 12px 0 !important;
    margin-bottom: 20px !important;
    letter-spacing: 2px !important;
  }
}
