/* styles.css — アートボード1再現：連続ブルーグラデ／非対称モザイク */
:root{
  --bg:#ffffff;
  --ink:#0e1013;
  --muted:#586070;
  --accent-red:#e6002e;
  --line:#e5e7eb;
  --max:1000px;
  --gap:20px;
  --blue-left:#c4d7ef;
  --blue-right:#4496d3;
  --cap:#ffffff;
}

html,body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:system-ui,"BIZ UDPMincho", serif;;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
      overflow-x: hidden;
}

img{max-width:100%;height:auto;display:block}
figure{margin:0}
figcaption{font-size:13px;color:var(--muted);margin-top:8px}
h1,h2,h3,p{margin:0}

.container{max-width:var(--max);margin-inline:auto;padding:clamp(16px,2vw,24px)}
.mv{background-color: #000;}
.full-bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}

/* Header */
.site-header{position: absolute; z-index: 2;left: 30px;}

/* MV video */
.mv__frame img{width: 100%;}
.mv__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Info block (under MV) */
.info-block{display:grid;gap:10px;justify-items:center;text-align:center;}
.rule{width: 80%;height:1px;background:#231815;border:0;margin:8px 0}
.info-kicker{font-size:14px;letter-spacing:.18em;color:#2a2f3a;max-width: 900px;width: 100%;}
.info-heading{font-size: 2.3rem;
    line-height: 2;
    margin-top: 50px;
    text-align: center;
    font-family: "BIZ UDPMincho", serif;
    font-weight: normal;
    letter-spacing: 10px;}
.info-lead{margin-top: 20px;
    color: #1b1f26;
    font-family: "BIZ UDPMincho", serif;
    font-size: 1.2rem;
    margin-bottom: 50px;
    line-height: 45px;
    letter-spacing: 1px;}
.badges{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;justify-content:center}
.badge{font-weight:700}
.year{color:var(--accent-red);font-weight:800;margin-right:.4em}
.gooddesign{background: linear-gradient(90deg, rgb(255 255 255 / 0%) 0%, rgb(255 255 255 / 50%) 7%, rgba(255, 255, 255, 1) 50%, rgb(255 255 255 / 50%) 93%, rgb(255 255 255 / 0%) 100%);
    display: flex;
    max-width: 900px;
    padding: 50px;gap: 50px}
.gooddesign .img-wrap{width: 100%;flex: 1;}
.gooddesign .text-wrap{width: 100%;flex: 1;text-align: left;}
/* Blue gradient wrapper (continuous, no gaps) */
.blue-wrap{
  background: linear-gradient(to right, var(--blue-left), var(--blue-right));
  color:#0b1a2a;
  padding-top: 28px;
  padding-bottom: 28px;
}
.blue-wrap .section-title,
.blue-wrap .eyebrow,
.blue-wrap .desc,
.blue-wrap figcaption{color:#0b1a2a} /* 濃いめの文字色で読みやすく */

.block{padding-top:18px;padding-bottom:18px} /* section間の余白は内側paddingに集約 */
.block + .block{border-top:0} /* 白隙間が出ないように */

/* CTA */
.cta{width: 100%;max-width: 900px;padding-top:50px;display: flex;flex-wrap:wrap;justify-content: space-between;}
.btn{display:inline-block;padding:12px 16px;border:1px solid #d0d0d0;background:#fff;color:var(--ink);font-weight:700;text-decoration:none;border: solid 1px #231815;}

/* Footer */
.site-footer{padding-bottom:24px;border-top:30px solid;border-image: linear-gradient(to right, var(--blue-left), var(--blue-right)) 30;}
.site-footer .container{font-size:13px;text-align:center}
.site-footer img{margin: auto;}
.site-footer ul{
  display: flex;
  background-color: #f0f0f0;
    margin-top: 0;
    justify-content: center;
  color: #000;
  gap: 30px;
  font-size: 0.8rem;
  padding: 10px;
  margin-bottom: 50px;
}
.site-footer ul a{color:#000;}
li{list-style: none;}
a{text-decoration: none}

/* === Bottom alignment fixes === */
:root{
  --cap-h: 28px; /* 統一キャプション高さ（1行想定）。必要なら調整可 */
}

/* For all mosaic figures: stack vertically and let image fill available height */
.mosaic figure{
  display:block;
  flex-direction:column;
}
#sec02 .mosaic figure.sm-top{
  display: flex;
}
/* Images fill figure height; bottom edges align */
.mosaic figure img{
  flex:1 1 auto;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Captions get a consistent min-height so画像下端が揃う */
.mosaic figure span{
  min-height: var(--inc);
  display:flex;
  align-items:flex-start;
  padding: 10px;
  
}
.mosaic span{
  
  padding: 10px;
}

/* 01/02 rows become equal heights so md (left) == sm-top+sm-bottom */
.mosaic-01-02{
  grid-template-rows: auto 1fr 1fr; /* Row2 == Row3 */
  align-items: stretch;
}

/* 03: row2 items same height; captions normalized */
.mosaic-03 .row2{
  align-items: stretch;
}
.mosaic-03 .row2 figure figcaption{
  min-height: var(--cap-h);
}
.comment{
  margin-top:60px;
  text-align:center;
  border-bottom: solid 1px;
  border-image: linear-gradient(to right,#0075c1,#042275)1;
  position: relative;
}
.comment h3{
    display: inline-block;
    background: linear-gradient(to right, #0075c1, #042275);
    color: #fff;
    padding: 5px 60px;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 24px;
    
    letter-spacing: 2px;
    position: relative;
}
.comment:before{
  position: absolute;
  content: "";
  height: 1px;
  width: 100%;
  top: 42px;
  left: 0;
  right: 0;
  margin: auto;
  border-bottom: solid 1px;
  border-image: linear-gradient(to right,#0075c1,#042275)1;
  z-index: 0;
}
.comment .panel{
  background:#fff;
  padding:28px 32px;
  border-radius:6px;
  text-align:left;
  line-height:1.9;
  
}
/* CTA under comment */
.comment + .cta{
  margin-top:40px;
  padding-top:30px;
  display:flex;
  justify-content:center;
}
.btn{
display: inline-flex;
    align-items: center;
    gap: 25px;
    padding: 25px 25px 25px 45px;
    border-radius: 6px;
    background: #fff;
    color: #231815;
    font-weight: 600;
    text-decoration: none;
    font-size: 1.2rem;
    text-align: center;
    letter-spacing: 1px;
    transition: 0.2s;
}
.btn::after{
  content:"▶";
  font-size:20px;
  font-family: serif;
  color: #727171;
}
.btn:hover{
  color: #fff;
  border: solid 1px #fff;
  background-color: #00000000;
}
.pc{display: block;}
.sp{display: none;}
@media screen and (max-width:767px) {
  .pc{display: none;}
  .sp{display: block;}
  .more{
    width: 80%;
    margin: auto;
    display: block;
  }
  .container {
    padding: 10px;
  }
  .site-header{
    left: 10px;
  }
  .site-header img{
    max-width: 80px;
  }
  .mv {
    padding: 20px 0;
  }
  .rule{width: 100%;}
  .video iframe{
    padding: 20px 0;
  }
  .info-heading{
    font-size: 1.5rem;
    letter-spacing: 5px;
  }
  .info-lead{
    font-size: 1rem;
    line-height: 30px;
  }
  .gooddesign {
    padding: 40px;
    gap: 30px;
    flex-wrap: wrap;
  }
  .gooddesign .img-wrap {
      flex: unset;
  }
  .gooddesign .text-wrap{
    font-size: 0.8rem;
  }
  .cta {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 30px;
  }
  .btn {
    padding: 25px 15px 25px 35px;
    font-size: 1rem;
  }
  .site-footer ul{
    gap: 15px;
    flex-wrap: wrap;
  }
  .site-footer li {
      width: 45%;
      text-align: center;
              font-size: 0.7rem;
  }
  .site-footer img {
    width: 80%;
  }
  .site-footer .container {
    font-size: 11px;
  }
}