@charset "UTF-8";

/* 共通部分
------------------------------- */
* {
    box-sizing: border-box; /* パディングとボーダーを含めて幅と高さを計算 */
  }
html {
    font-size: 100%;
}
body{
    font-family: 'Figtree', 'Noto Sans JP', sans-serif;
    line-height: 1.7;
    color: #000;
	 padding-top: 60px; 
}
a {
    text-decoration: none;
}
img {
    max-width: 100%;
}

li{list-style: none;}
.wrapper {
    max-width:1400px;
    margin: 0 auto;
}


li a{
	font-weight: 900;
	
	
}


/* 大きな背景画像 */
.big-bg {
    background-size: cover;
    background-position: center top;
}

/* 見出し */
.page-title {
    font-size:2rem;
    text-transform: uppercase;
    font-weight: normal;
	font-weight:bold;
	border-top: #000 3px solid;
    padding: 24px;
	color:#70848E;
}
.sub-title {
    font-size: 1.375rem;
    padding: 0 8px 8px;
    border-bottom: #000 3px solid;
    font-weight:900;
	text-align: center;
	
}

.top-weimage{
	margin:5rem auto 0;
    max-width:900px; 
}

.top-weimage img{
	width: 100%;
	padding:10px;
}

/* ボタン */
.button {
    font-size: 1.375rem;
    background: #0bd;
    color: #fff;
    border-radius: 5px;
    padding: 18px 32px;
}
.button:hover {
    background: #0090aa;
}

/* iframe */
iframe {
    width: 100%;
}

/* HEADER
------------------------------- */


@media (max-width:480px) {
	.topheader{
	font-size:0.75rem;
}
	

}






/* Reset CSS */
body, ul, li, a {
    margin: 0;
    padding: 0;
    list-style: none;
    text-decoration: none;
}



.container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 20px;
    margin: 0 auto;
}


header{
	margin-top:5px;
	
}

.site-header {
  position: fixed;                /* 固定表示 */
  top: 0;
  left: 0;
  width: 100%;
  background-color: #000;         /* ヘッダーの背景色 */
  z-index: 1000;
  border-radius: 20px;
  padding: 10px 20px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); /* 影を追加して浮かせる */
}




.logo img {
    height: 50px;
}

.main-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(5px);
    transform: translateY(-100%);
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out;
    z-index: 1001;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
}

.main-nav.active {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.main-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: center;
}

.main-nav li {
    margin: 20px 0;
	
}

.main-nav a {
    text-decoration: none;
    color: #FFFFFF;
    font-size:18px;
	 font-weight:900; 
    display: block;
    transition: background 0.3s;
}

.main-nav a:hover {
    color:#FF55A4;
}

.hamburger-menu {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 30px;
    height: 20px;
    cursor: pointer;
    z-index: 1002;
}

.hamburger-menu span {
    display: block;
    height: 3px;
    background-color: #FFF;
    border-radius: 3px;
    transition: all 0.3s ease-in-out;
}

.hamburger-menu.active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.hamburger-menu.active span:nth-child(2) {
    opacity: 0;
}

.hamburger-menu.active span:nth-child(3) {
    transform: rotate(-45deg) translate(8px, -6px);
}



/* ハンバーガー開いたときに表示する中央ロゴ */
.menu-open-logo {
  display: none;
}

/* ▼ ハンバーガー開いたとき中央に表示されるロゴ位置を調整 ▼ */
.main-nav.active .menu-open-logo {
  display: block;
  position: absolute;
  top: 60px; /* ← 少し下げました */
  left: 50%;
  transform: translateX(-50%);
  z-index: 1002;
}

.menu-open-logo img {
  height: 50px;
}

