* {margin: 0; padding: 0; box-sizing: border-box;}
body, html {
  font-family: sans-serif;
  background-color: #111;
  color: #fff;
  line-height:1.7;
  scroll-behavior: smooth;

}

a {
	text-decoration:none;
	color:inherit;
	}


header {
  position: relative;
  height: 70vh;
  overflow: hidden;
}

/** 共通カラー設定 **/
:root {
  --col01:#57504a;
  --col02:#7592bb;
  --col03:#9a8991;
  --col04:#899d7f;
}


/*** 基本フォント指定 ***/
h1 {
  font-family: 'Zen Maru Gothic', 'Playfair Display', serif;
  font-weight: 500;
	}
h2 {
  font-family: 'Zen Maru Gothic', 'Playfair Display', serif;
  font-weight: 500;
}
h3 {
  font-family: 'Zen Maru Gothic', 'Yomogi', sans-serif;
}

.category_font {
	font-family: 'Zen Maru Gothic', 'Yomogi', sans-serif;
	font-style: italic;
	font-size:1.2rem;
	}

.catch {
	font-family: sans-serif;
	font-size:21px;
	color:#B8860B;
	}

/***　傍点設定　***/
.bouten {
  /* 途中で改行されるとレイアウトが崩れるので */
  white-space: nowrap;
  ruby-position: over;      /* ルビを上側に */
  ruby-align: center;       /* 中央寄せ（ブラウザ依存） */
}

.bouten rt {
  font-size: 1em;         /* 傍点の大きさ */
  line-height: 1;           /* 上下の詰まり具合 */
  margin-bottom:-0.5em;
/**  letter-spacing: 0.4em;    点同士の間隔（＝見た目の距離調整） **/
}



/*** Section毎設定 ***/


/*** ヘッダー部 ***/
.logo_section p{
  font-family: 'Shippori Mincho B1', serif;
  font-size:14px;
}
@media screen and (max-width:768px){
.logo_section p{
  font-size:11px;
  text-align:right;
}
}


/* -------------------------------------- */
/* 1. コンテナ設定: 2枚の画像を重ねるための設定 */
/* -------------------------------------- */
.logo-container {
    /* 必要に応じて幅と高さを指定（画像のサイズに合わせる） */
    display: block; 
    width: 125px;  /* 実際の画像の幅に合わせて変更 */
    height: 50px; /* 実際の画像の高さに合わせて変更 */
    position: relative; /* 子要素を重ねるための基準 */
}

/* -------------------------------------- */
/* 2. 画像の重ね方設定 */
/* -------------------------------------- */
.logo-container img {
    position: absolute; 
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* -------------------------------------- */
/* ホバー画像の設定とトランジション */
/* -------------------------------------- */

/* ホバー画像を初期状態では透明にする */
.logo-hover {
    opacity: 0; 
    /* ここが「ふわっと」の鍵です。0.5秒かけて透明度を変化させる */
    transition: opacity 0.5s ease-in-out; 
}

/* マウスオーバー時（ホバー時）にホバー画像を不透明にする */
.logo-container:hover .logo-hover {
    opacity: 1;
}



/*** サマリー部 ***/

.summary-section {
	background: #ddd;
	color: #000;
	padding: 60px 20px;
	}
.summary-section .summary-title {
	text-align:center;
	}
.summary-section .summary-title h2{
	font-size: 2rem;
	}
.summary-section .checklist p{
	font-size:14px;
	}
.summary-section .summary-title img{
	width:300px;
	margin-top:20px;
	}
@media screen and (max-width:768px){
.summary-section {
	padding:20px;
	}
.summary-section .summary-title {
	display:block;
	text-align:center;
	}
}


.summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}
.summary-grid a {
	display:block;
	position:relative;
	overflow:hidden;
	}

.summary-section .summary-grid a:first-child {
  background: var(--col01)url(../images/cat01.png) no-repeat;
  background-position:top -40px right -40px;
}

.summary-section .summary-grid a:nth-child(2) {
  background: var(--col02)url(../images/cat02.png) no-repeat;
  background-position:top -40px right -40px;
}
.summary-section .summary-grid a:nth-child(3) {
  background: var(--col03)url(../images/cat03.png) no-repeat;
  background-position:top -40px right -40px;
}
.summary-section .summary-grid a:last-child {
  background: var(--col04)url(../images/cat04.png) no-repeat;
  background-position:top -40px right -40px;
}

/* 白い膜 */
.summary-section .summary-grid a::after{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(255,255,255,0);  /* 通常は透明 */
  transition: background 1s ease;
  pointer-events:none;              /* クリック邪魔しない */
}
.summary-section .summary-grid a:hover::after{
  background: rgba(255,255,255,0.2); /* 0.05〜0.15で調整 */
}


