@import url(http://fonts.googleapis.com/css?family=Antic+Didone);

body { color: #333333; }

/* リンク */
a { color: #999966; }
a:hover { color: #996600; }

/* パンくずリスト */
.topicPath { font-size: 12px; }

/* ページの先頭へ戻る */
.pagetop {
	font-size: 12px;
	text-align: right;
	margin-top: 30px;
}
.pagetop a {
	background-image: url("../images/ico_pagetop.png");
	background-repeat: no-repeat;
	background-position: 0 50%;
	padding-left: 10px;
}

/*ページ*/
#page {
	width: 980px;
	margin: 0 auto;
}

/* ページヘッダー */
#pageHead #siteTitle {
	font-size: 30px;
	line-height: 1.2;
	margin-bottom: 0;
	font-family: 'Antic Didone', serif;
}
#pageHead #catchcopy {
	font-size: 12px;
	line-height: 1.5;
	margin-top: 5px;
}

/* グローバルナビ */
#pageHead .globalNavi {
	border: solid #CCCCCC;
	border-width: 1px 0;
	padding: 10px 0;
}

#pageHead .globalNavi ul {
	margin: 0;
	padding: 0;
	display: flex;
}
#pageHead .globalNavi ul:after {
	content: "";
	clear: both;
	display: block;
}
#pageHead .globalNavi ul li {
	list-style: none;
	width: auto;
	flex: 1;
	border-left: solid 1px #CCCCCC;
	padding: 0 10px;
	box-sizing: border-box;
	text-align: center;
	font-size: 14px;
	line-height: 1.429;
}
#pageHead .globalNavi ul li:first-child {
	border-left: none;
}

#pageHead .globalNavi ul li a {
	color: inherit;
	text-decoration: none;
	display: block;
	padding: 5px 0;
}
#pageHead .globalNavi ul li a:hover,
#pageHead .globalNavi ul li.current a {
	background-color: #F2F2E5;
}

/*ページフッター*/
#pageFoot {
	border-top: solid 1px #CCCCCC;
	margin-top: 15px;
}

#pageFoot #copyright small {
	font-size: 12px;
	line-height: 1.5;
}

/* ページボディ */
#pageBody {
	margin-top: 30px;
}
#pageBody:after {
	content: "";
	clear: both;
	display: block;
}

#pageBodyMain {
	width: 720px;
	float: left;
}

#pageBodySub {
	width: 220px;
	float: right;
}


/* ----- サブカラム内の装飾 ----- */

/* 見出し */
#pageBodySub h2 {
	font-size: 16px;
	line-height: 1.375;
	padding: 5px;
	margin-top: 0;
	border-bottom: 1px solid #CCCCCC;
}

/* おしらせ */
#pageBodySub .newsList ul {
	list-style: none;
	padding: 0;
}
#pageBodySub .newsList ul li {
	font-size: 12px;
	line-height: 1.5;
	margin: 10px 5px;
}
#pageBodySub .newsList ul li time {
	font-weight: bold;
	display: block;
}

/* ローカルナビ */
#pageBodySub .localNavi ul {
	margin: 0 0 30px;
	padding-left: 0;
}
#pageBodySub .localNavi ul li {
	font-size: 14px;
	line-height: 1.429;
	margin-bottom: 12px;
	list-style-type: none;
	background-image: url("../images/ico_arrow.png");
	background-repeat: no-repeat;
	background-position: 0 8px;
	padding-left: 10px;
}

/* ----- メインカラム内の装飾 ----- */

#pageBodyMain p {
	font-size: 14px;
	line-height: 1.429;
}

/* リスト */
#pageBodyMain ul li {
	font-size: 14px;
	list-style-type: square;
	line-height: 1.429;
}

/* 表 */
#pageBodyMain table {
	font-size: 14px;
	line-height: 1.429;
	border: 1px solid #CCCCCC;
	border-collapse: collapse;
	width: 100%;
}
#pageBodyMain table th,
#pageBodyMain table td {
	border: 1px solid #CCCCCC;
	padding: 5px 10px;
}
#pageBodyMain table th {
	background-color: #EEEEEE;
	text-align: left;
}
#pageBodyMain table caption {
	text-align: left;
	font-weight: bold;
}

/* 図版 */
#pageBodyMain figure {
	margin: 0;
}
/* 画像キャプション */
#pageBodyMain figcaption {
	font-size: 12px;
}

