@media (max-width: 1024px) {
  .c-top-firstView {
    height: 25vh; /* 画面の高さの25%に設定 */
  }

  .c-top-firstView img {
    width: auto; /* 幅を自動調整 */
    max-height: 25vh; /* 最大高さを画面の高さの25%に設定 */
  }
}
@media (max-width: 1024px) {
  /* ナビゲーションボタンのサイズ調整 */
  .c-sliderPrev, .c-sliderNext {
    width: 30px; /* 幅を30pxに設定 */
    height: 30px; /* 高さを30pxに設定 */
  }

  /* キャプションのフォントサイズ調整 */
  .c-caption {
    font-size: 14px; /* フォントサイズを14pxに設定 */
  }
}


@charset "EUC-JP";
.c-top-firstView{
  --firstViewSlideHeight:100%;
}
.c-top-firstView.withNews{
  --firstViewSlideHeight:calc(70vh - 50px);
}
.c-top-firstView{
  width:100%;
  height:var(--firstViewSlideHeight);
  overflow:hidden;
}
.c-top-firstView a,
.c-top-firstView img,
.c-top-firstView picture{
  width:100%;
  height:var(--firstViewSlideHeight);
  display:block;
  outline:none;
}
.c-top-firstView img{
  object-fit:cover;
  object-position:center;
}
.c-top-firstView a:hover{
  opacity:1;
}

@media screen and (max-width:1024px){
  .c-top-firstView{
    --firstViewSlideHeight:calc(100vh - 60px);
    --firstViewSlideHeight:calc(100svh - 60px);
  }
  .c-top-firstView.withNews{
    --firstViewSlideHeight:calc(100vh - 60px - 100px);
    --firstViewSlideHeight:calc(100svh - 60px - 100px);
  }
}
.c-top-news{
  --topNewsHeight:70px;
  width:100%;
  height:var(--topNewsHeight);
  position:relative;
  z-index:2;
}
.c-top-news::before{
  content:"";
  width:calc(100% - 120px);
  height:100%;
  left:0;
  top:0;
  position:absolute;
  background:var(--defaultColor);
  opacity:0.05;
}
.c-top-news .l-content{
  height:var(--topNewsHeight);
  overflow:hidden;
  position:relative;
}

@media screen and (min-width:1025px){
  .c-top-news .l-content{
    padding-right:120px;
  }
}
.c-top-news a,.c-top-news span{
  font-size:16px;
  height:var(--topNewsHeight);
  line-height:var(--topNewsHeight);
  white-space:nowrap;
  width:100%;
  text-overflow:ellipsis;
  display:block;
  color:var(--defaultColor);
  overflow:hidden;
}
.c-top-news a:hover{
  text-decoration:underline;
}
.c-top-newsListNext,.c-top-newsListPrev{
  width:60px;
  height:var(--topNewsHeight);
  position:absolute;
  top:0;
  right:0;
  cursor:pointer;
  z-index:3;
}
.c-top-newsListPrev{
  right:60px;
}
.c-top-newsListNext::before,.c-top-newsListPrev::before{
  content:"";
  width:100%;
  height:100%;
  position:absolute;
  left:0;
  top:0;
  background:var(--defaultColor);
  opacity:0.05;
}
.c-top-newsListNext::after,.c-top-newsListPrev::after{
  content:"";
  width:10px;
  height:10px;
  position:absolute;
  top:calc(50% - 5px);
  transition:right 0.2s ease-out,left 0.2s ease-out;
}
.c-top-newsListPrev::after{
  right:5px;
  border-top:1px solid var(--defaultColor);
  border-left:1px solid var(--defaultColor);
  transform:rotate(-45deg);
}
.c-top-newsListNext::after{
  left:5px;
  border-top:1px solid var(--defaultColor);
  border-right:1px solid var(--defaultColor);
  transform:rotate(45deg);
}