/* ▼ メニューリンクのデザイン変更 ▼ */
/* ハンバーガー時のナビスタイル */
@media screen and (max-width: 768px) {
  .main-nav.active {
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 80px; /* ロゴとの間隔調整 */
  }

  /* 中央にロゴ */
  .main-nav.active .logo {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
  }

  .main-nav.active .logo a {
    pointer-events: none; /* 必要に応じて削除 */
  }

  .main-nav.active .logo img {
    height: 50px;
    border: none !important;
    background: none !important;
  }

  /* ナビリンク中央配置＋デザイン */
  .main-nav ul {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
	margin-top: 105px;
  }

  .main-nav li {
    width: 200px;
  }

  .main-nav ul a {
    display: block;
    width: 100%;
    text-align: center;
    padding: 12px 0;
    font-size: 18px;
    font-weight: bold;
    color: #fff;
    background-color: transparent;
    border: 2px solid #fff;
    border-radius: 30px;
    transition: all 0.3s ease;
  }

  .main-nav a:hover {
    color: #FF55A4;
    border-color: #FF55A4;
    background-color: transparent;
  }
}


.menu-open-logo .logo-link {
  display: inline-block;
  pointer-events: none;  /* リンクとして無効にしたい場合 */
}

.menu-open-logo .logo-link img {
  height: 50px;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
}

  .main-nav .logo-link {
    border: none !important;
    background: none !important;
    padding: 0 !important;
    width: auto;
  }




@media (min-width: 769px) {
    .main-nav {
        position: static;
        width: auto;
        height: auto;
        display: flex;
        background: none;
        backdrop-filter: none;
        box-shadow: none;
        transform: none;
        transition: none;
        opacity: 1;
        pointer-events: auto;
    }

    .main-nav ul {
        display: flex;
        align-items: center;
        padding: 0;
    }

    .main-nav li {
        margin: 0 20px;
    }

    .hamburger-menu {
        display: none;
    }
}



/*アイコン*/

/* ▼ 共通：LINE・メールのアイコン */

.contact-icons {
  display: flex;
  gap: 12px;
  align-items: center;
}

/* 枠も背景もなし。画像だけ */
.contact-icons a {
  display: inline-block;
}

.contact-icons img {
  width:30px;
  height:auto;
  display: block;
}

/* ▼ PC用レイアウト調整 */
@media (min-width: 769px) {
  .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .main-nav {
    display: flex;
    align-items: center;
    gap: 20px; /* メニューとアイコンの間の余白を小さめに */
  }

  .main-nav ul {
    display: flex;
    gap: 20px;
  }
}



/* ▼ SP（ハンバーガー展開時）に表示 */


@media (max-width: 768px) {
  /* スマホのときだけ contact-icons を非表示にする */
  .contact-icons {
    display: none;
  }

  .main-nav.active .contact-icons {
    display: flex;
    justify-content: center;
  }

  .contact-icons img {
    width: 32px;
    height: 32px;
	margin-top:40px;
  }
 }

/* オーバーレイのスタイル */
.overlay {  /* オーバーレイ用の新しいスタイル */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.9);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
    z-index: 1000;
}

.overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Additional styles for nav item hover and active state */
.main-nav .nav-item {
    margin: 0 20px;
    position: relative;
}

.main-nav .nav-item a {
    color: #333;
    font-size: 18px;
    padding: 10px;
    display: block;
    transition: color 0.3s ease;
    z-index: 100;
}

.main-nav .nav-item a:hover,
.main-nav .nav-item a:focus {
    color: #e91e63; /* ピンク色 */
}

.main-nav .nav-item a::after {
    content: '';
    display: block;
    width: 0;
    height: 1px;
    background: #e91e63; /* ピンク色 */
    transition: width 0.3s;
    position: absolute;
    bottom: 0;
    left: 0;
}

.main-nav .nav-item a:hover::after,
.main-nav .nav-item a:focus::after,
.main-nav .nav-item a.active::after {
    width: 100%;
}






/* HOME
------------------------------- */

#home .page-title {
    text-transform: none;
}
.home-content {
    text-align: center;
    
}
.home-content p {
    font-size: 1rem;
    margin: 10px 0 3px;
	text-align: left;
}

/* NEWS
------------------------------- */
#news {
    /*background-image: url("../images/top1.jpg");*/
    height: 270px;
    margin-bottom: 40px;
}
#news .page-title {
    text-align: center;
}
.news-contents {
    display: flex;
    justify-content: space-between;
    margin-bottom: 50px;
}