/* 見出し */
#pageBodyMain .pageTitle {
	font-size: 26px;
	background-color: #F2F2E5;
	padding: 5px 15px;
	line-height: 1.231;
	margin-top: 0;
}

#pageBodyMain .heading-typeA {
	font-size: 18px;
	color: #349FA6;
	border-bottom: solid 1px #349FA6;
	padding: 5px;
	line-height: 1.333;
}

#pageBodyMain .heading-typeB {
	font-size: 16px;
	border-left: 5px solid #E3E4D9;
	padding-left: 10px;
	line-height: 1.375;
}

#pageBodyMain .heading-typeC {
	font-size: 14px;
	line-height: 1.429;
}

/* 区切り線・余白 */
#pageBodyMain .articleDetailHead {
	border-bottom: solid 1px #CCCCCC;
	margin-bottom: 30px;
	padding-bottom: 15px;
}
#pageBodyMain .articleDetailFoot {
	border-top: solid 1px #CCCCCC;
	margin-top: 30px;
	padding-top: 15px;
}
#pageBodyMain .articleDetailBody section {
	margin: 30px 0;
}

/* 撮影情報 */
#pageBodyMain .creditUnit {
	padding: 10px;
	border: solid 1px #CCCCCC;
}
#pageBodyMain .creditUnit:after {
	content: "";
	clear: both;
	display: block;
}
#pageBodyMain .creditUnit .creditUnitText {
	float: right;
	width: 378px;
}
#pageBodyMain .creditUnit .creditUnitMap {
	float: left;
	width: 300px;
}
#pageBodyMain .creditUnit .creditUnitMap iframe {
	vertical-align: bottom;
}

#pageBodyMain .creditUnit p {
	font-size: 12px;
	line-height: 1.5;
}

/* センター寄せ画像 */
#pageBodyMain .imageCenter {
	text-align: center;
	border-bottom: 1px dotted #CCCCCC;
	padding-bottom: 30px;
	margin: 30px 0;
}

/* 「おといあわせフォーム」ボタン */
#pageBodyMain .btn {
	text-align: center;
	padding-bottom: 20px;
	margin: 30px 0;
	border-bottom: 1px dotted #CCCCCC;
}
#pageBodyMain .btn a {
	font-size: 18px;
	font-weight: bold;
	text-decoration: none;
	color: #FFFFFF;
	background-color: #058BA9;
	padding: 10px 20px;
	border-radius: 5px;
	background-image: linear-gradient(to bottom, #92CDDB, #058BA9);
	border: 1px solid #058BA9;
	box-shadow: 1px 1px 0 #9DDDED inset;
	text-shadow: 0px -1px 0 #333333;
	display: inline-block;
}
#pageBodyMain .btn a:hover {
	opacity: 0.7;
}


/* --「つくったもの」一覧ページ-- */
#pageBodyMain .articleList {
	border: solid 1px #CCCCCC;
	margin-bottom: 30px;
}

#pageBodyMain .articleList a {
	display: block;
	padding: 10px;
	color: inherit;
	text-decoration: none;
}
#pageBodyMain .articleList a:after {
	content: "";
	clear: both;
	display: block;
}
#pageBodyMain .articleList a:hover {
	opacity: 0.7;
}

#pageBodyMain .articleList a .articleListText {
	width: 370px;
	float: right;
}
#pageBodyMain .articleList a .articleListText h1 {
	font-size: 26px;
	line-height: 1.308;
}
#pageBodyMain .articleList a .articleListText p {
	font-size: 14px;
	line-height: 1.429;
}

#pageBodyMain .articleList a .articleListImage {
	width: 300px;
	float: left;
}
#pageBodyMain .articleList a .articleListImage img {
	vertical-align: bottom;
}


/* ----- トップページの内容 ----- */
/* メインビジュアル */
#pageBody .mainVisual {
	position: relative;
}
#pageBody .mainVisual img {
	vertical-align: bottom;
}

#pageBody .mainVisual .mainVisualText {
	position: absolute;
	left: 50px;
	bottom: 50px;
	color: #FFF;
	background-color: rgba(0,0,0,0.4);
	width: 400px;
	padding: 15px 25px;

	box-sizing: border-box;
}
#pageBody .mainVisual .mainVisualText h1 {
	font-size: 26px;
	line-height: 1.231;
	margin: 0;
}
#pageBody .mainVisual .mainVisualText p {
	font-size: 12px;
	line-height: 1.5;
	margin-bottom: 0;
}
#pageBody .mainVisual ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}
#pageBody .mainVisual ul li {
	position: relative;
}

