@charset "UTF-8";
/* CSS Document */

/* ========================================
TOP HERO
======================================== */

.ns-hero{
padding:2rem 1.6rem 2rem;
}

.ns-hero__inner{
max-width:1100px;
margin:auto;
}

.ns-hero__image{
width:100%;
border-radius:2rem;
overflow:hidden;
margin-bottom:2rem;
}

.ns-hero__content{
text-align:center;
}

.ns-hero__label{
display:inline-block;
padding:.4rem 1.4rem;
border-radius:999px;
background:#ffe7c7;
color:#d9793d;
font-size:1.2rem;
font-weight:bold;
margin-bottom:1.2rem;
}

.ns-hero__title{
font-size:clamp(3rem,9vw,5rem);
color:#2f7f95;
line-height:1.2;
margin-bottom:1rem;
}

.ns-hero__lead{
font-size:1.6rem;
margin-bottom:2.5rem;
}

.ns-hero__buttons{
  display:grid;

  grid-template-columns:repeat(2,1fr);
  gap:1rem;

  max-width:100%;
}

/* ボタン */
.ns-button{
  display:flex;
  align-items:center;
  justify-content:center;

  min-height:7rem;
}

.ns-button{
display:block;
padding:1.4rem;
border-radius:999px;
background:#2f7f95;
color:#fff;
font-weight:bold;
transition:.3s;
}

.ns-button:hover{
transform:translateY(-3px);
}

@media(min-width:768px){

.ns-hero{
padding:4rem 3rem 2rem;
}

  .ns-hero__buttons{
    grid-template-columns:repeat(3,1fr);
    max-width:700px;
    margin:auto;
  }
}

/* ========================================
TOP導線ボタン
======================================== */

.ns-top .ns-button,
.ns-top .ns-button:link,
.ns-top .ns-button:visited {

  position: relative;
  display:block;

  padding:1.6rem;

  border-radius:999px;

  background:#2f7f95;

  color:#fff !important;

  font-size:2rem;
  font-weight:700;
  text-align:center;

  text-decoration:none !important;

  overflow:hidden;
  cursor:pointer;

  transition:
  transform .3s ease,
  background .3s ease,
  box-shadow .3s ease;
}

.ns-top .ns-button::after{

  content:"→";

  position:absolute;

  right:2rem;
  top:50%;

  color:#fff;

  transform:
  translateY(-50%)
  translateX(-10px);

  opacity:0;

  transition:
  transform .3s ease,
  opacity .3s ease;
}

.ns-top .ns-button:hover{

  background:#d9793d;

  color:#fff !important;

  transform:
  translateY(-5px);

  box-shadow:
  0 1rem 2rem rgba(0,0,0,.15);
}

.ns-top .ns-button:hover::after{

  opacity:1;

  transform:
  translateY(-50%)
  translateX(0);
}

/* ========================================
   SHOP SECTION 共通
======================================== */

.ns-shop-section {
  padding: 4.8rem 1.6rem;
  background: #fff;
}

.ns-shop-section__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.ns-shop-section__head {
  margin-bottom: 2.4rem;
  text-align: center;
}

.ns-shop-section__title-img {
  width: min(100%, 78rem);
  margin: 0 auto;
}

.ns-shop-section__lead {
  margin-top: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: #3a2a22;
}

.ns-shop-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap:1.6rem;
  row-gap:2.8rem;
}

.ns-shop-card {
  overflow: hidden;
  border-radius: 1.6rem;
  background: #fff;
  box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, 0.08);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.ns-shop-card a {
  display: block;
  overflow: hidden;
  cursor: pointer;
}

/*.ns-shop-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 0.35s ease;
}*/
.ns-shop-card img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:contain;
  transition:transform .35s ease;
}

.ns-shop-card h3 {
  min-height: 4.8rem;

  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 1.2rem;
  background: #1f3696;
  color: #fff;

  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: right;

  transition: background 0.25s ease;
}

@media (min-width: 768px) {
  .ns-shop-card h3 {
    min-height: 6rem;
    font-size: 1.5rem;
    padding: 0 1.6rem;
  }
}

.ns-shop-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 1.6rem 3rem rgba(0, 0, 0, 0.16);
}

/*.ns-shop-card:hover img {
  transform: scale(1.04);
}*/

.ns-shop-card:hover h3 {
  background: #2f7f95;
}

@media (min-width: 768px) {
  .ns-shop-section {
    padding: 6rem 3rem;
  }

  .ns-shop-grid {
    grid-template-columns: repeat(3, 1fr);
    column-gap:1.6rem;
    row-gap:3rem;
  }

  .ns-shop-card {
    border-radius:1.2rem;
  }
}