/* 記事部分 */

.post-info {
    position: relative;
    padding-top: 4px;
    margin-bottom: 40px;
}
.post-date {
    background: #0bd;
    border-radius: 50%;
    color: #fff;
    width: 100px;
    height: 100px;
    font-size: 1.625rem;
    text-align: center;
    position: absolute;
    top: 0;
    padding-top: 10px;
}
.post-date span {
    font-size: 1rem;
    border-top: 1px rgba(255,255,255,.5) solid;
    padding-top: 6px;
    display: block;
    width: 60%;
    margin: 0 auto;
}
.post-title {
    font-family: "Yu Mincho", "YuMincho", serif;
    font-size: 2rem;
    font-weight: normal;
	border-bottom: 2px #c8cccd solid;
}
.post-title,
.post-cat {
    margin-left:0px;
}
article img {
    margin-bottom: 20px;
}
article p {
    margin: 1rem;
}

.allwhite{
	margin: 0 auto;
	padding: 10px;
}


/*項目*/

.image {
    flex: 1;
    max-width: 50%;
	position: relative;
    left:-50px; /* 画像を右にずらします */
	top:-40px;
}

.image img {
    width: 100%;
    height: auto;
    border-radius: 10px;
}


.text {
    flex: 1;
    max-width: 50%;
}


.text h2 {
	display:inline-block;
    font-size: 24px;
    color: #003366;
	background-color:#000000;
	padding:3px;
}

.text p {
    font-size: 16px;
    line-height: 1.5;
}

/* サイドバー */
aside {
    width: 22%;
	margin-top:1.3% 
}
.sub-menu {
    margin-bottom: 60px;
    list-style: none;
}
.sub-menu li {
    border-bottom: 1px #ddd solid;
}
.sub-menu a {
    color: #432;
    padding: 10px;
    display: block;
}
.sub-menu a:hover {
    color: #0bd;
}
aside p {
    padding: 12px 10px;
}

/* MENU
------------------------------- */
#menu {
    /* background-image: url("../images/top1.jpg");*/
     /*min-height:60vh;*/
}
.menu-content {
    max-width: 560px;
    margin-top: 10%;
}
.menu-content .page-title {
    text-align: center;
}
.menu-content p {
    font-size: 1.125rem;
    margin: 10px 0 0;
}

.grid {
  display: grid;
  gap: 26px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  margin-top: 6%;
  margin-bottom: 50px;
}

/* CONTACT
------------------------------- */
#contact {
    background-image: url("../images/main.jpg");
    min-height: 100vh;
}

/* フォーム */
form div {
    margin-bottom: 14px;
}
label {
    font-size: 1.125rem;
    margin-bottom: 10px;
    display: block;
}
input[type="text"],
input[type="email"],
textarea {
    background: rgba(255,255,255,.5);
    border: 1px #fff solid;
    border-radius: 5px;
    padding: 10px;
    font-size: 1rem;
}
input[type="text"],
input[type="email"] {
    width: 100%;
    max-width: 240px;
}
textarea {
    width: 100%;
    max-width: 480px;
    height: 6rem;
}
input[type="submit"] {
    border: none;
    cursor: pointer;
    line-height: 1;
}

/* 店舗情報・地図 */
#location {
    padding: 4% 0;
}
#location .wrapper {
    display: flex;
    justify-content: space-between;
}
.location-info {
    width: 22%;
}
.location-info p {
    padding: 12px 10px;
}
.location-map {
    width: 74%;
}

/* SNS */
#sns {
    background: #FAF7F0;
    padding: 4% 0;
}
#sns .wrapper {
    display: flex;
    justify-content: space-between;
}
#sns .sub-title {
    margin-bottom: 30px;
}
.sns-box {
    width: 30%;
}

/* フッター
------------------------------- */
footer {
    background: #c5c7d5;
    text-align: center;
    padding: 26px 0;
}
footer p {
    color: #fff;
    font-size: 0.875rem;
}

