@charset "utf-8";
/* ==========================
   Work detail (SP)
========================== */
.main.workdetail{
  padding-top: 100px;
}
.container{ 
    width: min(86%, 640px);
    margin-inline: auto; 
  }

.section-worklead {
  margin: 0 auto;
}

.pconly {
    display: none;
}



/* ページ先頭のラベル */
.worklead__label{
  color: var(--blue);
  position: relative;
  width: 325px;
  margin: 0 auto;
}

.worklead__label-2 {
  width: 200px;
}

.worklead__label-3 {
  width: 250px;
}

.worklead__label::before {
    content: "";
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 12px;
    height: 98px;
    background-color: var(--blue);
}


.worklead__label-2::before {
    content: "";
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 12px;
    height: 70px;
    background-color: var(--blue);
}

.worklead__label-3::before {
    content: "";
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 12px;
    height: 50px;
    background-color: var(--blue);
}



.worklead__label span{
    display:block;
    font-size:2.2rem;
    font-weight: 500;
    padding-left: 23px;
}

/* セクション見出し */
.work-sec-title{
    color: var(--blue);
    font-size: 2.6rem;
    font-weight: 500;
    text-align: center;
    margin-bottom: 12px;
    position: relative;
    margin-top: 60px;
}

.work-sec-title03 {
      color: var(--blue);
    font-size: 2.0rem;
    font-weight: 500;
    text-align: center;
    margin-bottom: 12px;
    position: relative;
    margin-top: 60px;
}


.work-sec-title::after{
    content:"";
    display:block;
    width: 10%;
    height: 1px;
    background: var(--orange);
    position: absolute;
    bottom: 16px;
    right: 0px;
}

.work-sec-title::before{
    content:"";
    display:block;
     width: 10%;
    height: 1px;
    background: var(--orange);
    position: absolute;
    bottom: 16px;
}


.work-sec-title-long::after{
    width: 30%;
}

.work-sec-title-long::before{
     width: 30%;
}

.work-sec-title-line02::after {
    width: 19%;
}


.work-sec-title-line02::before {
    width: 19%;
}


/* 画像 */
.work-mock img,
.work-image img{
  margin: 0 auto;
  width: 100%;
  height: auto;
  display: block;
  max-width: 430px;
}

.work-image {
    margin-top: 35px;
}

.work-image-irohaLogo {
    max-width: 330px;
      margin: 50px auto;
}

/* 情報ブロック */
.work-meta{
  margin-top: 43px;
  display: grid;
  gap: 6px;
  font-size: 1.3rem;
}
.work-meta div{ display: grid; grid-template-columns: 86px 1fr; gap: 10px; }
.work-meta dt{ 
    color: var(--blue);
    font-weight: 500;
}
.work-meta dd{ color: var(--txt_black); }

/* 注釈 */
.work-note{
    margin-top: 6px;
    font-size: 1.2rem;
    width: 94%;
}

.pconly {
  display: none;
}

 .kanbansp {
    display: block;
}

 .work-imagepc {
    display: none;
}


@media screen and (min-width: 769px) {


  .worklead__label span{
    display: none;
  } 

  .pconly {
    display: block;
    font-size: 3.6rem;
    line-height: 1.5;
    text-align: left;         /* 念のため明示 */
    margin: 0;
    padding-left: 24px;       /* 左の縦バー分の余白 */
    color: var(--blue);
  }

  .container {
    width: min(86%, 1070px);
  }

  .worklead__label {
    width: fit-content;       /* 内容幅に合わせる（autoでもOK） */
    margin: 40px auto;        /* 中央配置 */
    text-align: left;         /* 文字は左揃え */
    position: relative;       /* 疑似要素の基準 */
  }

    /* 左の縦ライン：テキストの左に固定配置 */
  .worklead__label::before {
    content: "";
    position: absolute;
    left: 0;                  /* ← 明示して左端に */
    top: 50%;
    transform: translateY(-50%);
    width: 12px;
    height: 98px;             /* 必要なら長さを調整 or 下の可変版に差し替え */
    background-color: var(--blue);
  }

  .worklead__label-3::before {
    width: 12px;
    height: 45px;       
  }

  .flex {
    display: grid;
    /* 左列（画像）は 320〜560px の範囲で 40vw に追従して可変 */
    grid-template-columns: minmax(320px, clamp(320px, 40vw, 560px)) 1fr;
    column-gap: clamp(24px, 4vw, 48px);
    align-items: center;
  }


  .flex > figure,
  .flex > .ImgBpxnico,
  .work-imagepc,
  .kanbansp {
    justify-self: center;
    align-self: center;
    width: 100%;
    max-width: none; /* 固定幅を使わない */
    margin: 0;
  }


  .flex img {
    width: 100%;
    height: auto;
    display: block;
  }

  .work-meta {
    margin: 0;
    text-align: left;
    align-self: center; /* ← 画像に対して縦中央 */
    display: grid;
    gap: 8px 12px;
  }

  .work-meta div {
    display: grid;
    grid-template-columns: 462px 1fr; /* ラベル幅を固定して行頭を揃える */
    align-items: start;               /* dt/ddの行頭を揃える */
    column-gap: 12px;
  }

  .work-meta dt { color: var(--blue); font-weight: 500; }
  .work-meta dd { color: var(--txt_black); }

  /* 不要・強すぎる指定をリセット（崩れの元） */
  .work-mock img, .work-image img { max-width: none; } /* 以前の10000pxを無効化 */

  /* 各セクションごとの想定横幅（必要に応じて微調整OK） */
  .nicoWebImg   { width: 540px; }
  .nicoiconImg  { width: 425px; }
  .ImgBpxnico   { 
    width: 555px;
    display: grid;
    grid-auto-flow: column;
    gap: 10px;
  } /* パンフ＋名刺の横並び */


  .work-imagepc { width: 550px; }

  .work-imagepc {
      display: block;
      width: 550px;
      height: auto;
}

  .kanbansp {
    display: none;
}

  .ImgBpxnico {
    display: flex;
    gap: 0 10px;
}


  .work-meta dt{ 
    font-size: 2rem;
}

  .work-meta dd{
  font-size: 1.6rem;
}

  .work-sec-title {
    font-size: 3.2rem;
    margin-bottom: 152px;
    margin-top: 140px;
  }
  
.irohaLogo {
  width: 100px;
}

.work-sec-title03 {
  margin-bottom: 40px;
  margin-top: 125px;
  font-size: 3.2rem;
}

.flextokage {
  display: flex;
}

}