@media screen and (max-width:1024px){
  .c-top-news{
    --topNewsHeight:100px;
    display:flex;
    align-items:center;
  }
  .c-top-news::before{
    width:100%;
  }
  .c-top-news a,.c-top-news span{
    font-size:14px;
    line-height:20px;
    height:60px;
    white-space:normal;
    width:100%;
    padding-right:0;
    margin-top:20px;
    display:-webkit-box;
    display:box;
    overflow:hidden;
    -webkit-line-clamp:3;
    line-clamp:3;
    -webkit-box-orient:vertical;
    box-orient:vertical;
  }
  .c-top-newsListNext,.c-top-newsListPrev{
    width:35px;
    height:35px;
  }
  .c-top-newsListPrev{
    right:37px;
  }
  .c-top-newsListNext::before,.c-top-newsListPrev::before{
    content:none;
  }
  .c-top-newsListNext::after,.c-top-newsListPrev::after{
    content:"";
    width:6px;
    height:6px;
    position:absolute;
    top:calc(50% - 3px);
    transition:right 0.2s ease-out,left 0.2s ease-out;
  }
  .c-top-newsListPrev::after{
    right:5px;
    border-top:1px solid var(--defaultColor);
    border-left:1px solid var(--defaultColor);
    transform:rotate(-45deg);
  }
  .c-top-newsListNext::after{
    left:5px;
    border-top:1px solid var(--defaultColor);
    border-right:1px solid var(--defaultColor);
    transform:rotate(45deg);
  }
}
.c-top-information{
  margin-top:60px;
}
.c-top-informationImage{
  width:100%;
  position:relative;
  background-image: url();
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
.c-top-informationImage::before{
  content:"";
  padding-top:59.61%;
  display:block;
}
.c-top-informationMessage{
  width:680px;
  max-width:80%;
  padding:60px 60px 0 60px;
  line-height:200%;
  margin:-100px 0 0 auto;
  background:var(--defaultBackgroundColor);
  position:relative;
  z-index:3;
}

@media screen and (max-width:1024px){
  .c-top-informationMessage{
    width:calc(100% - 8vw);
    max-width:100%;
    padding:30px 4vw 0 4vw;
    line-height:180%;
    margin:-4vw auto 0 auto;
  }
}
.c-top-interval,
.c-top-ranking,
.c-top-message,
.c-top-freespace{
  margin-top:120px;
}

@media screen and (max-width:1024px){
  .c-top-interval,
  .c-top-ranking,
  .c-top-message,
  .c-top-freespace{
    margin-top:90px;
  }
}
.c-top-intervalImage{
  width:100%;
  max-height: 40vw;
  position:relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.c-top-intervalImage img{
  position:static;
}
.c-top-ranking .c-sliderPrev{
  position:absolute;
  right:52px;
  top:50%;
  transform:translatey(-50%);
}
.c-top-ranking .c-sliderNext{
  position:absolute;
  right:0;
  top:50%;
  transform:translatey(-50%);
}

@media screen and (max-width:1024px){
  .c-top-ranking .c-sliderPrev{
    right:37px;
  }
}
.c-top-messageImage{
  width:100%;
  position:relative;
}
.c-top-messageImage::before{
  content:"";
  padding-top:48.08%;
  display:block;
}
.c-top-message .l-content{
  width:100%;
  margin-top:40px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
}
.c-top-messageManager{
  width:33%;
}
.c-top-messageComment{
  width:calc(100% - 33% - 40px);
  line-height:200%;
}
.c-top-messageManagerName{
  font-family:var(--boldfont);
  font-weight:bold;
  font-size:24px;
  line-height:150%;
}
.c-top-messageLink{
  display:inline-block;
  margin-top:1em;
  color:var(--defaultColor);
  font-size:16px;
  line-height:150%;
  position:relative;
}
.c-top-messageLink::before{
  content:"";
  position:absolute;
  width:100%;
  height:1px;
  left:0;
  bottom:0;
  background:var(--defaultColor);
  opacity:0.5;
}

@media screen and (max-width:1024px){
  .c-top-messageImage{
    width:100%;
    position:relative;
  }
  .c-top-message .l-content{
    display:block;
  }
  .c-top-messageManager{
    width:100%;
    text-align:center;
  }
  .c-top-messageComment{
    width:100%;
    line-height:180%;
    margin-top:40px;
  }
  .c-top-messageManagerName{
    font-size:20px;
  }
  .c-top-messageLink{
    display:inline-block;
    margin-top:1em;
    color:var(--defaultColor);
    font-size:16px;
    line-height:150%;
    position:relative;
  }
}




/* --- バナーグリッド完全版 --- */

/* 外枠の共通設定 */
.main-hero-banner, .tile-menu-grid {
  padding: 0 15px !important; /* スマホ端の余白をタグと統一 */
  margin-bottom: 20px !important;
  box-sizing: border-box !important;
}

/* 1枚の大バナー */
.main-hero-banner img {
  width: 100% !important;
  height: auto !important;
  border-radius: 4px !important; /* 角丸をボタンと統一 */
  display: block !important;
}

/* 8枚のタイルグリッド */
.tile-menu-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important; /* スマホは2列 */
  gap: 10px !important;                             /* 隙間をタグと統一 */
}

.tile-menu-grid a img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important; /* 強制的に正方形にする */
  object-fit: cover !important;
  border-radius: 4px !important;
  display: block !important;
}