/* マルシェだけタイトル色変更 */
.ns-marche .ns-shop-card h3{
  background:#00c800;
  color:#fff;
}

/* マルシェだけホバー色 */
.ns-marche .ns-shop-card:hover h3{
  background:#00a800;
}

/* 常設 */
.ns-jousetsu .ns-shop-card h3{
  background:#0064ff;
  color:#fff;
}

.ns-jousetsu .ns-shop-card:hover h3{
  background:#004fd1;
}


/* ========================================
スポンサー
======================================== */

.ns-sponsor{
  margin:2rem auto 5rem;
  padding:2rem 1.6rem;
  max-width:900px;
  border-radius:1.6rem;
  background:#fff;
  box-shadow:0 1rem 2.4rem rgba(0,0,0,.08);
}

.ns-sponsor__label{
  margin-bottom:2rem;

  text-align:center;

  font-size:3.6rem;
  font-weight:800;
  line-height:1.2;

  color:#1f3696;
}

.ns-sponsor__label span{
  display:block;

  margin-top:.8rem;

  font-size:2rem;
  font-weight:700;

  color:#3a2a22;
}

.ns-sponsor__list{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.2rem;
  align-items:center;
}

.ns-sponsor__list li{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:8rem;
  padding:1rem;
  border-radius:1rem;
  background:#fffaf3;
}

.ns-sponsor__list img{
  max-width:100%;
  max-height:7rem;
  object-fit:contain;
}

@media(min-width:768px){

  .ns-sponsor{
    margin-top:0rem;
    padding:2.4rem;
  }

  .ns-sponsor__list{
    grid-template-columns:repeat(5,1fr);
  }
}

.ns-sponsor__list li a{
  display:flex;

  width:100%;
  height:100%;

  align-items:center;
  justify-content:center;

  border-radius:1rem;

  transition:
  transform .3s ease,
  box-shadow .3s ease,
  background .3s ease;
}

.ns-sponsor__list li a:hover{

  transform:translateY(-4px);

  background:#fff;

  box-shadow:
  0 .6rem 1.5rem rgba(0,0,0,.12);

}



/* ========================================
ネットDEにゃっ展2026プレビュー
======================================== */
.ns-shop-section__notice{

  max-width:800px;

  margin:5rem auto 4rem; /* ←上を増やす */

  padding:2rem;

  background:#fff;

  border-left:.6rem solid #0064ff;

  border-radius:1rem;

  text-align:center;

  line-height:1.8;

  box-shadow:
  0 .4rem 1.2rem rgba(0,0,0,.06);
}

/* プレビュー公開中 */
.notice-top{
  display:block;

  font-size:2rem;

  font-weight:700;

  color:#ff5a00;

  margin-bottom:.8rem;
}

/* 開催日 */
.notice-date{
  display:block;

  font-size:2.4rem;

  font-weight:800;

  color:#0064ff;

  margin-bottom:1rem;
}

/* ========================================
サンプル品協賛
======================================== */

.ns-sample-sponsor{
  padding:4rem 1.6rem 2rem;
  background:#fff;
}

.ns-sample-sponsor__inner{
  max-width:1100px;
  margin:0 auto;
  text-align:center;
}

.ns-sample-sponsor__title{
  width:min(100%, 90rem);
  margin:0 auto 2.4rem;
}

.ns-sample-sponsor__list{
  display:grid;
  grid-template-columns:repeat(1, 1fr);
  gap:1.6rem;
}

.ns-sample-sponsor__list li{
  border-radius:1.2rem;
  background:#fff;
  box-shadow:0 .6rem 1.6rem rgba(0,0,0,.08);
}


.ns-sample-sponsor__list a{
  display:block;
}

.ns-sample-sponsor__list img{
  width:100%;
  height:120px;
  object-fit:contain;
  padding:2rem 2rem 1rem;
}

.ns-sample-sponsor__item{
  padding:0 1rem 1.4rem;
  font-size:1.5rem;
  font-weight:700;
  line-height:1.5;
  color:#1f3696;
  text-align:center;
}

@media(min-width:768px){
  .ns-sample-sponsor{
    padding:5rem 3rem 3rem;
  }

  .ns-sample-sponsor__list{
    grid-template-columns:repeat(3, 1fr);
  }
}


/* ========================================
応援のお願い
======================================== */
.ns-support__label{
  color:#c85a00;
}

.ns-support__label span{
  color:#6b4b3e;
}


