@charset "utf-8";
/* =========================================================
   DIET QUEST 2026 調整（既存デザインを活かしつつ、今の閲覧環境に合わせる）
   ・全画面共通：読みやすさ、操作性、新しいLAMPロゴ
   ・767px以下：スマホ表示（レスポンシブ）
   ========================================================= */

/* ---------- 共通 ---------- */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "BIZ UDPGothic", Meiryo, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
a { transition: color .2s, opacity .2s; }
a:focus-visible, button:focus-visible { outline: 3px solid #f0b429; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* ヘッダー：LAMPロゴ（白抜き）とシェアボタン */
#com_logo { display: flex; align-items: center; justify-content: space-between; box-sizing: border-box; }
#com_logo .lamp_logo { display: inline-flex; align-items: center; line-height: 0; }
#com_logo .lamp_logo img { height: 20px; width: auto; filter: brightness(0) invert(1); opacity: .95; }
#com_logo .lamp_logo:hover img { opacity: 1; }
#h_sns { display: flex; gap: 6px; float: none; margin: 0; list-style: none; }
#h_sns li { float: none; margin: 0; }
.sns_btn {
	display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 11px; line-height: 1.4;
	color: #fff !important; text-decoration: none; font-weight: bold; letter-spacing: .02em;
	background: rgba(0, 0, 0, .35); border: 1px solid rgba(255, 255, 255, .35);
}
.sns_btn:hover { background: rgba(0, 0, 0, .55); }
.sns_line { background: #06c755; border-color: #06c755; }
.sns_line:hover { background: #05a647; }

/* グローバルナビ（ul を追加したので余白をリセット） */
#global_nav ul { margin: 0; padding: 0; list-style: none; }
#global_nav .site_logo { margin: 0; font-size: inherit; line-height: 0; }
#global_nav a img { transition: opacity .2s; }

/* 記事タイトル（h3 → h1 に変更したので見た目を合わせる） */
.post_ttl h1.post_title {
	font-family: inherit; font-weight: bold; color: #3d2c0f; line-height: 1.3; font-size: 19px; margin: 0;
}
.article h1.ttl_04 { font-family: inherit; font-weight: bold; }
.post_ttl p.post_data, .post_list div.post_info dl dt, .post_list div.post_info dl dd h3, .ttl_02, .ttl_03, .ttl_04, .article h4, .article h5 { font-family: inherit; font-weight: bold; }
#page_name .page_name_ttl {
	width: 915px; margin: 0 auto; background: url(../images/common/h2_con_bg.jpg) no-repeat 1px 0;
	height: 57px; padding-left: 45px; padding-top: 20px; line-height: 0;
}

/* 本文の読みやすさ */
.art_con { font-size: 16px; line-height: 1.95; letter-spacing: .02em; color: #222; }
.art_con p { margin-bottom: 1.1em; }
.art_con img { border-radius: 6px; }
.art_con iframe, .art_con video { max-width: 100%; }
.art_con a { text-decoration: underline; text-underline-offset: 3px; }

/* 記事一覧カード */
.posts a.dis_b, .posts a.dis_b:hover { text-decoration: none; }
.post_list { transition: transform .2s ease, filter .2s ease; }
a.dis_b:hover .post_list { transform: translateY(-2px); filter: brightness(1.03); }
.post_list p.phb { border-radius: 4px; }
.post_list p.phb img { border-radius: 2px; }

/* 前後の記事リンク */
#pagenav a {
	display: inline-block; padding: 8px 16px; border-radius: 999px; background: #3d2c0f; color: #f6ecdb !important;
	text-decoration: none; font-weight: bold; font-size: 13px;
}
#pagenav a:hover { background: #b3141a; }

/* フッター */
#footer #footer_logo img { height: 30px; width: auto; }
#footer address { font-style: normal; line-height: 1.7; }
#copyright { letter-spacing: .04em; }

/* 地図 */
#map iframe { max-width: 100%; border-radius: 6px; }

/* ページ先頭へ */
#pagetop a img { transition: transform .2s; }
#pagetop a:hover img { transform: translateY(-4px); }

/* =========================================================
   スマホ（767px以下）
   ========================================================= */
@media screen and (max-width: 767px) {
	body { font-size: 14px; }
	#wrapper { overflow-x: hidden; }

	/* ヘッダー：固定をやめて上部に置く */
	#header { position: relative; padding-top: 8px; background-size: auto 100%; }
	#com_logo { width: auto; padding: 0 12px; margin-bottom: 4px; }
	#com_logo .lamp_logo img { height: 16px; }
	#h_sns { gap: 4px; padding: 0; }
	.sns_btn { padding: 3px 8px; font-size: 10px; }
	.sns_fb { display: none; }

	#global_nav {
		width: auto; height: auto; padding: 6px 8px 8px; margin: 4px 0 0;
		background: linear-gradient(#c41a1f, #8e0f14); border-top: 2px solid #d9b46a; border-bottom: 2px solid #d9b46a;
	}
	#global_nav ul { display: flex; align-items: center; gap: 2px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	#global_nav ul::-webkit-scrollbar { display: none; }
	#global_nav li, #global_nav li#logo { float: none; margin: 0; flex: 0 0 auto; }
	#global_nav li#logo { margin-right: 4px; }
	#global_nav li#logo img { height: 30px; width: auto; }
	#global_nav li a img { height: 26px; width: auto; }

	/* メインビジュアル */
	#mainvisual { background-size: auto 100%; }
	#mainvisual p { width: auto; height: auto; padding: 8px 8px 0; }
	#top_wrap { min-width: 0; }
	#top_wrap #mainvisual { width: auto; padding-top: 8px; margin-bottom: 10px; }

	/* ページ名・パンくず */
	#page_name { background-size: auto 100%; }
	#page_name h2, #page_name .page_name_ttl { width: auto; height: auto; padding: 12px 12px 10px; background: none; }
	#page_name img { height: 24px; width: auto; }
	#topic_path { height: auto; padding: 6px 0; }
	#topic_path ul { text-align: left; padding: 0 12px; white-space: nowrap; overflow-x: auto; }
	#topic_path ul li { padding-right: 18px; }

	/* レイアウト：1カラムに */
	.container, .top_con, .t_con { width: auto !important; max-width: 100%; }
	#main { padding-top: 12px; }
	#main > .container { padding: 0 10px; }
	#contents, #side { float: none; width: auto; }
	#side { margin-top: 24px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
	#side > p.side_bnr { margin: 0; flex: 0 1 calc(50% - 4px); }
	#side > p.side_bnr:first-child { flex-basis: 100%; }
	#side .sort { flex: 0 0 261px; margin: 0 auto; }
	#side .side_ad { flex-basis: 100%; }

	/* 記事エリアの背景画像（PC幅固定）を置き換え */
	.posts, .posts .inner, .posts .inner .con, .posts .inner .con .article { background: none; }
	.posts { background: #fbf3e2; border: 1px solid #c9b48c; border-radius: 10px; padding: 0; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
	.posts .inner { padding: 0; }
	.posts .inner .con { padding: 6px 6px 10px; }

	/* 記事一覧カード */
	.post_list { height: auto; padding: 14px 12px; background: #fff !important; border-radius: 8px; margin-bottom: 8px; border: 1px solid #e3d3b2; }
	.post_list p.phb { margin-right: 10px; }
	.post_list p.phb img { width: 96px; height: auto; }
	.post_list div.post_info { width: auto; float: none; overflow: hidden; padding-right: 44px; }
	.post_list div.post_info dl { margin-bottom: 6px; }
	.post_list div.post_info dl dd h3 { font-size: 15px; line-height: 1.4; }
	.post_list div.post_info > p { font-size: 12px; line-height: 1.6; color: #444; }
	.weight_label { transform: scale(.55); transform-origin: top right; }

	/* 記事ページ */
	.post_ttl { background: linear-gradient(#f3e3c4, #e7d2a8); height: auto; padding: 14px 14px 12px; border-radius: 8px 8px 0 0; }
	.post_ttl h1.post_title { font-size: 18px; }
	.art_con { font-size: 15.5px; line-height: 1.9; padding-left: 12px !important; padding-right: 12px !important; }
	.art_con img { height: auto !important; }
	.art_con table { max-width: 100%; display: block; overflow-x: auto; }
	#single .article .weight_label { top: 4px; right: 4px; }
	#pagenav ul { display: flex; justify-content: space-between; gap: 8px; }
	#pagenav li { float: none; }

	/* 会社概要の表 */
	#tb_info, #tb_info tbody, #tb_info tr, #tb_info th, #tb_info td { display: block; width: auto; }
	#tb_info th { border-right: 0; }
	#map iframe { width: 100%; height: 260px; }
	.ttl_04 { background-size: auto 100%; padding-left: 50px; height: auto; padding-bottom: 12px; line-height: 1.3; }

	/* トップページ */
	#prologue { width: auto; height: auto; padding: 0; margin-bottom: 40px; background-size: 100% auto; }
	.mb130 { margin-bottom: 50px; }
	.mb100 { margin-bottom: 40px; }
	#monster_ababa { height: auto; padding: 45vw 12px 24px; background-size: 100% auto; }
	#monster_ababa .top_con { padding-right: 0; text-align: center; }
	#monster_ababa ul { width: auto; margin: 0 auto; }
	#monster_ababa h3 img { width: 70%; }

	/* ページ先頭へ */
	#pagetop { text-align: right; padding: 0 10px; }
	#pagetop a img { width: 110px; }

	/* フッター */
	#footer, #footer.top_f, #footer #footer_con { min-width: 0; height: auto; background-size: auto 100%; }
	#footer #footer_con { background-size: cover; padding-bottom: 14px; }
	#footer #footer_con .container { height: auto; padding: 20px 16px 10px; }
	#footer #f_info { float: none; width: auto; margin: 0 0 14px; background: none; padding-bottom: 12px; border-bottom: 1px solid rgba(34, 28, 10, .25); }
	#footer #footer_con ul { float: none; width: auto; display: flex; flex-wrap: wrap; }
	#footer #footer_con ul li { float: none; min-width: 0; flex: 0 0 50%; box-sizing: border-box; padding: 4px 0 4px 13px; }
	#copyright { font-size: 11px; padding: 0 10px; }
}

/* =========================================================
   記事まわりの部品（PR表記・目次・ポイント・シェア・編集部・関連記事）
   ========================================================= */
.dq-pr { margin: 0 0 12px; padding: 6px 10px; font-size: 12px; color: #6b5a3a; background: #f6ecdb; border-radius: 4px; }
.dq-meta { margin: 0 0 14px; font-size: 12px; color: #6b5a3a; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.dq-meta:empty { display: none; }
.dq-point { margin: 0 0 20px; padding: 14px 16px; background: #fffaf0; border: 2px solid #d9b46a; border-radius: 8px; }
.dq-point-ttl { margin: 0 0 6px !important; font-weight: bold; color: #b3141a; font-size: 14px; }
.dq-point p:last-child { margin-bottom: 0; }
.dq-toc { margin: 0 0 24px; padding: 14px 18px; background: #f6ecdb; border-left: 5px solid #b59167; border-radius: 0 8px 8px 0; font-size: 14px; }
.dq-toc-ttl { margin: 0 0 6px !important; font-weight: bold; color: #3d2c0f; }
.dq-toc ul { margin: 0; padding-left: 1.2em; list-style: none; }
.dq-toc li { margin: 3px 0; line-height: 1.6; position: relative; }
.dq-toc li.lv1::before { content: "▶"; position: absolute; left: -1.2em; top: .15em; font-size: 10px; color: #b3141a; }
.dq-toc li.lv2 { margin-left: 1.1em; font-size: 13px; }
.dq-toc li.lv2::before { content: "・"; position: absolute; left: -1em; color: #7a6a4a; }
.art_con .dq-body p { margin-bottom: 1.2em; }
.dq-toc a { text-decoration: none !important; color: #064e78; }
.dq-body h2, .dq-addendum h2, .dq-faq h2 { margin: 28px 0 12px; padding: 8px 12px; font-size: 18px; line-height: 1.4; color: #fff; background: linear-gradient(90deg, #8e0f14, #b3141a); border-radius: 6px; }
.dq-body h3 { margin: 22px 0 10px; padding-left: 10px; border-left: 5px solid #b59167; font-size: 17px; line-height: 1.4; color: #2d2620; }
[id^="sec-"] { scroll-margin-top: 150px; }
.dq-addendum { margin-top: 28px; padding: 16px 18px; background: #fffdf7; border: 1px dashed #c9b48c; border-radius: 8px; }
.dq-addendum .dq-add-note { font-size: 12px; color: #7a6a4a; margin-bottom: 8px; }
.dq-addendum ul { margin: 0 0 1em 1.3em; list-style: disc; }
.dq-addendum li { margin: 4px 0; }
.dq-faq { margin-top: 20px; }
.dq-faq .dq-faq-q { margin: 14px 0 6px; padding: 8px 12px 8px 40px; position: relative; font-size: 15px; font-weight: bold; background: #f6ecdb; border-radius: 6px; border: 0; }
.dq-faq .dq-faq-q::before { content: "Q"; position: absolute; left: 12px; top: 6px; font-size: 18px; color: #b3141a; font-weight: bold; }
.dq-faq .dq-faq-a { padding: 4px 12px 4px 40px; position: relative; }
.dq-faq .dq-faq-a::before { content: "A"; position: absolute; left: 12px; top: 2px; font-size: 18px; color: #064e78; font-weight: bold; }
.dq-share { margin: 28px 0 18px; text-align: center; }
.dq-share-ttl { margin: 0 0 8px !important; font-weight: bold; font-size: 13px; color: #3d2c0f; }
.dq-sh { display: inline-block; margin: 3px; padding: 8px 14px; border-radius: 999px; font-size: 12px; font-weight: bold; color: #fff !important; text-decoration: none !important; border: 0; cursor: pointer; font-family: inherit; line-height: 1.4; }
.dq-sh.x { background: #111; } .dq-sh.fb { background: #1877f2; } .dq-sh.line { background: #06c755; } .dq-sh.hb { background: #00a4de; } .dq-sh.copy { background: #7a5a2f; }
.dq-sh:hover { opacity: .85; }
.dq-editor { display: flex; gap: 14px; align-items: flex-start; margin: 0 0 24px; padding: 14px; background: #2b0b0d; color: #f3e6cc; border-radius: 8px; font-size: 13px; line-height: 1.7; }
.dq-editor img { flex: 0 0 auto; width: 100px; height: auto; border-radius: 0 !important; }
.dq-editor p { margin: 0 !important; }
.dq-editor a { color: #f0b429 !important; }
.dq-editor-name { font-weight: bold; color: #fff; margin-bottom: 4px !important; }
.dq-related-ttl { margin: 0 0 10px; font-size: 16px; font-weight: bold; color: #3d2c0f; border-bottom: 2px solid #b59167; padding-bottom: 6px; }
.dq-related ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; }
.dq-related a { display: block; text-decoration: none !important; color: #2d2620; font-size: 13px; line-height: 1.5; font-weight: bold; }
.dq-related .th { display: block; aspect-ratio: 197 / 135; overflow: hidden; border-radius: 6px; margin-bottom: 6px; background: #eee; }
.dq-related .th img { width: 100%; height: 100%; object-fit: cover; border-radius: 0 !important; }
.dq-related .dt { display: block; font-weight: normal; font-size: 11px; color: #7a6a4a; }
.dq-related a:hover { color: #b3141a; }

/* サイドバー：検索・新着 */
.dq-side-box { margin: 0 0 12px; padding: 12px; background: #fffaf0; border: 1px solid #c9b48c; border-radius: 8px; text-align: left; }
.dq-side-ttl { margin: 0 0 8px; font-size: 14px; font-weight: bold; color: #3d2c0f; border-left: 4px solid #b3141a; padding-left: 8px; }
.dq-search form, .dq-search-inline { display: flex; gap: 6px; }
.dq-search input, .dq-search-inline input { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid #c9b48c; border-radius: 6px; font-size: 14px; font-family: inherit; }
.dq-search button, .dq-search-inline button { padding: 8px 12px; border: 0; border-radius: 6px; background: #b3141a; color: #fff; font-weight: bold; cursor: pointer; font-family: inherit; }
.dq-side-list { margin: 0; padding: 0; list-style: none; }
.dq-side-list li { border-top: 1px dotted #c9b48c; }
.dq-side-list li:first-child { border-top: 0; }
.dq-side-list a { display: flex; gap: 8px; padding: 8px 0; text-decoration: none; color: #2d2620; font-size: 13px; line-height: 1.45; }
.dq-side-list .th img { width: 56px; height: 56px; object-fit: cover; border-radius: 4px; }
.dq-side-list .dt { display: block; font-size: 11px; color: #7a6a4a; }
.dq-side-list a:hover { color: #b3141a; }
.dq-links { margin: 16px 0 0 1.2em; list-style: disc; }
.dq-list-ttl { font-size: 18px; font-weight: bold; margin: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ページ送り（WP-PageNavi） */
.wp-pagenavi { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; }
.wp-pagenavi a, .wp-pagenavi span { display: inline-block; min-width: 36px; padding: 7px 10px; border-radius: 6px; background: #3d2c0f; color: #f6ecdb !important; text-decoration: none; font-size: 13px; font-weight: bold; text-align: center; border: 0 !important; }
.wp-pagenavi span.current { background: #b3141a; }
.wp-pagenavi a:hover { background: #b3141a; }

@media screen and (max-width: 767px) {
	.dq-related ul { gap: 10px; }
	.dq-editor { flex-direction: column; }
	[id^="sec-"] { scroll-margin-top: 16px; }
	#side .dq-side-box { flex-basis: 100%; }
}

/* 関連記事はPCでは4列 */
@media screen and (min-width: 768px) { .dq-related ul { grid-template-columns: repeat(4, 1fr); } }
@media screen and (max-width: 767px) { .dq-list-ttl { font-size: 15px; line-height: 1.4; } }

/* 商品紹介カード（[dq_item]） */
.dq-item { position: relative; display: flex; gap: 14px; align-items: center; margin: 20px 0; padding: 16px; background: #fff; border: 2px solid #d9b46a; border-radius: 10px; }
.dq-item-pr { position: absolute; top: -10px; left: 12px; padding: 1px 8px; font-size: 11px; font-weight: bold; color: #fff; background: #7a6a4a; border-radius: 4px; }
.dq-item-img { flex: 0 0 120px; }
.dq-item-img img { width: 120px; height: auto; border-radius: 6px; }
.dq-item-body { flex: 1; }
.dq-item-body p { margin: 0 0 6px !important; }
.dq-item-name { font-weight: bold; font-size: 16px; color: #2d2620; }
.dq-item-price { font-size: 13px; color: #b3141a; font-weight: bold; }
.dq-item-text { font-size: 13px; line-height: 1.7; }
.dq-item-btn { display: inline-block; margin-top: 4px; padding: 9px 18px; border-radius: 999px; background: #b3141a; color: #fff !important; font-weight: bold; text-decoration: none !important; font-size: 14px; }
.dq-item-btn:hover { background: #8e0f14; }
@media screen and (max-width: 767px) { .dq-item { flex-direction: column; text-align: center; } .dq-item-img { flex-basis: auto; } }