.summary-card {
  padding: 20px;
  border-radius: 12px;
  text-align: left;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.summary-card h3 {
  margin-bottom: 20px;
  color: #fff;
  line-height:1.7;
}
.summary-card p {
  color: #fff;
}


.listing a{
	text-decoration:none;
	color:#000;
	}

.listing .row {
	display: flex;
	text-decoration: none;
	color: inherit;
	padding: 8px;
	text-align:center;
	align-items:center;
}
.listing .row.title {
	color:#fff;
	}

.summary-section #s01 .title {
  background: var(--col01);
}
.summary-section #s02 .title {
  background: var(--col02);
}
.summary-section #s03 .title {
  background: var(--col03);
}
.summary-section #s04 .title {
  background: var(--col04);
}


a .row:hover {
	background-color: #f0f0f0;
}
.cell1 {
  flex-basis: 150px;
  padding: 4px 8px;
}
.cell2 {
  flex-basis: 100px;
  padding: 4px 8px;
}
.cell3 {
  flex:1;
  padding: 4px 8px;
}
.cell4 {
  flex-basis: 100px;
  padding: 4px 8px;
}
.row.content .cell3{
	text-align:left;
	}

@media screen and (max-width:768px){

.listing .row.title {
	display:none;
	}
.listing a::before {
	margin-top:20px;
	border:2px solid #ddd;
	width:50px;
	}
.listing .row {
	display: block;
.cell1 {
	display:inline;
	margin-top:20px;
	border-bottom:1px solid #000;
	marign-bottom:20px;
	position:relative;
	}
.cell1::after {
	position:absolute;
	content: "GO ▶";
	right:10px;
	}
.cell2::after {
	content: " 文字";
	}
/**
.cell4::before {
	content: "score: ";
	}
.cell4::after {
	content: " 点";
	}
**/
}
.listing .line{
	border:3px dotted #eee;
	}

#s01 .cell1 {
	background:var(--col01);
	display:block;
	color:#fff;
	}
#s02 .cell1 {
	background:var(--col02);
	display:block;
	color:#fff;
	}
#s03 .cell1 {
	background:var(--col03);
	display:block;
	color:#fff;
	}
#s04 .cell1 {
	background:var(--col04);
	display:block;
	color:#fff;
	}
}



.gallery-item .text-box {
  font-family: 'Kosugi Maru', 'Noto Sans JP', sans-serif;
}
.philosophy-section h2 {
  font-family: 'Zen Maru Gothic', 'Playfair Display', serif;
  font-weight: 500;
}




.factory-section h2 {
  font-family: 'Zen Maru Gothic', 'Playfair Display', serif;
  font-weight: 500;
}
@media screen and (max-width:768px){

	.philosophy-section h2 {
	font-size:18px!important;
	font-weight: 300;
	}
	.philosophy-section h2 span{
	font-size:16px;
	font-weight: 300;
	}
	.factory-section h2 {
	font-size:18px!important;
	font-weight: 300;
	}
}
.philosophy-section p {
  font-family: 'Shippori Mincho B1', serif;
}
.factory-section p {
  font-family: 'Shippori Mincho B1', serif;
}

    .swiper {
      width: 100%;
      height: 100%;
    }

    .swiper-slide {
      background-size: cover;
      background-position: center;
    }

    .navbar {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 70px;
      background: rgba(255, 255, 255, 0.8);
			backdrop-filter: blur(5px); /* 背景ぼかし（モダン） */
			box-shadow: 0 2px 6px rgba(0,0,0,0.1); /* 下に薄い影 */
			display: flex;
			justify-content: space-between;
			align-items: center;
			padding: 0 20px;
			z-index: 100;
    }

    .logo {
      height: 50px;
    }

    .menu-toggle {
      font-size: 24px;
      cursor: pointer;
      z-index: 30;
      color: #000;
    }

    .menu {
      position: fixed;
      top: 70px;
      left: 0;
      width: 100%;
      background: rgba(255, 255, 255, 0.95);
      display: none;
      flex-direction: column;
      padding: 10px 20px;
      z-index: 25;
    }

    .menu.show {
      display: flex;
    }

    .menu a {
      text-decoration: none;
      color: #333;
      padding: 10px 0;
      font-size: 1rem;
      border-bottom: 1px solid #ddd;
    }





    .overlay-text {
      position: absolute;
      bottom: 10%;
      left: 50%;
      transform: translateX(-50%);
      color: white;
      font-size: 2rem;
      z-index: 10;
      text-shadow: 1px 1px 4px rgba(0,0,0,0.6);
    }

    .gallery-wrapper {
      padding: 40px 10px;
    }

    .gallery-wrapper img{
		width:300px;
		display:block;
		margin:0 auto 50px;
    }


    .gallery {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
    }


    .gallery-item {
      position: relative;
      overflow: hidden;
	display:flex;
    }
    .gallery-item a {
		text-decoration:none;
		display:block;
		border-radius:10px;
		flex:1;
		display:flex;
		align-items:center;
	}