/* 「つくったもの」INDEX */
#pageBody .portfolioIndex {
	margin-top: 40px;
}
#pageBody .portfolioIndex:after {
	content: "";
	clear: both;
	display: block;
}

#pageBody .portfolioIndex article {
	width: 300px;
	float: left;
	margin-left: 40px;
}
#pageBody .portfolioIndex article:first-child {
	margin-left: 0;
}

#pageBody .portfolioIndex article h2 {
	font-size: 18px;
	margin: 5px 0;
}
#pageBody .portfolioIndex article p {
	margin-top: 0;
	font-size: 12px;
	line-height: 1.5;
}

/* おしらせ */
#pageBody .news {
	margin-top: 40px;
}

#pageBody .news h1 {
	font-size: 20px;
	border-bottom: 1px solid #CCCCCC;
	padding: 5px 0;
}

#pageBody .news table {
	width: 100%;
}
#pageBody .news table tr th,
#pageBody .news table tr td {
	font-size: 14px;
	line-height: 1.429;
	padding: 10px 0;
	border-bottom: 1px dotted #CCCCCC;
	vertical-align: top;
}
#pageBody .news table tr th {
	white-space: nowrap;
	padding-right: 30px;
}
#pageBody .news table tr td {
	width: 100%;
}
/* --- 軽量スライダー（ドット＋ナビ付き） --- */
.mainVisual { position: relative; overflow: hidden; }

.mainVisual ul {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}

.mainVisual li {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  display: none;
}
.mainVisual li:first-child { display: block; }

/* ドットナビゲーション */
.dots {
  text-align: center;
  margin-top: 10px;
}
.dots span {
  display: inline-block;
  width: 10px; height: 10px;
  margin: 0 5px;
  border-radius: 50%;
  background: #ccc;
  cursor: pointer;
}
.dots .active {
  background: #333;
}

/* 矢印ナビ */
.nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 32px;
  color: #fff;
  cursor: pointer;
  user-select: none;
  text-shadow: 0 0 5px #000;
}
.nav.prev { left: 15px; }
.nav.next { right: 15px; }

.siteHeader {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

/* ====== レスポンシブ追加（末尾に貼る） ====== */

/* 全体：可変幅＋中央寄せ（最大幅980pxを維持） */
#page {
  box-sizing: border-box;
  max-width: 980px;  /* 最大は保持 */
  width: 100%;       /* 小さい画面では100%幅 */
  margin: 0 auto;
  padding-left: 10px;
  padding-right: 10px;
}

/* 画像は縮小可にする（HTMLの width 属性をCSSで上書き） */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* mainVisual のスライド要素を縦積み可能に調整（absoluteに依存する挙動を維持しつつ画像を収める） */
.mainVisual { position: relative; overflow: hidden; }
.mainVisual ul { position: relative; }
.mainVisual li {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  display: none; /* JSの制御に従う */
}
.mainVisual li img { width: 100%; height: auto; }

/* mainVisual テキストの位置調整（小画面でははみ出さない） */
.mainVisual .mainVisualText {
  left: 50px;
  bottom: 50px;
  width: 400px;
  padding: 15px 25px;
  box-sizing: border-box;
}
@media (max-width: 640px) {
  .mainVisual .mainVisualText {
    left: 5%;
    right: 5%;
    bottom: 20px;
    width: auto;
    padding: 10px;
    font-size: 14px;
  }
  .mainVisual .mainVisualText h1 { font-size: 18px; }
  .mainVisual .mainVisualText p  { font-size: 12px; }
}

/* グローバルナビ：floatベースをフレックスに切替（小画面で折り返す） */
#pageHead .globalNavi ul {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  margin: 0;
}
#pageHead .globalNavi ul li {
  float: none;            /* float解除 */
  width: auto;            /* 固定幅解除 */
  flex: 1 1 auto;         /* 均等割り付け */
  min-width: 0%;         /* 最低幅（調整可） */
  box-sizing: border-box;
  border-left: 1px solid #CCCCCC;
  padding: 8px 10px;
}