/* モバイル版s
------------------------------- */
@media (max-width: 600px) {
    .page-title {
        font-size:1.2rem;
    }
    .page-header {
        flex-direction: column;
        align-items: center;
    }

    /* HEADER */
    .main-nav {
        font-size: 1rem;
    }
    .main-nav li {
        margin: 0 20px;
    }

    /* HOME */
    .home-content {
        margin-top:1%;
    }

    /* NEWS */
    .news-contents {
        flex-direction: column;
    }
    #news .page-title {
        margin-top: 30px;
    }
    article,
    aside {
        width: 100%;
    }
    aside {
        margin-top: 60px;
    }
    .post-info {
        margin-bottom: 30px;
    }
    .post-date {
        width: 70px;
        height: 70px;
        font-size: 1rem;
    }
    .post-date span {
        font-size: 0.875rem;
        padding-top: 2px;
    }
    .post-title {
        font-size: 1.375rem;
    }
    .post-cat {
        font-size: 0.875rem;
        margin-top: 10px;
    }
    .post-title,
    .post-cat {
        margin-left:0px;
    }

    /* MENU */
    .menu-content {
        margin-top: 20%;
    }

    /* CONTACT */
    #contact .page-title {
        margin-top: 40px;
    }

    /* フォーム */
    input[type="text"],
    input[type="email"],
    textarea {
        max-width: 100%;
    }

    /* 店舗情報・地図 / SNS */
    #location .wrapper,
    #sns .wrapper {
        flex-direction: column;
    }
    .location-info,
    .location-map,
    .sns-box {
        width: 100%;
    }
    .sns-box {
        margin-bottom: 30px;
    }
	
	.all_title {
    font-size: 3rem;
}
}


.topimage{width:100%;
          height:auto;
          object-fit:cover;
}

.sp{display: none;}

@media (max-width: 748px) {
  .pc{
   display:none;
  }
	
  .sp{display:block;}
}




/*popup*/

.main_02{
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap:8px;
	
}

.section_02{
	text-align:left;
	padding:.75rem;
	border: solid #D9D9D9 3px;
	background-color: #EBEBEB;
}



.Portfolio{
	display: grid;
	grid-template-columns:1fr 1fr 1fr;
	grid-template-rows:auto;
	gap:10px;
}

.item1{
	grid-column:1/2;
	
}
.item2{
	grid-column:2/3;
	
}
.item3{grid-column:3/4;
	   grid-row:1/3;
	   
}

.item3 img{
	width: 100%;
}

.item4{
	grid-column:1/2;
	grid-row:2/3;
	
}

.item5{
	grid-column:2/3;
	grid-row:2/3;
	
}


 .Portfolio .item {
            position: relative;
            overflow: hidden;
            border-radius: 10px;
        }

  .overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(161, 173, 179, 0.7);
            transition: opacity 0.3s;
            border-radius: 10px;
        }

.Portfolio .item:hover .overlay {
            opacity: 0;
        }


.text-overlay {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: white;
	font-size:2rem;
	padding: 10px;
	opacity: 1;
	transition: opacity 0.3s;
}

.Portfolio .item:hover .text-overlay {
	opacity: 0;
}

/*フッター*/




footer {
    background-color: #000;
    color: #fff;
    padding:40px 20px 5px;
	 border-top-left-radius: 20px;
  border-top-right-radius: 20px;
	
}

footer ul {
  display: flex;
  margin: 0 auto;
  gap: 30px
	
}

footer li a{
  color:#fff; 
	
}

.footer-container {
    display: flex;
    flex-direction: column;
    text-align: center;
	max-width:1200px;
	margin: 0 auto;
}

.footer-section {
    margin:0 auto;
	padding:10px 0px; 
}


.footer-section ul li a:hover {
    color: #FF55A4;
}


.logo{
	width:50%;
}

.footer-bottom{
	font-size:10px;
	margin: 6px 0px 5px;
}



@media (max-width: 480px) {
.site-header {
  border-radius:8px;
}

footer {
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
}

}

/*CONTACT*/

.section_04{background-color:#B5C5CD;
	        text-align: center;
	        padding:100px; 
            
}