/* 白い膜 */
    .gallery-item a::after{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(255,255,255,0);  /* 通常は透明 */
  transition: background 1s ease;
  pointer-events:none;              /* クリック邪魔しない */
}
    .gallery-item a:hover::after{
  background: rgba(255,255,255,0.2); /* 0.05〜0.15で調整 */
}



    .gallery-item p {
		padding:30px 30px 80px;
		font-size:32px;
		font-family: 'Shippori Mincho B1', serif;
		color:#fff;
	}

    .gallery-item a.cat01 {
		background:var(--col01);
	}
    .gallery-item a.cat02 {
		background:var(--col02);
	}
    .gallery-item a.cat03 {
		background:var(--col03);
	}
    .gallery-item a.cat04 {
		background:var(--col04);
	}

    .gallery-item .text-box {
      position: absolute;
      bottom: 20px;
      left: 20px;
      right: 20px;
      background: rgba(0, 0, 0, 0.6);
      color: #fff;
      padding: 10px;
      font-size: 0.9rem;
      line-height: 1.5;
      border-radius: 4px;
    }

    @media (max-width: 1024px) {
      .gallery {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media (max-width: 480px) {
      .gallery {
				display:block;
      }
			.gallery-item {
				margin-bottom:10px;
			}
    }


@media screen and (max-width:768px){
	.gallery-item .text-box::after {
		position:absolute;
		content:"GO ▶";
		right:10px;
	}
}




.circle-text {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  font-size: 1rem;
  font-weight: bold;
  color: white;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(1);
  transform-origin: center center;
  animation: pulse 7s ease-in-out infinite;
  z-index: 9;
}

@keyframes pulse {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    transform: translate(-50%, -50%) scale(1.05);
  }
}


.media-section {
  background:#000;
	padding:50px; 
  color: #fff;
}


.media-section p {
  line-height: 1.8;
  font-size: 1rem;
  margin-bottom: 0.5em;
}


.philosophy-section {
  background-image: 
    linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
    url('../images/concept.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  padding: 100px 20px;
  color: #fff;
}
.philosophy-section .overlay {
  background-color: rgba(0, 0, 0, 0.55);
  padding: 60px 30px;
  max-width: 900px;
  margin: 0 0 0 auto; /* 右寄せにして左側の顔を見せる */
  border-radius: 12px;
}

.philosophy-section p {
  line-height: 1.8;
  font-size: 1rem;
  margin-bottom: 0.5em;
}

.navbar .logo_section {
	display:flex;
	gap:10px;
	align-items:center;
	color:#000;
	}


.factory-section {
  background-image: 
    linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
    url('../images/fountainpen.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  padding: 100px 20px;
  color: #fff;
}
.factory-section .overlay {
  background-color: rgba(0, 0, 0, 0.55);
  padding: 60px 30px;
  max-width: 900px;
  margin: 0 auto 0 0; /* 左寄せに */
  border-radius: 12px;
}

.factory-section p {
  line-height: 1.8;
  font-size: 1rem;
  margin-bottom: 0.5em;
}

@media screen and (max-width:768px){
.factory-section {
  background-image: 
    linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0.2)),
    url('../images/fountainpen.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  padding: 100px 20px;
  color: #fff;
}
}

.factory-section img {
	max-width:100%;
	}

/*** メディア紹介用スライダー Splide.js 用 ***/

.image-strip .splide__track {
  overflow: hidden;
}

.image-strip .splide__list {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  padding: 0 !important;
  margin: 0 !important;
  justify-content: flex-start !important;
}

.image-strip .splide__slide {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.image-strip .splide__slide img {
  height: 200px;
  width: auto;
  object-fit: contain;
  border-radius: 6px;
  display: block;
}


/* 共通スタイル */
.swiper-slide {
  background-size: cover;
  background-position: center;
}

/* 通常時（PCなど） */
.slide1 {
  background-image: url('../images/main.png');
}
.slide2 {
  background-image: url('../images/slide2.jpg');
}

/* スマホなど、横幅480px以下のとき */
@media screen and (max-width: 480px) {
  .slide1 {
    background-image: url('../images/main.png');
  }
  .slide2 {
    background-image: url('../images/slide2_sp.jpg');
  }
}

/* 動画スライド用 */
.slide3 video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media screen and (max-width: 480px) {
  .slide3 video {
    /* モバイルでの調整が必要な場合に追加 */
  }
}



#media-slider p { text-align:center; padding:10px;}
@media screen and (max-width:768px){
#media-slider p { text-align:left; padding:10px;}
}


/*** footer ***/
.site-footer{
	background:#222;
	color:#fff;
	padding:40px 20px;
	text-align:center;
	font-size:0.9rem;
}



/*** 251120 ***/

.main_pic img {
	width:100%;
	}



/*** 251124 fragments ***/

body#fragments {
  background-color: #ffffff;
  color: #000;
  min-height: 100vh;
}

body#fragments h1{
	padding:73px 10px 0;
	font-size:15px;
	}
@media screen and (max-width:768px){
body#fragments h1{
	font-size:13px;
	}
}