@media (min-width: 769px) and (max-width: 1199px) {
  .flex {
    grid-template-columns: minmax(300px, clamp(300px, 34vw, 520px)) 1fr;
    column-gap: clamp(20px, 3.5vw, 40px);
  }
}

/* 広めPC（1200px〜）は少しゆったり */
@media (min-width: 1200px) {
  .flex {
    grid-template-columns: minmax(360px, clamp(360px, 38vw, 580px)) 1fr;
  }
}


/* CTA */
.section-works-cta{
  padding-top: 102px;
  padding-bottom: 70px;
}

.works-cta__lead {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2em; /* ← テキストと線の距離を一定に保つ */
  text-align: center;
  font-size: 1.4rem;
  color: var(--txt_black);
  font-family: "Zen Kurenaido";
  line-height: 1.8;
    margin: 40px auto 0px;
}

.works-cta__lead::before,
.works-cta__lead::after {
  content: "";
  display: inline-block;
  width: 14px;
  height: 1px;
  background: var(--blue);
}

.works-cta__lead::before {
  transform: rotate(30deg);

}

.works-cta__lead::after {
  transform: rotate(-30deg);
}

/* ===== Buttons ===== */
.btn {
  position: relative;
  display: inline-block;
  font-weight: 400;
  font-size: 1.4rem;
  text-decoration: none;
  transition: transform .1s ease, opacity .2s ease;
}

.btn-row {
  display: flex;
  justify-content: center;
  gap: 3.2%;
  flex-wrap: wrap;
}

.btn-primary {
    margin: 38px 0 0 0;
    background: var(--blue);
    color: var(--white);
    padding: 6px 52px 6px 41px;
}
.btn-secondary {
    margin: 24px 0 0 0;
    background: var(--blue);
    color: var(--white);
    padding: 6px 52px 6px 41px;
}

.btncontact {
    padding: 6px 66px 6px 56px;
}

.btn:hover { 
    opacity: .92; 
    transform: translateY(-1px);
}

/* 矢印（白 or 青） */
.btn--arrow::before,
.btn--arrow-blue::before{
  content: "";
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 0; height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
}
.btn--arrow::before{
  right: 18px;
  border-left: 6px solid var(--white);
}
.btn--arrow-blue::before{
  right: 14px;
  border-left: 6px solid var(--blue);
}

@media screen and (min-width: 769px) {

  .btn-primary {
    padding: 16px 63px 16px 52px;
  }

  .btn {
    font-size: 1.8rem;
  }

  .btn-secondary {
    padding: 16px 52px 16px 41px;
  }

  .btn--arrow::before {
    right: 28px;
  }

  .works-cta__lead {
    font-size: 1.8rem;
  }

  .works-cta__lead::before, .works-cta__lead::after {
     width: 29px;
  }

  .works-cta__lead::before {
    transform: rotate(55deg);
  } 

  .works-cta__lead::after {
    transform: rotate(-55deg);
  }

  .btn-row {
    gap: 9.2%;
  }

  .btn-secondary {
    margin: 37px 0 0 0;
  }

  .section-works-cta  {
    padding-top: 120px;
  }

  
.btncontact {
    padding: 16px 72px 16px 56px;
  }


}

/* ★ 768〜1300px：画像→テキストを縦積みで中央配置、本文は左揃え */
@media (min-width: 769px) and (max-width: 1300px) {
  .section-block .flex{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 24px !important;
  }
  .section-block .flex > figure,
  .section-block .flex > .ImgBpxnico,
  .section-block .flex > .work-imagepc,
  .section-block .flex > .kanbansp{
    width: auto !important;
    max-width: 760px !important;
    margin: 0 auto !important;
  }
  .section-block .flex img{ width:100% !important; height:auto !important; display:block !important; }

  .section-block .work-meta{
    width: min(64%, 477px) !important;
    margin: 0 auto !important;
    text-align: left !important;
    display: grid !important;
    gap: 12px 16px !important;
  }
  .section-block .work-meta > div{
    display: grid !important;
    grid-template-columns: minmax(120px,497px) minmax(0,1fr) !important;
    column-gap: 14px !important;
    align-items: start !important;
  }
  .section-block .work-sec-title{
    margin-top: 90px !important;
    margin-bottom: 40px !important;
  }

  .pconly  {
    font-size: 2.5rem;
  }
}

/* ★ iPad縦をピンポイント（保険） */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait){
  .section-block .flex{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 24px !important;
  }
}