@media (max-width: 600px) {
	
			.section_04 {
    padding: 22px;
}
   
    }

.inner{
	background: #FCFCFC;
	max-width:800px;
	padding:50px;
	margin: 0 auto;
}

.section_04 p{
	text-align: center;
	margin: 0px 0 30px;
}

.bt_link{
	    border: 4px solid #f09ba5;
        color: #ee7785;
	    padding:80px 20px;
	    margin:0 auto;
}


 .bt_link {
            background-color:#191919;
            border: none;
            border-radius: 25px;
            color: white;
            padding: 15px 30px;
            font-size: 16px;
            cursor: pointer;
            transition: background-color 0.3s, transform 0.3s;
            box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
        }
        .bt_link:hover {
            background-color: #ff65a3;
            transform: translateY(-3px);
        }
        .bt_link:active {
            background-color: #ff4f8b;
            transform: translateY(1px);
        }



.all_title{
	color:#000;
	font-size:5rem;
	padding-top: 40px;
	
}

.all_title.nextpagetitle{
	margin-top:5rem;
}

.design-title{
	text-align: center;
	font-size: 3rem;
	font-weight:bold;
	color:#000;
	margin-bottom:60px;
	position: relative;
	padding:30px 0 30px;
}



.design-title::after,
.design-title::before {
  content: '';
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #000;
}

.design-title::before {
  bottom: 0;
}

.design-title::after {
  bottom: 6px; /* 2本目の線との間隔 */
}




@media (max-width: 600px) {
.design-title{
	text-align: center;
	font-size:2rem;
	font-weight:bold;
}}





.moving-text p{
  text-stroke: 5px black;
  color: #C2C9D0;
  font-size:10rem;
}

.moving-text {
  /* 要素からはみ出た部分を隠す */
  white-space: nowrap; /* テキストの改行を禁止 */
  animation: moveText 50s linear infinite; /* アニメーションを定義 */
}

@keyframes moveText {
  0% { transform: translateX(0); } /* 最初はテキストを元の位置に配置 */
  100% { transform: translateX(-100%); } /* 最後にテキストを要素幅の100%左に移動 */
}




.col_2 {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}

.col_2 > * {
    width: calc(50% - 12px);
    margin-right: 12px;
    margin-bottom: 12px;
    border-right: 50px solid #B5C5CD;
    color: #333333;
    border-radius: 0 50px 0 0;
    box-sizing: border-box; /* ボックスのサイズを正確に計算 */
}

.col_2 > *:nth-child(2n) {
    margin-right: 0;
}

.text_container span{
	font-weight:bold;
	font-size:1.3rem;
}


@media screen and (max-width: 960px) {
    .col_2 > * {
        width: 100%;
        margin-right: 0;
    }
}

.inner_item .inner_content {
    display: flex;
    align-items: center;
    padding: 10px;
    box-sizing: border-box;
	background-color:#f2f4f5;
	text-align: left;
}


@media screen and (max-width:480px) {
  .inner_item .inner_content {
	display:block;
    align-items: center;
    padding: 10px;
    box-sizing: border-box;
	background-color:#f2f4f5;
}
	
.image_container {
    margin: 0 auto;
}
	
	.col_2 > * {
    border-right: 36px solid #B5C5CD;
		}
	
	.text_container span{
	font-weight:bold;
	font-size:1.2rem;
	text-align: left;
}
}

.image_container {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 100px; /* 画像の最大幅を設定 */
}

.text_container {
    flex: 2;
    padding: 0 10px;
    overflow: hidden; /* テキストがはみ出さないように隠す */
    text-overflow: ellipsis; /* はみ出たテキストを省略表示 */
}

.left_image {
    max-width: 100%;
    height: auto;
    display: block;
}


.image_container {
  flex: 1;
  height: 100%; /* 高さを親要素に合わせる */
  display: flex; /* 子要素をフレックスボックスにする */
  align-items: center; /* 子要素を縦中央に揃える */
  justify-content: center; /* 子要素を横中央に揃える */
}

.text_container {
  flex: 2;
  padding: 0 10px; /* テキストに左右の余白を追加 */
}