body#fragments p{
	margin-bottom:1.5em;
	}

.single-nav{
	margin-top:50px;
	padding-top:50px;
	border-top:1px solid #000;
	display:flex;
	justify-content:space-between;
	text-decoration:none;

	}
/* single-nav 内のリンクを黒＋下線 */
.single-nav a{
  color:#000;
  text-decoration: underline;
}

/* hover時も黒のまま（青に戻るのを防ぐ） */
.single-nav a:hover,
.single-nav a:visited,
.single-nav a:active{
  color:#000;
  text-decoration: underline;
}


#fragments h2.single-title {
	font-size:36px!important;
	margin:30px 0;
	}
#fragments .single-content {
	line-height:1.7;
	font-family: 'Zen Maru Gothic', 'Yomogi', sans-serif;
	font-size:24px;
	height:100%;
	padding-bottom:50px;
	}

@media screen and (min-width: 769px) {
  #fragments .wrap_box {width:900px; margin:0 auto;}
  }
@media screen and (max-width: 768px) {
  #fragments .wrap_box {width:100%;}
  #fragments .single-content {
	line-height:1.7;
	font-size:18px;
  }
}

/*** 251125 作者よりなどカスタムフィールド追加用CSS　***/

/* フィールドカード共通スタイル */
.fragment-fields-container {
    padding-top: 20px;
    border-top: 1px solid #eee; /* 本文との区切り */
}

.field-card {
    border-radius: 12px;
    background-color: #f8f8f8; 
    padding: 20px;
    margin-bottom: 25px; /* カード間のスペース */
    border: 1px solid #e0e0e0; 
}

.field-label {
    font-weight: bold;
    font-size: 1.1em;
    color: #444;
    margin-bottom: 10px;
    border-bottom: 2px solid #ddd; /* ラベルと内容の区切り */
    padding-bottom: 5px;
}

.field-content {
    line-height: 1.7; 
}

/* 個別調整例 */
.authors_comment-card {
    border-left: 5px solid #007bff; /* AIの講評だけ青いライン */
}


/*** 251127 本文ページにAI評価用コピペボタンを追加 ***/

.ai-critique-button {
    display: block;
    margin: 20px auto; /* 中央寄せ */
    padding: 15px 30px;
    background-color: #555555; /* 青系など、目立つ色に */
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 1.1em;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.1s;
}

.ai-critique-button:hover {
    background-color: #0056b3;
    transform: translateY(-1px);
}

.ai-critique-button.copied {
    background-color: #28a745; /* コピー成功時は緑色に */
}

.ai-critique-explanation {
    text-align: center;
    font-size: 0.9em;
    color: #888;
    margin-bottom: 30px;
}


/*** 251129 ***/

/* Site Reviewsのレビュー本文の行間を詰めるためのCSS */
.glsr-review-content p {
    margin-top: 0 !important; /* 上の余白を削除 */
    margin-bottom: 0 !important; /* 下の余白を削除 */
    padding: 0 !important; /* パディングも念のため削除 */
    line-height: 1.5; /* 必要に応じて行の高さを調整 */
}
/* レビュー本文全体と次の要素との余白は、親要素で確保する */
.glsr-review-content {
    margin-bottom: 1em; 
}


/*** 251130 お問い合わせ ***/

body#inquiry {
  background-color: #ffffff;
  color: #000;
  min-height: 100vh;
}


/*** 251201 投稿画面の画像につき、スマホの時は画面横幅一杯に表示する ***/

/* 画面幅767px以下（スマートフォン）でのみ適用 */
@media (max-width: 767px) {

    /* 1. 右寄せ（alignright）を解除し、中央寄せのように振る舞わせる */
    .wp-block-image .alignright {
        float: none !important; /* 右寄せフロートを解除 */
        margin: 15px auto !important; /* 上下にマージン、左右autoで中央寄せ */
        width: 100% !important; /* 幅を100%に強制 */
    }

    /* 2. 画像ブロック全体と、その中の画像タグの幅を100%にする */
    .wp-block-image {
        width: 100% !important;
        max-width: 100% !important;
    }

    .wp-block-image img {
        width: 100% !important;
        height: auto;
    }

    /* 3. カラムの制約を解除 (念のため) */
    .wp-block-column {
        padding: 0 !important; /* カラム内のパディングをリセット */
    }
}