/* PC画面（1025px以上）での切り替え */
@media screen and (min-width: 1025px) {
  .tile-menu-grid {
    grid-template-columns: repeat(4, 1fr) !important; /* PCは4列 */
    max-width: 1200px !important;
    margin: 40px auto !important;
    padding: 0 !important;
  }
  .main-hero-banner {
    max-width: 1200px !important;
    margin: 0 auto 30px auto !important;
    padding: 0 !important;
  }
}




/* --- 白いボックスの重なりを完全に解消する --- */

.c-top-informationMessage {
  /* パソコンでの引き上げ（-100px）を解除  */
  margin-top: 0 !important; 
  margin-right: auto !important;
  margin-left: auto !important;
}

@media screen and (max-width: 1024px) {
  .c-top-informationMessage {
    /* スマホでの引き上げ（-4vw）を解除 [cite: 24] */
    margin-top: 0 !important; 
    width: 100% !important; /* 横幅を画面いっぱいに広げてスッキリさせる */
  }
}

/* ついでにその上の区画の余計な隙間も整理 */
.c-top-information {
  margin-top: 20px !important; /* バナーとの間に適度な余白を作る */
}




/* --- ブルワリーセクション：干渉防止リセット --- */
.brewery-section {
  display: block !important;    /* スライダー化を防止 */
  margin: 60px 0 !important;
  padding: 0 15px !important;
  visibility: visible !important;
}

/* 枠線を消す設定（CHECKの枠を消す） */
.brewery-section .c-sectionTitle {
  border: none !important;      /* 枠線を完全に消去 */
  background: none !important;
  text-align: center !important;
  margin-bottom: 30px !important;
}

/* --- 注目ブルワリー：真ん中寄せ & センター配置 --- */

.brewery-grid {
  display: flex !important;           /* GridからFlexboxに変更（中央寄せがしやすいため） */
  flex-wrap: wrap !important;        /* 折り返しを許可 */
  justify-content: center !important; /* ★ここが肝心！横方向の真ん中寄せ */
  gap: 15px !important;              /* ロゴ同士の隙間（7px&#12316;10pxの感覚を維持） */
  max-width: 1000px !important;      /* 広がりすぎないように少し絞る */
  margin: 0 auto !important;         /* グリッド自体を中央へ */
}

.brewery-item {
  /* スマホ：4列を維持するために幅を約21%（隙間を考慮）に設定 */
  width: calc(25% - 15px) !important; 
  max-width: 100px !important;        /* 大きくなりすぎないように制限 */
}

.brewery-item img {
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  border-radius: 50% !important;      /* 真ん丸 */
  object-fit: contain !important;
  background-color: #f5f5f5 !important;
  display: block !important;
  margin: 0 auto !important;          /* 画像自体も中央に */
}

/* PC画面での調整 */
@media screen and (min-width: 1025px) {
  .brewery-grid {
    gap: 30px !important;            /* PCでは少しゆったり配置 */
  }
  .brewery-item {
    width: 100px !important;          /* PCでは固定サイズで並べる */
  }
}

.c-featured-brewery {
  margin-top: 80px;
}

.c-featured-breweryList {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 32px;
  align-items: start;
}

.c-featured-breweryCard {
  display: grid;
  grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
  gap: 28px;
  align-items: center;
}

.c-featured-breweryImage img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.c-featured-breweryBody {
  max-width: none;
}

.c-featured-breweryName {
  margin: 0;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 600;
}

.c-featured-breweryText {
  margin: 14px 0 0;
  font-size: 16px;
  line-height: 1.9;
}

.c-featured-breweryButton {
  display: inline-block;
  margin-top: 22px;
  padding: 14px 24px;
  border: 1px solid var(--defaultColor);
  color: var(--defaultColor);
  text-decoration: none;
  line-height: 1.4;
}

.c-featured-breweryButton:hover {
  opacity: 0.8;
}

@media screen and (max-width: 1024px) {
  .c-featured-brewery {
    margin-top: 60px;
  }

  .c-featured-breweryList {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .c-featured-breweryCard {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .c-featured-breweryName {
    font-size: 24px;
  }

  .c-featured-breweryText {
    font-size: 15px;
    line-height: 1.8;
  }
}