.left_image {
  max-width: 100%;
  max-height: 100%; /* 親要素内に収めるために最大高さを設定 */
  height: auto; /* 画像のアスペクト比を維持 */
  display: block;
}



/*テキストアニメーション*/
.scroll-text-container {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 120px;
}

.scroll-text {
  display: flex;
  white-space: nowrap;
  position: absolute;
  animation: marquee 40s linear infinite; /* アニメーション設定を調整 */
  min-width: 100%; /* コンテナ内で文字が切れないようにする */
}

.scroll-text span {
  font-size: 5em;
  font-weight: bold;
  padding-right:0.5em; /* テキスト間の隙間 */
  -webkit-text-stroke: 2px #000; /* ペールトーンの水色のふちどりを設定 */
  /*color: transparent; /* 内側を透明に設定 */
}

@media screen and (min-width: 1200px) {
  .scroll-text span {
    font-size: 4em; /* 大きすぎるのを抑える */
  }
}


/* メディアクエリ（画面幅600px以上の場合） */


/* アニメーションキーフレーム */
@keyframes marquee {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}

.lpimage{display: block;
    margin: 0 auto;}


.design {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width:1000px; /* 親要素の幅を画面幅に制限 */
    box-sizing: border-box; /* パディングやボーダーを含めて幅を計算 */
    padding: 0 10px; /* 画面両端に余白を追加 */
	margin:0 auto;
}

.design img {
  display: block;
}

.webimage1 {
    width: 65%; /* 画像1の幅を調整 */
    height: auto;.design img {
  display: block;
}
}

.webimage2 {
    width: 30%; /* 画像2の幅を調整 */
    height: auto;
}


@media (max-width: 600px) {
.webimage1 {
    width: 52%; /* 画像1の幅を調整 */
    height: auto;
}
}




.sentence{
	max-width:1200px;
	margin:0 auto;
}





/*追加*/

.block-content {
  border: 3px solid #000;            /* 薄いグレーの枠線 */
  border-radius: 20px;               /* 角を丸く */
  padding: 30px;                     /* 内側に余白をとる */
  background-color: #fdfdfd;         /* 優しい白背景 */
  box-shadow: 0 4px 12px rgba(0,0,0,0.1); /* ふんわり影で立体感 */
  max-width:1000px;                  /* 読みやすい横幅 */
  margin: 40px auto;  
  transition: background-color 0.4s ease, color 0.4s ease;
  cursor: pointer;/* 中央寄せ＆上下余白 */
}


.block-content img {
  border-radius: 20px; /* 画像の角も軽く丸めると統一感が出ます */
  display: block;
  max-width: 100%;
  height: auto;
  margin-bottom: 20px;
}

.block-content:hover {
  background-color: #000;
  color: #fff;
}

/* 親がホバーされたとき、子の下線も白に */
.block-content:hover .sub-title {
  border-bottom-color: #fff;
}

.block-content.clicked {
  background-color: #000; /* 黒背景 */
  color: #fff;            /* 白文字 */
}



/*bana01用ブラックコンテンツ*/

.grid .item {
  border: 3px solid #000;
  border-radius: 20px;
  padding: 20px;
  background-color: #fdfdfd;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  transition: background-color 0.4s ease, color 0.4s ease;
  cursor: pointer;
  text-align: center;
}

.grid .item img {
  border-radius: 20px;
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto 15px;
}

.grid .item p {
  font-size: 1.2rem;
  font-weight: bold;
  color: #000;
  transition: color 0.4s ease;
}

/* ホバー時の黒背景・白文字 */
.grid .item:hover {
  background-color: #000;
  color: #fff;
}

.grid .item:hover p {
  color: #fff;
}



.all_title {
  position: relative;
  font-size: 5rem;
  color: #000;
  margin-top: 40px;
  padding-bottom: 20px;
  text-align: center;
}

.all_title::after,
.all_title::before {
  content: '';
  position: absolute;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #000;
}

.all_title::before {
  bottom: 0;
}

.all_title::after {
  bottom: 6px; /* 2本目の線との間隔 */
}