/* portfolioIndex をフレックス化（3カラム→折り返し） */
#pageBody .portfolioIndex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
#pageBody .portfolioIndex article {
  float: none;
  margin-left: 0;
  width: calc(33.333% - 26.666px); /* ギャップ分を引いた3列 */
  box-sizing: border-box;
}
@media (max-width: 900px) {
  #pageBody .portfolioIndex article { width: calc(50% - 20px); } /* 2列 */
}
@media (max-width: 480px) {
  #pageBody .portfolioIndex article { width: 100%; } /* 1列 */
}

/* サイド＋メインのカラム切替（小画面で縦並び） */
#pageBodyMain, #pageBodySub {
  box-sizing: border-box;
}
@media (max-width: 800px) {
  #pageBodyMain, #pageBodySub {
    width: 100% !important;
    float: none !important;
    margin: 0;
    padding: 0;
  }
  /* ナビの最小幅を下げる */
  #pageHead .globalNavi ul li { min-width: 33%; }
}

/* ページトップアイコンの余白崩れ防止 */
.pagetop { padding-right: 10px; }

/* テーブルの横はスクロール可にする（モバイルで崩れない） */
#pageBodyMain table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ボタンやテキストのサイズ調整（小画面で押しやすく） */
@media (max-width: 480px) {
  #pageHead #siteTitle { font-size: 22px; }
  #pageHead #catchcopy { font-size: 12px; }
  #pageBodyMain .btn a { font-size: 16px; padding: 8px 16px; }
}

/* nav 矢印等の重なり対処（必要なら調整） */
.nav { z-index: 10; }

/* スマホ（幅768px以下）の時だけ適用する設定 */
@media (max-width: 768px) {

  /* スライダーエリア全体を非表示にする */
  .mainVisual {
    display: none;
  }

}

/* スライダー画像の高さのばらつきを強制補正 */
.mainVisual img {
    height: 500px !important; /* HTMLの指定通り500pxに固定 */
    width: 100%;              /* 幅は親要素に合わせる */
    object-fit: cover;        /* 縦横比を崩さず、はみ出た上下を自動カット */
}

/* --- 3つの記事一覧画像の高さを揃える設定 --- */
.portfolioIndex article img {
    width: 100%;          /* 横幅は枠いっぱい */
    height: 163px;        /* 高さを強制固定（元のHTMLの設計サイズ） */
    object-fit: contain;  /* 画像全体が収まるように表示（ロゴが切れないように） */
    /* もし背景が白以外で隙間が気になる場合は object-fit: cover; に変えてください */
}

/* =========================================
   【追加】探求ラボ PICK UP用スタイル
   ========================================= */
.lab-pickup {
    margin-top: 40px;       /* 上のお知らせとの間隔 */
    padding-top: 20px;
    border-top: 1px dashed #ccc; /* 点線の区切り線 */
}
.lab-pickup-title {
    font-size: 20px;
    margin-bottom: 15px;
    font-weight: bold;
    color: #333;
    line-height: 1.4;
}
.lab-card {
    display: flex;          /* 画像と文字を横並びにする設定 */
    background: #f9f9f9;    /* 背景色（薄いグレー） */
    padding: 15px;
    border-radius: 5px;     /* 角丸 */
    gap: 20px;              /* 画像と文字の間隔 */
    align-items: flex-start;
}
.lab-card a {
    text-decoration: none;  /* リンクの下線を消す */
}
.lab-card img {
    width: 150px;           /* 画像の幅を固定 */
    height: auto;
    border-radius: 4px;
    object-fit: cover;
}
.lab-content h3 {
    margin-top: 0;
    font-size: 16px;
    margin-bottom: 10px;
    line-height: 1.4;
    color: #058BA9;         /* タイトルの文字色 */
    font-weight: bold;
}
.lab-content p {
    font-size: 13px;
    line-height: 1.6;
    color: #666;
    margin: 0;
}

/* スマホ閲覧時の調整（画面幅600px以下なら縦並びにする） */
@media screen and (max-width: 600px) {
    .lab-card {
        display: block;
    }
    .lab-card img {
        width: 100%;
        max-width: 100%;
        margin-bottom: 10px;
    }
}

/* --- 3つの記事一覧画像の高さを揃える設定 --- */
.portfolioIndex article img {
    width: 100%;
    height: 172px;
    object-fit: cover; /* ←ここを「cover」に変えます */
}