/*ヒーローコンテンツ*/
.hero-wrapper {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  padding: 6rem 2rem 2rem;
  transition: background-color 0.3s ease;
}

.hero-wrapper:hover {
  background-color: #000;
}

.grid-item {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  border: 3px solid #000;
  background-color:#FFFFFF;
  transition: background-color 0.4s ease;
}

.grid-item:hover {
  background-color: rgba(0, 0, 0, 0.3);
}

.grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.grid-item.img1 {
  grid-column: 1 / 3;
  grid-row: 1 / 3;
  aspect-ratio: 16 / 9;
}

.grid-item.img2 {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
  aspect-ratio: 3 / 2.2;
}

.grid-item.img3 {
  grid-column: 4 / 5;
  grid-row: 1 / 2;
  aspect-ratio: 3 / 2.2;  
}

.grid-item.kimotoyuka {
  grid-column: 3 / 5;        /* 3列目〜4列目にまたがる */
  grid-row: 2 / 3;           /* ← 上段は侵食せず */
  background-color: #000;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.5rem;
  font-weight:900;
  height: 100%;              /* 高さ指定 */
  min-height:8rem; 
  color: #FFFFFF;/* ← 隙間を隠すために少し縦幅を増やす */
}

.grid-item.banner {
  aspect-ratio: 4 / 4;
}

.grid-item.text-box {
  background-color: #111;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.5rem;
  transition: background-color 0.4s ease;
   font-weight: 900;
}

.grid-item.text-box:hover {
  background-color: rgba(0, 0, 0, 0.3);
}

/* ✅ スマホ対応 */
@media screen and (max-width: 768px) {
  .hero-wrapper {
    grid-template-columns: 1fr 1fr;
    padding: 6rem 1rem 2rem;
  }

  .grid-item.img1 {
    grid-column: 1 / 3;
    grid-row: auto;
    aspect-ratio: 16 / 9;
  }

  .grid-item.img2 {
    grid-column: 1 / 2;
    grid-row: auto;
    aspect-ratio: 3/ 2.2;
  }

  .grid-item.img3 {
    grid-column: 2 / 3;
    grid-row: auto;
    aspect-ratio: 3 / 2.2;
  }

  .grid-item.kimotoyuka {
    grid-column: 1 / 3;
    grid-row: auto;
    font-size: 1.3rem;
  }

  .grid-item.banner,
  .grid-item.text-box {
    grid-column: span 1;
    grid-row: auto;
    font-size: 1rem;
  }
	
	.wrapper{padding:0 1rem; }
}



/* ホバー時：全体背景を黒に */
.hero-wrapper:hover {
  background-color: #000;
}

/* ホバー時：KIMOTOYUKA と text-box は白背景＆黒文字に */
.hero-wrapper:hover .grid-item.kimotoyuka,
.hero-wrapper:hover .grid-item.text-box {
  background-color: #fff;
  color: #000;
  border-color: #000;
}






/*bana01のブ分*/

/* 拡大時のオーバーレイ */

/* オーバーレイ全体 */
.image-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.8);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.image-overlay.show {
  display: flex;
}

.image-container {
  position: relative;
  display: inline-block;
  padding-right: 20px; /* ボタンとの距離を近づける */
}

.image-container img {
  height:60vh;
  max-width: 90vw; /* 横幅も制限 */
  object-fit: contain;
}

.close-btn {
  position: absolute;
  top: -20px;     /* さらに上に */
  right: -20px;   /* 画像に近づける */
  width: 32px;
  height: 32px;
  background: #fff;
  color: #000;
  border-radius: 50%;
  font-size: 20px;
  text-align: center;
  line-height: 32px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  z-index: 10000;
}

/* スマホ対応：さらに調整 */
@media screen and (max-width: 600px) {
  .image-container {
    padding-right: 10px;
  }
  .close-btn {
    top: -18px;
    right: -10px;
    width: 30px;
    height: 30px;
    font-size: 18px;
    line-height: 30px;
  }
}


@media (max-width: 600px) {

.all_title {
    font-size: 3rem;
}}



