@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* ============================================
   アトリエワークショップ 料金メニュー (atw-)
   ============================================ */

/* コース名の帯(上下罫線) */
.atw-bar {
	border-top: 3px solid #23306e;
	border-bottom: 3px solid #23306e;
	padding: 10px 4px;
	font-size: clamp(21px, 3.4vw, 26px);
	font-weight: 700;
	letter-spacing: 0.1em;
	color: #1f2333;
}

/* コース小見出し・説明 */
.atw-course-name {
	font-size: clamp(17px, 2.8vw, 20px);
	font-weight: 700;
	letter-spacing: 0.06em;
	margin-bottom: 0.2em;
}
.atw-course-desc {
	font-size: 14px;
	font-weight: 700;
}
.atw-caution {
	color: #c43a3a;
	font-weight: 700;
	font-size: clamp(14px, 2.4vw, 17px);
}

/* 料金表 */
.atw-table table {
	border-collapse: collapse;
	width: 100%;
	font-variant-numeric: tabular-nums;
}
.atw-table td {
	border: 2px solid #23306e;
	padding: 12px 10px;
	text-align: center;
	font-weight: 700;
	color: #23306e;
	font-size: clamp(14px, 2.6vw, 18px);
	white-space: nowrap;
	vertical-align: middle;
}
.atw-table td:first-child {
	background: #f5f6fa;
}
@media (max-width: 599px) {
	.atw-table td {
		padding: 9px 6px;
	}
}

/* 写真グリッド */
.atw-photos .atw-photo img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 14px;
	width: 100%;
}

/* ============================================
   アトリエワークショップ B案 (atw2-)
   ページ本文の .atw2 ラッパー配下にのみ適用
   ============================================ */
.atw2 {
	/* 記事コンテナを突き破ってビューポート全幅にする(SWELLのスクロールバー幅変数対応) */
	position: relative;
	left: calc(50% - 50vw + var(--swl-scrollbar_width, 0px) / 2);
	width: calc(100vw - var(--swl-scrollbar_width, 0px));
	--atw2-paper: #fffdf8;
	--atw2-cream: #f3eee3;
	--atw2-ink: #22304f;
	--atw2-sub: #5c6478;
	--atw2-red: #c8402f;
	--atw2-green: #2f5d3a;
	--atw2-blue: #3b5ba5;
	/* 白文字を載せる面なので WCAG AA(4.5:1)を満たす濃さにしている */
	--atw2-mustard: #96650c;
	background: var(--atw2-paper);
	color: var(--atw2-ink);
	line-height: 2;
	font-size: 16px;
	overflow-x: hidden;
}
/* WPが挿入する inner-container の幅制限(記事幅900px)を解除。
   入れ子のグループブロック(FAQ 等)にも効かせる。幅は .atw2-wrap 側で決める。 */
.atw2 .wp-block-group__inner-container {
	max-width: none;
	width: 100%;
	padding: 0;
	margin: 0;
}

.atw2 .atw2-disp {
	font-family: "Zen Maru Gothic", sans-serif;
}
.atw2 .atw2-num {
	font-family: "Outfit", sans-serif;
	font-variant-numeric: tabular-nums;
}
.atw2 img { max-width: 100%; display: block; }
.atw2 .atw2-wrap { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.atw2 h1, .atw2 h2, .atw2 h3 { margin: 0; padding: 0; border: none; background: none; }
.atw2 h2::before, .atw2 h2::after, .atw2 h3::before, .atw2 h3::after { content: none; }

/* hero */
.atw2 .atw2-hero { position: relative; padding: 64px 0 40px; }
.atw2 .atw2-hero-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 40px; align-items: center; }
.atw2 .atw2-eyebrow { font-family: "Outfit", sans-serif; font-weight: 700; font-size: 13px;
	letter-spacing: .32em; color: var(--atw2-red); text-transform: uppercase; margin: 0 0 18px; }
.atw2 .atw2-title { font-size: clamp(30px, 4.4vw, 46px); font-weight: 900; line-height: 1.45;
	letter-spacing: .04em; }
.atw2 .atw2-title .atw2-accent { color: var(--atw2-red); }
.atw2 .atw2-hero-copy { margin: 22px 0 0; max-width: 34em; color: var(--atw2-sub); font-size: 15px; }
.atw2 .atw2-hero-visual { position: relative; min-height: 420px; }
.atw2 .atw2-hero-photo { width: 78%; aspect-ratio: 3/3.6; object-fit: cover; margin-left: auto;
	border-radius: 46% 54% 52% 48% / 44% 46% 54% 56%; }
.atw2 .atw2-float { position: absolute; filter: drop-shadow(0 10px 18px rgba(34,48,79,.18)); }
.atw2 .atw2-float.atw2-f1 { width: 38%; left: -4%; bottom: -6%; transform: rotate(-8deg); }
.atw2 .atw2-float.atw2-f2 { width: 26%; right: -3%; top: -7%; transform: rotate(10deg); }
@media (prefers-reduced-motion: no-preference) {
	.atw2 .atw2-float { animation: atw2-bob 5.2s ease-in-out infinite; }
	.atw2 .atw2-float.atw2-f2 { animation-delay: 1.4s; animation-duration: 6.1s; }
	@keyframes atw2-bob { 0%,100% { translate: 0 0; } 50% { translate: 0 -10px; } }
}

/* yarn strip */
.atw2 .atw2-yarn { margin: 56px 0 0; padding: 26px 0; background: var(--atw2-cream); }
.atw2 .atw2-yarn-inner { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; justify-content: center; }
.atw2 .atw2-yarn-label { font-weight: 700; font-size: 14px; letter-spacing: .12em; white-space: nowrap; margin: 0; }
.atw2 .atw2-yarn-label b { font-family: "Outfit", sans-serif; font-size: 22px; color: var(--atw2-red); margin: 0 2px; }
.atw2 .atw2-dots { display: flex; gap: 7px; flex-wrap: wrap; justify-content: center; max-width: 640px; }
.atw2 .atw2-dots i { width: 14px; height: 14px; border-radius: 50%; display: block; }

/* course sections */
.atw2 .atw2-course { padding: 80px 0 12px; }
.atw2 .atw2-course-head { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; }
/* コースセクション(COURSE 01〜04)の見出し: バッジとコース名を上下中央揃え */
.atw2 .atw2-course .atw2-course-head { align-items: center; }
.atw2 .atw2-course-no { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 15px;
	letter-spacing: .24em; padding: 5px 14px; border-radius: 999px; color: #fff; background: var(--atw2-ac, var(--atw2-red)); }
.atw2 .atw2-h2 { font-size: clamp(26px, 3.8vw, 38px); font-weight: 900; letter-spacing: .06em; }
.atw2 .atw2-course-sub { color: var(--atw2-sub); font-size: 15px; margin: 10px 0 0; max-width: 38em; }
/* PC のみの改行。スマホでは無効化して自然な折り返しにする */
.atw2 .atw2-brpc { display: inline; }
.atw2 .atw2-badge { display: inline-block; margin-top: 14px; padding: 7px 16px; border-radius: 999px;
	background: #fff; border: 2px solid var(--atw2-ac, var(--atw2-red)); color: var(--atw2-ac, var(--atw2-red));
	font-weight: 700; font-size: 14px; }
.atw2 .atw2-stage { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; margin-top: 34px; }
.atw2 .atw2-rug-row { display: flex; align-items: center; justify-content: center; gap: 4%; }
.atw2 .atw2-rug-row img { filter: drop-shadow(0 10px 16px rgba(34,48,79,.16)); }
.atw2 .atw2-blob { width: 100%; aspect-ratio: 4/3.4; object-fit: cover;
	border-radius: 54% 46% 48% 52% / 48% 54% 46% 52%; }

/* tickets */
.atw2 .atw2-tickets { display: grid; gap: 14px; grid-template-columns: repeat(2, 1fr); }
.atw2 .atw2-ticket { background: #fff; border: 2px solid var(--atw2-ink); border-radius: 18px;
	padding: 16px 14px 14px; text-align: center; position: relative; }
.atw2 .atw2-ticket::before { content: ""; position: absolute; inset: 5px;
	border: 1.5px dashed rgba(34,48,79,.25); border-radius: 12px; pointer-events: none; }
.atw2 .atw2-t-size { font-family: "Outfit", sans-serif; font-weight: 800; font-size: clamp(19px,2.6vw,24px); line-height: 1.2; }
.atw2 .atw2-t-time { font-size: 12.5px; font-weight: 700; color: var(--atw2-sub); margin-top: 4px; letter-spacing: .08em; }
.atw2 .atw2-t-price { font-family: "Outfit", sans-serif; font-weight: 800; font-size: clamp(19px,2.7vw,25px);
	margin-top: 8px; color: var(--atw2-ac, var(--atw2-ink)); }
.atw2 .atw2-t-per { font-size: 12px; font-weight: 700; color: var(--atw2-sub); }

/* pair sub-block */
.atw2 .atw2-pair { margin-top: 60px; padding-top: 52px; border-top: 2px dashed rgba(34,48,79,.2); }
.atw2 .atw2-h3 { font-size: clamp(20px, 3vw, 26px); font-weight: 900; letter-spacing: .06em; }

/* timeline */
.atw2 .atw2-timeline { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 30px; }
.atw2 .atw2-day { background: #fff; border: 2px solid var(--atw2-ink); border-radius: 22px; overflow: hidden; }
.atw2 .atw2-day-head { display: flex; align-items: center; gap: 12px; padding: 12px 18px; color: #fff; background: var(--atw2-mustard); }
.atw2 .atw2-day-head .atw2-d { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 18px; letter-spacing: .1em; }
.atw2 .atw2-day-head .atw2-h { font-family: "Outfit", sans-serif; font-weight: 700; font-size: 14px; margin-left: auto; }
.atw2 .atw2-day-photo { aspect-ratio: 16/9.5; overflow: hidden; }
.atw2 .atw2-day-photo img { width: 100%; height: 100%; object-fit: cover; }
/* DAY1 は被写体に寄せる(背景のスリッパが見切れる程度) */
.atw2 .atw2-day-photo--zoom img { transform: scale(1.3); transform-origin: 50% 45%; }
/* 縦長写真を DAY 枠に収める際の見せ位置 */
.atw2 .atw2-day-photo--tall img { object-position: 50% 80%; }
.atw2 .atw2-day > img { width: 100%; aspect-ratio: 16/9.5; object-fit: cover; }
.atw2 .atw2-day-body { padding: 14px 18px 18px; font-weight: 700; font-size: 15px; }
.atw2 .atw2-grand { margin: 26px auto 0; max-width: 440px; display: block; }

/* accent binding */
.atw2 .atw2-original { --atw2-ac: var(--atw2-red); }
.atw2 .atw2-select { --atw2-ac: var(--atw2-green); }
.atw2 .atw2-mirror { --atw2-ac: var(--atw2-blue); }
.atw2 .atw2-twodays { --atw2-ac: var(--atw2-mustard); }

/* CTA */
.atw2 .atw2-cta { margin: 90px 0 0; padding: 64px 24px 76px; background: var(--atw2-ink); color: #fff; text-align: center; }
.atw2 .atw2-cta .atw2-lead { font-size: clamp(19px,2.8vw,25px); font-weight: 900; margin: 0 0 8px; letter-spacing: .08em; color: #fff; }
.atw2 .atw2-cta .atw2-note { font-size: 13.5px; color: #b9c0d4; margin: 0 0 30px; }
.atw2 .atw2-btn { display: inline-block; background: var(--atw2-red); color: #fff; text-decoration: none;
	font-weight: 700; font-size: 17px; letter-spacing: .1em; padding: 16px 52px; border-radius: 999px;
	transition: transform .18s ease, box-shadow .18s ease; }
.atw2 .atw2-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(200,64,47,.4); color: #fff; }
.atw2 .atw2-btn:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* info sections */
.atw2 .atw2-info { padding: 80px 0 8px; }
.atw2 .atw2-info-no { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 13px; letter-spacing: .26em; color: var(--atw2-red); }
.atw2 .atw2-soft { background: var(--atw2-cream); padding-bottom: 80px; margin-top: 80px; }
.atw2 .atw2-soft .atw2-info { padding-top: 64px; }
.atw2 .atw2-note-card { background: #fff; border: 2px solid var(--atw2-ink); border-radius: 22px; padding: 26px 28px; margin-top: 28px; }
.atw2 .atw2-note-card ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.atw2 .atw2-note-card li { padding-left: 30px; position: relative; font-weight: 500; font-size: 15px; line-height: 1.9; }
.atw2 .atw2-note-card li::before { content: ""; position: absolute; left: 2px; top: .72em; width: 12px; height: 12px;
	border-radius: 50%; background: var(--atw2-red); }
.atw2 .atw2-note-card li b { color: var(--atw2-red); }
.atw2 .atw2-linkcard { display: flex; align-items: center; gap: 16px; margin-top: 22px; background: #fff;
	border: 2px solid var(--atw2-ink); border-radius: 999px; padding: 12px 26px; text-decoration: none;
	color: var(--atw2-ink); font-weight: 700; width: fit-content; transition: transform .18s ease; }
.atw2 .atw2-linkcard:hover { transform: translateY(-2px); }
.atw2 .atw2-linkcard .atw2-arrow { font-family: "Outfit", sans-serif; font-weight: 800; color: var(--atw2-red); }

/* gallery(切り抜きラグを並べる版) */
.atw2 .atw2-gallery { display: flex; align-items: center; justify-content: center; gap: 3%; flex-wrap: wrap; margin-top: 36px; }
.atw2 .atw2-gallery img { width: 17%; min-width: 120px; filter: drop-shadow(0 8px 14px rgba(34,48,79,.16)); }
.atw2 .atw2-gallery img:nth-child(odd) { transform: rotate(-5deg); }
.atw2 .atw2-gallery img:nth-child(even) { transform: rotate(5deg); }

/* carousel(スライダー素材を流用した横スクロール) */
.atw2 .atw2-carousel { position: relative; margin-top: 36px; }
.atw2 .atw2-track {
	display: flex;
	gap: 20px;
	margin: 0;
	padding: 4px 4px 18px;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: rgba(34,48,79,.35) transparent;
	overscroll-behavior-x: contain;
}
.atw2 .atw2-track:focus-visible { outline: 3px solid var(--atw2-red); outline-offset: 4px; border-radius: 20px; }
.atw2 .atw2-track::-webkit-scrollbar { height: 8px; }
.atw2 .atw2-track::-webkit-scrollbar-thumb { background: rgba(34,48,79,.3); border-radius: 999px; }
/* 画像比率がまちまちでも切れないよう、カード枠を固定して中に収める */
.atw2 .atw2-slide {
	flex: 0 0 auto;
	scroll-snap-align: center;
	margin: 0;
	width: min(340px, 76vw);
	height: 340px;
	border-radius: 22px;
	border: 2px solid var(--atw2-ink);
	background: #fff;
	box-shadow: 0 8px 18px rgba(34,48,79,.14);
	overflow: hidden;
	padding: 8px;
}
.atw2 .atw2-slide img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 14px;
}
/* 動きを減らす設定を尊重する(カルーセルの慣性スクロール) */
@media (prefers-reduced-motion: no-preference) {
	.atw2 .atw2-track { scroll-behavior: smooth; }
}
@media (max-width: 600px) {
	.atw2 .atw2-slide { height: 280px; }
}
.atw2 .atw2-nav {
	position: absolute;
	top: calc(50% - 9px);
	transform: translateY(-50%);
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 2px solid var(--atw2-ink);
	background: #fff;
	color: var(--atw2-ink);
	font-family: "Outfit", sans-serif;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	display: grid;
	place-items: center;
	padding: 0 0 4px;
	box-shadow: 0 4px 12px rgba(34,48,79,.18);
	transition: transform .18s ease, background .18s ease, color .18s ease;
}
.atw2 .atw2-nav:hover { background: var(--atw2-red); border-color: var(--atw2-red); color: #fff; }
.atw2 .atw2-nav:focus-visible { outline: 3px solid var(--atw2-red); outline-offset: 3px; }
.atw2 .atw2-nav[disabled] { opacity: .3; cursor: default; }
.atw2 .atw2-nav[disabled]:hover { background: #fff; border-color: var(--atw2-ink); color: var(--atw2-ink); }
.atw2 .atw2-nav--prev { left: -10px; }
.atw2 .atw2-nav--next { right: -10px; }
/* hidden 属性を display 指定より優先させる(JS 未実行時に機能しない矢印を出さない) */
.atw2 .atw2-nav[hidden] { display: none; }
@media (max-width: 900px) {
	.atw2 .atw2-nav { display: none; }
}

/* faq (コア details ブロックを装飾)
   グループブロック化により WP が挿入する inner-container が唯一の子になるため、
   そちら側にも並べ方を指定しないと項目間の余白が消える。 */
.atw2 .atw2-faq { margin-top: 30px; }
.atw2 .atw2-faq,
.atw2 .atw2-faq > .wp-block-group__inner-container { display: grid; gap: 14px; }
.atw2 .atw2-faq details { background: #fff; border: 2px solid var(--atw2-ink); border-radius: 18px; overflow: hidden; margin: 0; }
.atw2 .atw2-faq summary { display: flex; align-items: baseline; gap: 14px; padding: 16px 22px; cursor: pointer;
	font-weight: 700; font-size: 15.5px; list-style: none; }
.atw2 .atw2-faq summary::-webkit-details-marker { display: none; }
.atw2 .atw2-faq summary::after { content: "+"; font-family: "Outfit", sans-serif; font-weight: 800; font-size: 20px;
	color: var(--atw2-red); margin-left: auto; transition: rotate .2s ease; }
.atw2 .atw2-faq details[open] summary::after { rotate: 45deg; }
.atw2 .atw2-faq details > *:not(summary) { padding: 0 22px 6px 22px; color: var(--atw2-sub); font-size: 14.5px; line-height: 2; }

/* voices */
.atw2 .atw2-voices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 32px; }
.atw2 .atw2-voice { background: #fff; border-radius: 22px; padding: 24px 22px; border: 2px solid var(--atw2-ink);
	font-size: 14px; line-height: 2; color: var(--atw2-sub); }
.atw2 .atw2-voice .atw2-date { font-family: "Outfit", sans-serif; font-weight: 700; font-size: 12px;
	color: var(--atw2-red); letter-spacing: .08em; display: block; margin-bottom: 8px; }

/* events */
.atw2 .atw2-events { display: grid; gap: 12px; margin-top: 30px; max-width: 720px; }
.atw2 .atw2-event { display: flex; align-items: center; gap: 18px; background: #fff; border: 2px solid var(--atw2-ink);
	border-radius: 16px; padding: 12px 22px 12px 12px; font-weight: 700; font-size: 14.5px;
	color: var(--atw2-ink); text-decoration: none;
	transition: transform .18s ease, box-shadow .18s ease; }
.atw2 a.atw2-event:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(34,48,79,.14); color: var(--atw2-red); }
.atw2 a.atw2-event:focus-visible { outline: 3px solid var(--atw2-red); outline-offset: 2px; }
.atw2 .atw2-event--nothumb { padding-left: 22px; }
/* アイキャッチは OGP 標準比率(1200x630 ≒ 1.91:1)。枠を同じ比率にして見切れを防ぐ */
.atw2 .atw2-event-thumb { flex: none; display: block; width: 230px; }
.atw2 .atw2-event-thumb img { width: 100%; height: auto; aspect-ratio: 1200 / 630;
	object-fit: cover; border-radius: 12px; display: block; }
.atw2 .atw2-event-body { display: flex; align-items: baseline; gap: 16px; flex: 1; min-width: 0; }
.atw2 .atw2-event-title { flex: 1; }
@media (max-width: 600px) {
	.atw2 .atw2-event { gap: 12px; padding: 10px 16px 10px 10px; }
	.atw2 .atw2-event-thumb { width: 148px; }
	.atw2 .atw2-event-body { flex-direction: column; align-items: flex-start; gap: 2px; }
}
.atw2 .atw2-event .atw2-date { font-family: "Outfit", sans-serif; font-weight: 700; font-size: 12.5px;
	color: var(--atw2-sub); flex: none; letter-spacing: .04em; }
.atw2 .atw2-morebtn { display: inline-block; margin-top: 40px; border: 2px solid var(--atw2-ink); border-radius: 999px;
	padding: 10px 34px; font-weight: 700; font-size: 14px; color: var(--atw2-ink); text-decoration: none;
	background: #fff; transition: transform .18s ease; }
.atw2 .atw2-morebtn:hover { transform: translateY(-2px); }
.atw2 .atw2-center { text-align: center; padding-top: 40px; }

/* reveal (JSが動いた場合のみ) */
@media (prefers-reduced-motion: no-preference) {
	.atw2.atw2-js .atw2-reveal { opacity: 0; translate: 0 26px; transition: opacity .7s ease, translate .7s ease; }
	.atw2.atw2-js .atw2-reveal.atw2-in { opacity: 1; translate: 0 0; }
}

@media (max-width: 760px) {
	.atw2 .atw2-brpc { display: none; }
	.atw2 .atw2-hero { padding-top: 40px; }
	.atw2 .atw2-hero-grid { grid-template-columns: 1fr; gap: 28px; }
	.atw2 .atw2-hero-visual { min-height: 0; margin-top: 8px; }
	.atw2 .atw2-hero-photo { width: 88%; margin: 0 auto; }
	.atw2 .atw2-stage { grid-template-columns: 1fr; gap: 26px; }
	.atw2 .atw2-course { padding-top: 56px; }
	.atw2 .atw2-info { padding-top: 56px; }
	.atw2 .atw2-timeline { grid-template-columns: 1fr; }
	.atw2 .atw2-voices { grid-template-columns: 1fr; }
	.atw2 .atw2-gallery img { width: 28%; min-width: 96px; }
}


/* ==========================================================================
   hrt: 「継ぐ顔」デザインシステム (会社情報・技術ページ群)
   - 明朝(Shippori Mincho)の見出し / 生成りの地 / 1pxの細罫 / 余白多め
   - atw2 と骨格(全幅化・wrap幅・英字eyebrow)を共有し、書体と線の太さで格を変える
   ========================================================================== */
.hrt {
	--hrt-paper: #fffdf8;
	--hrt-kinari: #f6f2e8;
	--hrt-sumi: #2b2c30;
	--hrt-sub: #6b6a64;
	--hrt-bengara: #96382a;
	--hrt-hairline: rgba(43, 44, 48, .25);

	position: relative;
	left: calc(50% - 50vw + var(--swl-scrollbar_width, 0px) / 2);
	width: calc(100vw - var(--swl-scrollbar_width, 0px));
	background: var(--hrt-paper);
	color: var(--hrt-sumi);
	font-size: 16px;
	line-height: 2.1;
	overflow: clip;
}
.hrt .wp-block-group__inner-container { max-width: none; }
.hrt .hrt-wrap { max-width: 980px; margin: 0 auto; padding: 0 28px; }
.hrt .hrt-narrow { max-width: 720px; margin-left: auto; margin-right: auto; }

/* 書体 */
.hrt .hrt-mincho, .hrt h1, .hrt h2, .hrt h3 {
	font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 600;
}
.hrt .hrt-en { font-family: "Outfit", sans-serif; font-variant-numeric: tabular-nums; }
.hrt h2::before, .hrt h2::after, .hrt h3::before, .hrt h3::after { content: none; }
/* SWELL 既定の見出し装飾(.post_content h2/h3)より詳細度を上げて打ち消す */
.post_content .hrt h1, .post_content .hrt h2, .post_content .hrt h3, .post_content .hrt h4,
.hrt h1, .hrt h2, .hrt h3, .hrt h4 { background: none; border: none; padding: 0; margin-top: 0; }

/* 英字ラベル(eyebrow) — atw2 と共通の型 */
.hrt .hrt-eyebrow {
	font-family: "Outfit", sans-serif; font-weight: 700; font-size: 11px;
	letter-spacing: .34em; color: var(--hrt-bengara); text-transform: uppercase;
	margin: 0 0 14px;
}

/* ページヘッダー */
.hrt .hrt-head { padding: 84px 0 0; }
.hrt .hrt-title {
	font-size: clamp(30px, 4.4vw, 44px); letter-spacing: .18em;
	line-height: 1.6; margin: 0 0 18px;
}
.hrt .hrt-lead { color: var(--hrt-sub); font-size: 15px; max-width: 38em; margin: 0 0 56px; }

/* 全幅写真 — 陰影を活かす。上下に細罫 */
.hrt .hrt-photo { margin: 0; border-top: 1px solid var(--hrt-hairline); border-bottom: 1px solid var(--hrt-hairline); }
.hrt .hrt-photo img { width: 100%; height: auto; display: block; }
.hrt .hrt-photo--tall img { aspect-ratio: 21 / 9; object-fit: cover; }
.hrt .hrt-photo figcaption {
	font-family: "Outfit", sans-serif; font-size: 11px; letter-spacing: .18em;
	color: var(--hrt-sub); text-align: right; padding: 8px 28px 0;
}

/* セクション */
.hrt .hrt-section { padding: 88px 0 0; }
.hrt .hrt-h2 { font-size: clamp(24px, 3.4vw, 32px); letter-spacing: .16em; margin: 0 0 30px; }
.hrt p { margin: 0 0 1.6em; }
.hrt .hrt-section p:last-child { margin-bottom: 0; }

/* 引用(統べる一文) */
.hrt .hrt-pull {
	font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; font-weight: 600;
	font-size: clamp(20px, 3vw, 27px); letter-spacing: .14em; line-height: 2;
	text-align: center; margin: 96px auto; max-width: 26em; padding: 0 28px;
}
.hrt .hrt-pull::before, .hrt .hrt-pull::after {
	content: ""; display: block; width: 56px; height: 1px;
	background: var(--hrt-hairline); margin: 26px auto;
}

/* ご挨拶: 肖像との2カラム */
.hrt .hrt-greeting { display: grid; grid-template-columns: 1fr 280px; gap: 56px; align-items: start; }
.hrt .hrt-portrait { margin: 0; }
.hrt .hrt-portrait img { width: 100%; height: auto; display: block; }
.hrt .hrt-portrait figcaption {
	font-size: 12.5px; color: var(--hrt-sub); letter-spacing: .1em;
	text-align: center; padding-top: 12px;
}

/* 数値ファクト — 細罫のグリッド */
.hrt .hrt-facts {
	display: grid; grid-template-columns: repeat(4, 1fr);
	border: 1px solid var(--hrt-hairline); background: var(--hrt-hairline);
	gap: 1px; margin: 72px 0 0;
}
.hrt .hrt-fact { background: var(--hrt-kinari); padding: 30px 16px; text-align: center; }
.hrt .hrt-fact-v {
	font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: clamp(24px, 3vw, 30px); letter-spacing: .06em; line-height: 1.4;
}
.hrt .hrt-fact-v small { font-size: .55em; }
.hrt .hrt-fact-l { font-size: 12px; color: var(--hrt-sub); margin-top: 10px; line-height: 1.7; }

/* 生成りの面 */
.hrt .hrt-soft { background: var(--hrt-kinari); margin-top: 96px; padding: 88px 0; }

/* もうひとつの顔への橋(あそぶ顔リンク) */
.hrt .hrt-bridge {
	margin-top: 96px; border-top: 1px solid var(--hrt-hairline);
	padding: 72px 0 88px; text-align: center;
}
.hrt .hrt-bridge-note { font-size: 14px; color: var(--hrt-sub); margin: 0 0 8px; }
.hrt .hrt-bridge-title {
	font-family: "Zen Maru Gothic", "Shippori Mincho", sans-serif; font-weight: 900;
	font-size: clamp(21px, 3vw, 27px); letter-spacing: .05em; margin: 0 0 26px;
}
.hrt .hrt-bridge-title .hrt-bridge-accent { color: #c8402f; }
/* 継ぐ顔同士を結ぶ橋では明朝を優先する */
.hrt .hrt-bridge-title.hrt-mincho { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; font-weight: 600; letter-spacing: .14em; }
.hrt a.hrt-btn {
	display: inline-block; border: 1px solid var(--hrt-sumi); border-radius: 999px;
	padding: 12px 44px; color: var(--hrt-sumi); text-decoration: none;
	font-size: 14px; letter-spacing: .2em; transition: background .25s, color .25s;
}
.hrt a.hrt-btn:hover { background: var(--hrt-sumi); color: var(--hrt-paper); }
.hrt a.hrt-btn:focus-visible { outline: 2px solid var(--hrt-bengara); outline-offset: 3px; }

@media (max-width: 760px) {
	.hrt { font-size: 15px; line-height: 2; }
	.hrt .hrt-head { padding-top: 56px; }
	.hrt .hrt-lead { margin-bottom: 36px; }
	.hrt .hrt-section { padding-top: 60px; }
	.hrt .hrt-greeting { grid-template-columns: 1fr; gap: 32px; }
	.hrt .hrt-portrait { max-width: 260px; margin: 0 auto; }
	.hrt .hrt-facts { grid-template-columns: repeat(2, 1fr); margin-top: 48px; }
	.hrt .hrt-pull { margin: 64px auto; }
	.hrt .hrt-soft { margin-top: 64px; padding: 60px 0; }
	.hrt .hrt-bridge { margin-top: 64px; padding: 48px 0 60px; }
	.hrt .hrt-photo figcaption { padding-right: 16px; }
}

/* --- hrt: 会社概要ページ用コンポーネント --- */

/* 沿革タイムライン */
.hrt .hrt-hist { border-left: 1px solid var(--hrt-hairline); margin: 8px 0 0 6px; padding-left: 34px; display: grid; gap: 20px; }
.hrt .hrt-hist-row { position: relative; display: grid; grid-template-columns: 9em 1fr; gap: 18px; align-items: baseline; }
.hrt .hrt-hist-row::before {
	content: ""; position: absolute; left: -38px; top: .75em;
	width: 7px; height: 7px; border-radius: 50%; background: var(--hrt-bengara);
}
.hrt .hrt-hist-y {
	font-family: "Shippori Mincho", serif; font-weight: 600;
	letter-spacing: .08em; white-space: nowrap;
}
.hrt .hrt-hist-t { color: var(--hrt-sumi); }

/* 概要表 — 横罫のみの静かな表 */
.hrt .hrt-table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.9; }
.hrt .hrt-table th, .hrt .hrt-table td {
	border: none; border-bottom: 1px solid var(--hrt-hairline);
	padding: 18px 8px; text-align: left; vertical-align: top; background: none;
}
.hrt .hrt-table th {
	font-family: "Shippori Mincho", serif; font-weight: 600;
	letter-spacing: .12em; white-space: nowrap; width: 9em; color: var(--hrt-sumi);
}
.hrt .hrt-table tr:first-child th, .hrt .hrt-table tr:first-child td { border-top: 1px solid var(--hrt-hairline); }

/* アクセス */
.hrt .hrt-access { display: grid; grid-template-columns: 1.2fr 1fr; gap: 44px; align-items: start; }
.hrt .hrt-map { border: 1px solid var(--hrt-hairline); }
.hrt .hrt-map iframe { width: 100%; height: 380px; display: block; border: 0; filter: grayscale(.65); }
.hrt .hrt-access-info { font-size: 14.5px; }
.hrt .hrt-access-info h3 { font-size: 17px; letter-spacing: .12em; margin: 0 0 12px; }
.hrt .hrt-access-info p { margin: 0 0 1.2em; }
.hrt .hrt-access-info a { color: var(--hrt-bengara); }

@media (max-width: 760px) {
	.hrt .hrt-hist { padding-left: 24px; }
	.hrt .hrt-hist-row { grid-template-columns: 1fr; gap: 2px; }
	.hrt .hrt-hist-row::before { left: -28px; }
	.hrt .hrt-table th { width: 6.5em; letter-spacing: .06em; }
	.hrt .hrt-access { grid-template-columns: 1fr; gap: 28px; }
	.hrt .hrt-map iframe { height: 280px; }
}

/* --- hrt: 染色技術・設備紹介ページ用コンポーネント --- */

/* 染色方式セクション(写真+解説) */
.hrt .hrt-method { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: start; margin-top: 30px; }
.hrt .hrt-method-photo { margin: 0; }
.hrt .hrt-method-photo img { width: 100%; height: auto; display: block; border: 1px solid var(--hrt-hairline); }
.hrt .hrt-method-photo figcaption { font-family: "Outfit", sans-serif; font-size: 11px; letter-spacing: .16em; color: var(--hrt-sub); padding-top: 8px; }
.hrt .hrt-method h3 { font-size: clamp(20px, 2.6vw, 25px); letter-spacing: .14em; margin: 0 0 16px; }
.hrt .hrt-method-body { font-size: 15px; }
.hrt .hrt-kicker {
	font-family: "Shippori Mincho", serif; font-weight: 600; font-size: 17px;
	letter-spacing: .1em; margin: 28px 0 8px; padding-left: 14px;
	border-left: 2px solid var(--hrt-bengara);
}

/* 比較表(かせ vs チーズ) */
.hrt .hrt-cmp-wrap { overflow-x: auto; margin-top: 34px; }
.hrt .hrt-cmp { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 14.5px; line-height: 1.8; }
.hrt .hrt-cmp th, .hrt .hrt-cmp td {
	border: none; border-bottom: 1px solid var(--hrt-hairline);
	padding: 14px 12px; text-align: left; vertical-align: top; background: none;
}
.hrt .hrt-cmp thead th {
	font-family: "Shippori Mincho", serif; font-weight: 600; font-size: 17px;
	letter-spacing: .14em; border-bottom: 2px solid var(--hrt-sumi); text-align: left;
	color: var(--hrt-sumi);
}
.hrt .hrt-cmp thead th small { display: block; font-family: "Noto Sans JP", sans-serif; font-size: 12px; font-weight: 400; color: var(--hrt-sub); letter-spacing: .04em; margin-top: 4px; }
.hrt .hrt-cmp tbody th {
	font-family: "Shippori Mincho", serif; font-weight: 600; letter-spacing: .08em;
	white-space: nowrap; width: 11em;
}

/* 設備カード */
.hrt .hrt-equips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px 28px; margin-top: 34px; }
.hrt .hrt-equip { font-size: 13.5px; line-height: 1.8; }
.hrt .hrt-equip img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border: 1px solid var(--hrt-hairline); }
.hrt .hrt-equip-name { font-family: "Shippori Mincho", serif; font-weight: 600; font-size: 15.5px; letter-spacing: .08em; margin: 12px 0 2px; }
.hrt .hrt-equip-desc { color: var(--hrt-sub); margin: 0; }

/* リンク行(工程ページ等への細い誘導) */
.hrt .hrt-more { margin-top: 22px; }
.hrt a.hrt-link {
	color: var(--hrt-bengara); text-decoration: none; font-size: 14px; letter-spacing: .12em;
	border-bottom: 1px solid currentColor; padding-bottom: 2px;
}
.hrt a.hrt-link::after { content: " →"; }
.hrt a.hrt-link:hover { opacity: .7; }

@media (max-width: 760px) {
	.hrt .hrt-method { grid-template-columns: 1fr; gap: 22px; }
	.hrt .hrt-equips { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; }
	.hrt .hrt-cmp tbody th { width: 8em; white-space: normal; }
}

/* --- hrt: 染色工程ページ用コンポーネント --- */

/* 工程(実際の順序があるため漢数字で番号を振る) */
.hrt .hrt-steps { display: grid; margin-top: 10px; }
.hrt .hrt-step {
	display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: center;
	padding: 40px 0; border-bottom: 1px solid var(--hrt-hairline);
}
.hrt .hrt-step:last-child { border-bottom: none; }
.hrt .hrt-step-no {
	font-family: "Shippori Mincho", serif; font-weight: 600; font-size: 15px;
	letter-spacing: .3em; color: var(--hrt-bengara); display: block; margin-bottom: 6px;
}
.hrt .hrt-step h3 { font-size: clamp(19px, 2.4vw, 23px); letter-spacing: .12em; margin: 0 0 12px; }
.hrt .hrt-step-body { font-size: 15px; }
.hrt .hrt-step-photo { margin: 0; }
.hrt .hrt-step-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border: 1px solid var(--hrt-hairline); }

/* 対象となる糸・強み・弱み */
.hrt .hrt-sw { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; margin-top: 30px; }
.hrt .hrt-sw h3 { font-size: 19px; letter-spacing: .16em; margin: 0 0 16px; padding-bottom: 10px; border-bottom: 1px solid var(--hrt-hairline); }
.hrt .hrt-sw ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 14.5px; line-height: 1.9; }
.hrt .hrt-sw li { position: relative; padding-left: 20px; }
.hrt .hrt-strength li::before { content: ""; position: absolute; left: 0; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--hrt-bengara); }
.hrt .hrt-weakness li::before { content: ""; position: absolute; left: 0; top: .95em; width: 10px; height: 1px; background: var(--hrt-sub); }

@media (max-width: 760px) {
	.hrt .hrt-step { grid-template-columns: 1fr; gap: 18px; padding: 28px 0; }
	.hrt .hrt-step-photo { order: -1; }
	.hrt .hrt-sw { grid-template-columns: 1fr; gap: 32px; }
}

/* --- atw2: タフティングハブ/作品例ページ用コンポーネント --- */

/* ハブ分岐カード */
.atw2 .atw2-hubcards { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 40px; }
.atw2 a.atw2-hubcard {
	position: relative; display: block; border: 2px solid var(--atw2-ink); border-radius: 22px;
	overflow: hidden; text-decoration: none; color: var(--atw2-ink); background: #fff;
	transition: translate .25s ease, box-shadow .25s ease;
}
.atw2 a.atw2-hubcard:hover { translate: 0 -3px; box-shadow: 0 14px 26px rgba(34,48,79,.16); }
.atw2 a.atw2-hubcard:focus-visible { outline: 3px solid var(--atw2-red); outline-offset: 3px; }
.atw2 .atw2-hubcard-photo { aspect-ratio: 16/8.5; overflow: hidden; }
.atw2 .atw2-hubcard-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.atw2 .atw2-hubcard-body { padding: 16px 20px 18px; }
.atw2 .atw2-hubcard-title { font-family: "Zen Maru Gothic", sans-serif; font-weight: 900;
	font-size: clamp(17px, 2.2vw, 20px); letter-spacing: .04em; display: flex; align-items: center; gap: 10px; }
.atw2 .atw2-hubcard-title .atw2-arrow { margin-left: auto; color: var(--atw2-ac, var(--atw2-red)); font-weight: 700; }
.atw2 .atw2-hubcard-desc { margin: 6px 0 0; font-size: 13.5px; color: var(--atw2-sub); line-height: 1.8; }
.atw2 .atw2-hubcard-tag { position: absolute; top: 14px; left: 14px; z-index: 1;
	font-family: "Outfit", sans-serif; font-weight: 800; font-size: 11px; letter-spacing: .18em;
	background: var(--atw2-ac, var(--atw2-red)); color: #fff; border-radius: 999px; padding: 4px 14px; }

/* 作品グリッド */
.atw2 .atw2-works { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 34px; }
.atw2 .atw2-works--wide { grid-template-columns: repeat(3, 1fr); }
.atw2 .atw2-works img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block;
	border: 2px solid var(--atw2-ink); border-radius: 14px; background: #fff; }
.atw2 .atw2-works--wide img { aspect-ratio: 4/3; object-fit: contain; }

@media (max-width: 760px) {
	.atw2 .atw2-hubcards { grid-template-columns: 1fr; gap: 16px; }
	.atw2 .atw2-works { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.atw2 .atw2-works--wide { grid-template-columns: repeat(2, 1fr); }
}

/* --- atw2: 出張ワークショップページ用コンポーネント --- */

/* メニュー仕様カード(内容/サイズ/料金/人数/所要時間) */
.atw2 .atw2-spec { background: #fff; border: 2px solid var(--atw2-ink); border-radius: 18px;
	padding: 20px 24px; position: relative; }
.atw2 .atw2-spec::before { content: ""; position: absolute; inset: 5px;
	border: 1.5px dashed rgba(34,48,79,.25); border-radius: 12px; pointer-events: none; }
.atw2 .atw2-spec dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 0; font-size: 14px; }
.atw2 .atw2-spec dt { font-weight: 700; white-space: nowrap; color: var(--atw2-ac, var(--atw2-red)); }
.atw2 .atw2-spec dd { margin: 0; font-weight: 700; }
.atw2 .atw2-spec .atw2-spec-price { font-family: "Outfit", sans-serif; font-size: 17px; }

/* 特徴リスト(メニューごとの推しポイント) */
.atw2 .atw2-points { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 9px; font-size: 14.5px; font-weight: 700; }
.atw2 .atw2-points li { position: relative; padding-left: 22px; line-height: 1.8; }
.atw2 .atw2-points li::before { content: ""; position: absolute; left: 0; top: .62em;
	width: 9px; height: 9px; border-radius: 50%; background: var(--atw2-ac, var(--atw2-red)); }

/* メニュー写真ペア */
.atw2 .atw2-photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 22px; }
.atw2 .atw2-photo-pair img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 16px;
	border: 2px solid var(--atw2-ink); }

/* 実績リスト */
.atw2 .atw2-records { display: grid; gap: 10px; margin-top: 30px; }
.atw2 .atw2-record { display: flex; align-items: baseline; gap: 14px; background: #fff;
	border: 2px solid var(--atw2-ink); border-radius: 999px; padding: 10px 22px;
	text-decoration: none; color: var(--atw2-ink); font-weight: 700; font-size: 14px;
	transition: translate .2s ease, box-shadow .2s ease; }
.atw2 a.atw2-record:hover { translate: 0 -2px; box-shadow: 0 8px 16px rgba(34,48,79,.14); }
.atw2 a.atw2-record:focus-visible { outline: 3px solid var(--atw2-red); outline-offset: 2px; }
.atw2 .atw2-record-date { font-family: "Outfit", sans-serif; font-weight: 700; font-size: 13px;
	color: var(--atw2-red); white-space: nowrap; letter-spacing: .04em; }
.atw2 .atw2-record .atw2-arrow { margin-left: auto; color: var(--atw2-red); }
.atw2 span.atw2-record { color: var(--atw2-sub); }

@media (max-width: 760px) {
	.atw2 .atw2-record { border-radius: 18px; flex-wrap: wrap; gap: 4px 12px; padding: 10px 18px; }
	.atw2 .atw2-photo-pair { gap: 10px; }
}

/* ==========================================================================
   prd: 「蝶番」製品ページ群 (販売製品/するりぃと/色糸パレット)
   - 継ぐ顔(明朝の製品名・細罫)とあそぶ顔(丁寧な色・丸ボタン)の中間トーン
   - アクセントは緑
   ========================================================================== */
.prd {
	--prd-paper: #fffdf8;
	--prd-kinari: #f6f2ea;
	--prd-ink: #2b2c30;
	--prd-sub: #6b6a64;
	--prd-green: #2f5d3a;
	--prd-hairline: rgba(43, 44, 48, .22);

	position: relative;
	left: calc(50% - 50vw + var(--swl-scrollbar_width, 0px) / 2);
	width: calc(100vw - var(--swl-scrollbar_width, 0px));
	background: var(--prd-paper);
	color: var(--prd-ink);
	font-size: 15.5px;
	line-height: 2;
	overflow: clip;
}
.prd .wp-block-group__inner-container { max-width: none; }
.prd .prd-wrap { max-width: 980px; margin: 0 auto; padding: 0 28px; }
.prd .prd-mincho, .prd h1, .prd h2 {
	font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; font-weight: 600;
}
.post_content .prd h1, .post_content .prd h2, .post_content .prd h3, .post_content .prd h4,
.prd h1, .prd h2, .prd h3, .prd h4 { background: none; border: none; padding: 0; margin-top: 0; }
.prd h2::before, .prd h2::after, .prd h3::before, .prd h3::after { content: none; }

/* ページヘッダー */
.prd .prd-head { padding: 80px 0 8px; }
.prd .prd-title { font-size: clamp(28px, 4vw, 40px); letter-spacing: .18em; margin: 0 0 16px; line-height: 1.6; }
.prd .prd-lead { color: var(--prd-sub); font-size: 15px; max-width: 38em; margin: 0; }

/* 製品行(写真とテキストを交互に) */
.prd .prd-item { padding: 72px 0 64px; border-bottom: 1px solid var(--prd-hairline); }
.prd .prd-item:last-of-type { border-bottom: none; }
.prd .prd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: center; }
.prd .prd-grid--flip .prd-photo { order: 2; }
.prd .prd-photo { margin: 0; }
.prd .prd-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block;
	border: 1px solid var(--prd-hairline); border-radius: 10px; }
.prd .prd-name { font-size: clamp(23px, 3vw, 29px); letter-spacing: .14em; margin: 0 0 6px; }
.prd .prd-name-sub { font-family: "Zen Maru Gothic", sans-serif; font-weight: 700; font-size: 14px;
	color: var(--prd-green); margin: 0 0 18px; letter-spacing: .06em; }
.prd .prd-copy { margin: 0 0 1.2em; font-size: 15px; }
.prd .prd-features { list-style: none; margin: 0 0 26px; padding: 0; display: grid; gap: 8px; font-size: 14px; }
.prd .prd-features li { position: relative; padding-left: 20px; line-height: 1.8; }
.prd .prd-features li::before { content: ""; position: absolute; left: 0; top: .65em;
	width: 8px; height: 8px; border-radius: 50%; background: var(--prd-green); }
.prd .prd-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.prd a.prd-btn { display: inline-block; border-radius: 999px; padding: 11px 32px;
	font-size: 14px; font-weight: 700; letter-spacing: .1em; text-decoration: none;
	border: 2px solid var(--prd-green); color: var(--prd-green); background: transparent;
	transition: translate .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease; }
.prd a.prd-btn--primary { background: var(--prd-green); color: #fff; }
.prd a.prd-btn:hover { translate: 0 -2px; box-shadow: 0 8px 16px rgba(47,93,58,.22); }
.prd a.prd-btn:focus-visible { outline: 3px solid var(--prd-green); outline-offset: 3px; }

/* レビュー(製品行の下に折りたたまず静かに) */
.prd .prd-review { margin-top: 44px; }
.prd .prd-review h3 { font-family: "Shippori Mincho", serif; font-weight: 600; font-size: 16px;
	letter-spacing: .14em; margin: 0 0 4px; padding-bottom: 8px; border-bottom: 1px solid var(--prd-hairline); }

@media (max-width: 760px) {
	.prd .prd-head { padding-top: 52px; }
	.prd .prd-item { padding: 48px 0 44px; }
	.prd .prd-grid { grid-template-columns: 1fr; gap: 24px; }
	.prd .prd-grid--flip .prd-photo { order: 0; }
}

/* --- prd: 製品詳細ページ(するりぃと等)用 --- */
.prd .prd-section { padding: 64px 0 8px; }
.prd .prd-h2 { font-size: clamp(21px, 2.8vw, 27px); letter-spacing: .12em; margin: 0 0 20px; line-height: 1.7; }
.prd .prd-soft { background: var(--prd-kinari); margin-top: 64px; padding: 60px 0 68px; }
.prd .prd-videos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 28px; }
.prd .prd-videos iframe, .prd .prd-videos .wp-block-embed { margin: 0; }
.prd .prd-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 20px; }
.prd .prd-pair img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block;
	border: 1px solid var(--prd-hairline); border-radius: 10px; }
.prd .prd-variant { padding: 44px 0 0; }
.prd .prd-variant-name { font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: 20px; letter-spacing: .14em; margin: 0; }
.prd .prd-variant-note { font-size: 13.5px; color: var(--prd-sub); margin: 6px 0 0; }
.prd .prd-cta { text-align: center; padding: 72px 0 84px; }
.prd .prd-cta .prd-btns { justify-content: center; }
.prd .prd-cta-lead { font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: clamp(20px, 2.8vw, 26px); letter-spacing: .14em; margin: 0 0 24px; }
.prd .prd-hero-photo { margin: 0; border-top: 1px solid var(--prd-hairline); border-bottom: 1px solid var(--prd-hairline); }
.prd .prd-hero-photo img { width: 100%; aspect-ratio: 21/9; object-fit: cover; display: block; }
@media (max-width: 760px) {
	.prd .prd-videos { grid-template-columns: 1fr; }
	.prd .prd-section { padding-top: 44px; }
	.prd .prd-soft { margin-top: 44px; padding: 44px 0 48px; }
	.prd .prd-pair { gap: 10px; }
}

/* ==========================================================================
   hng: トップページ(蝶番) — 二つの顔を一枚に縫い合わせる
   ========================================================================== */
.hng {
	--hng-paper: #fffdf8;
	--hng-kinari: #f6f2ea;
	--hng-cream: #f3eee3;
	--hng-sumi: #2b2c30;
	--hng-ink: #22304f;
	--hng-sub: #6b6a64;
	--hng-red: #b53a2a; /* 生成り背景(--hng-cream)上でも WCAG AA(4.5:1)を満たす赤 */
	--hng-green: #2f5d3a;
	--hng-bengara: #96382a;
	--hng-hairline: rgba(43, 44, 48, .22);

	position: relative;
	left: calc(50% - 50vw + var(--swl-scrollbar_width, 0px) / 2);
	width: calc(100vw - var(--swl-scrollbar_width, 0px));
	background: var(--hng-paper);
	color: var(--hng-sumi);
	font-size: 15.5px;
	line-height: 2;
	overflow: clip;
}
.hng .wp-block-group__inner-container { max-width: none; }
.hng .hng-wrap { max-width: 1080px; margin: 0 auto; padding: 0 28px; }
.hng .hng-mincho { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; font-weight: 600; }
.hng .hng-maru { font-family: "Zen Maru Gothic", sans-serif; font-weight: 900; }
.post_content .hng h1, .post_content .hng h2, .post_content .hng h3,
.hng h1, .hng h2, .hng h3 { background: none; border: none; padding: 0; margin-top: 0; }
.hng h2::before, .hng h2::after, .hng h3::before, .hng h3::after { content: none; }

/* 糸色の縫い目 */
.hng .hng-yarn { padding: 30px 24px; text-align: center; }
.hng .hng-yarn-line { font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: 15px; letter-spacing: .3em; margin: 0 0 16px; }
.hng .hng-dots { display: flex; gap: 7px; flex-wrap: wrap; justify-content: center; max-width: 720px; margin: 0 auto; }
.hng .hng-dots i { width: 12px; height: 12px; border-radius: 50%; display: block; }

/* セクション共通 */
.hng .hng-section { padding: 72px 0 8px; }
.hng .hng-h2 { font-size: clamp(21px, 2.8vw, 27px); margin: 0 0 8px; }
.hng .hng-sec-sub { font-size: 14px; color: var(--hng-sub); margin: 0 0 28px; }

/* 2カラム誘導カード(継ぐ) */
.hng .hng-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.hng a.hng-card { display: block; text-decoration: none; color: var(--hng-sumi);
	border: 1px solid var(--hng-hairline); border-radius: 10px; overflow: hidden; background: #fff;
	transition: box-shadow .25s ease, translate .25s ease; }
.hng a.hng-card:hover { translate: 0 -3px; box-shadow: 0 12px 24px rgba(43,44,48,.12); }
.hng a.hng-card:focus-visible { outline: 3px solid var(--hng-bengara); outline-offset: 2px; }
/* カード内はマークアップ上 span のため、折り返し時に padding/margin が効くよう block 化する */
.hng .hng-card-photo { display: block; aspect-ratio: 16/8.5; overflow: hidden; }
.hng .hng-card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hng .hng-card-body { display: block; padding: 18px 22px 20px; }
.hng .hng-card-title { display: block; font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: 17.5px; letter-spacing: .12em; line-height: 1.6; margin: 0 0 6px; }
.hng .hng-card-desc { display: block; font-size: 13px; color: var(--hng-sub); margin: 0; line-height: 1.9; }

/* 製品ミニカード(蝶番・緑) */
.hng .hng-prods { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.hng a.hng-prod { display: block; text-decoration: none; color: var(--hng-sumi);
	border: 1px solid var(--hng-hairline); border-radius: 10px; overflow: hidden; background: #fff;
	transition: box-shadow .25s ease, translate .25s ease; }
.hng a.hng-prod:hover { translate: 0 -3px; box-shadow: 0 10px 20px rgba(47,93,58,.14); }
.hng a.hng-prod:focus-visible { outline: 3px solid var(--hng-green); outline-offset: 2px; }
.hng .hng-prod img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.hng .hng-prod-name { display: block; font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: 14.5px; letter-spacing: .08em; line-height: 1.6; margin: 0; padding: 12px 14px 4px;
	text-wrap: balance; line-break: strict; }
.hng .hng-prod-more { font-size: 12px; color: var(--hng-green); font-weight: 700; padding: 0 14px 14px;
	display: block; line-height: 1.7; text-wrap: balance; }

/* あそぶ帯 */
.hng .hng-asobu { background: var(--hng-cream); color: var(--hng-ink); margin-top: 72px; padding: 68px 0 76px; }
.hng .hng-asobu .hng-h2 { font-family: "Zen Maru Gothic", sans-serif; font-weight: 900; letter-spacing: .04em; }
.hng .hng-asobu-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 44px; align-items: center; }
.hng .hng-asobu-photo { margin: 0; }
.hng .hng-asobu-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block;
	border-radius: 22px; border: 2px solid var(--hng-ink); }
.hng .hng-asobu-btns { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
.hng a.hng-btn-pop { display: inline-block; border-radius: 999px; padding: 11px 30px;
	font-size: 14px; font-weight: 700; letter-spacing: .06em; text-decoration: none;
	background: var(--hng-red); color: #fff; border: 2px solid var(--hng-red);
	transition: translate .2s ease, box-shadow .2s ease; }
.hng a.hng-btn-pop--ghost { background: transparent; color: var(--hng-red); }
.hng a.hng-btn-pop:hover { translate: 0 -2px; box-shadow: 0 8px 16px rgba(181,58,42,.24); }
.hng a.hng-btn-pop:focus-visible { outline: 3px solid var(--hng-ink); outline-offset: 2px; }

/* お知らせ・メディア */
.hng .hng-news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.hng .hng-news-grid h3 { font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: 17px; letter-spacing: .14em; margin: 0 0 12px; padding-bottom: 8px;
	border-bottom: 1px solid var(--hng-hairline); }
.hng .hng-media { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.hng .hng-media li { border-bottom: 1px dashed var(--hng-hairline); }
.hng .hng-media a, .hng .hng-media span { display: block; padding: 12px 4px; font-size: 14px;
	text-decoration: none; color: var(--hng-sumi); }
.hng .hng-media a:hover { color: var(--hng-bengara); }
.hng .hng-media .hng-media-date { font-family: "Outfit", sans-serif; font-size: 12.5px;
	color: var(--hng-bengara); margin-right: 12px; letter-spacing: .04em; }

/* 会社情報帯 */
.hng .hng-company { background: var(--hng-kinari); margin-top: 80px; padding: 72px 0;
	border-top: 1px solid var(--hng-hairline); text-align: center; }
.hng .hng-company-phil { font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: clamp(18px, 2.4vw, 23px); letter-spacing: .18em; line-height: 2.2; margin: 0 0 18px; }
.hng .hng-company-text { font-size: 14px; color: var(--hng-sub); max-width: 38em; margin: 0 auto 28px; }
.hng a.hng-btn-quiet { display: inline-block; border: 1px solid var(--hng-sumi); border-radius: 999px;
	padding: 11px 40px; color: var(--hng-sumi); text-decoration: none; font-size: 13.5px;
	letter-spacing: .2em; margin: 0 6px; transition: background .25s, color .25s; }
.hng a.hng-btn-quiet:hover { background: var(--hng-sumi); color: var(--hng-paper); }
.hng a.hng-btn-quiet:focus-visible { outline: 2px solid var(--hng-bengara); outline-offset: 3px; }

@media (max-width: 760px) {
	.hng .hng-section { padding-top: 52px; }
	.hng .hng-duo { grid-template-columns: 1fr; gap: 18px; }
	.hng .hng-prods { grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.hng .hng-prod-name { padding: 11px 12px 4px; }
	.hng .hng-prod-more { padding: 0 12px 13px; }
	.hng .hng-asobu { margin-top: 52px; padding: 48px 0 56px; }
	.hng .hng-asobu-grid { grid-template-columns: 1fr; gap: 24px; }
	.hng .hng-news-grid { grid-template-columns: 1fr; gap: 36px; }
	.hng .hng-company { margin-top: 56px; padding: 52px 0; }
}

/* ==========================================================================
   サイト共通調整
   ========================================================================== */
/* パンくずリストを全ページで非表示 */
#breadcrumb { display: none; }

/* 改行位置の制御用: この中では折り返さない */
.ogw-nobr { white-space: nowrap; }

/* 新デザイン(全幅ラッパー)のページでは、テーマ既定のコンテンツ上余白を除去する。
   (SWELL main.css の .l-content{padding-top:2em} と .post_content の上マージン)
   未改修ページは自前の上余白を持たないため、対象を :has() で限定する */
.l-content:has(.atw2, .hrt, .prd, .hng) { padding-top: 0; }
.post_content:has(> .alignfull.atw2, > .alignfull.hrt, > .alignfull.prd, > .alignfull.hng),
.l-mainContent__inner > .post_content:has(.atw2, .hrt, .prd, .hng) { margin-top: 0; }

/* --- hng: トップB案(写真主役ヒーロー) --- */
.hng .hng-hero2 { position: relative; min-height: min(88vh, 860px); display: flex; align-items: flex-end; overflow: hidden; }
.hng .hng-hero2-photo { position: absolute; inset: 0; }
.hng .hng-hero2-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hng .hng-hero2::after { content: ""; position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(20,22,28,.62) 0%, rgba(20,22,28,.18) 45%, rgba(20,22,28,.28) 100%); }
.hng .hng-hero2-inner { position: relative; z-index: 1; width: 100%; max-width: 1080px;
	margin: 0 auto; padding: 0 28px 72px; color: #fdfcf8; }
.hng .hng-hero2-name { font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: 14px; letter-spacing: .34em; margin: 0 0 18px; opacity: .9; }
.hng .hng-hero2-title { font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: clamp(30px, 4.8vw, 52px); letter-spacing: .16em; line-height: 1.8; margin: 0 0 16px;
	text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.hng .hng-hero2-sub { font-size: 14px; letter-spacing: .12em; margin: 0; opacity: .85; }
/* 右端の縦書きタグライン */
.hng .hng-hero2-tate { position: absolute; right: 34px; top: 50%; translate: 0 -50%; z-index: 1;
	writing-mode: vertical-rl; font-family: "Shippori Mincho", serif; font-weight: 600;
	font-size: 13px; letter-spacing: .5em; color: #fdfcf8; opacity: .8; }
/* スクロールの糸(細い縦線) */
.hng .hng-hero2-thread { position: absolute; left: 50%; bottom: 0; z-index: 1;
	width: 1px; height: 56px; background: rgba(253,252,248,.7); }
@media (prefers-reduced-motion: no-preference) {
	.hng .hng-hero2-thread { animation: hng-thread 2.4s ease-in-out infinite; transform-origin: top; }
	@keyframes hng-thread { 0% { scale: 1 0; } 45% { scale: 1 1; } 100% { scale: 1 1; opacity: 0; } }
}

/* 二つの顔(B案: 写真ドア型カード) */
.hng .hng-doors { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.hng a.hng-door { position: relative; display: block; border-radius: 12px; overflow: hidden;
	text-decoration: none; color: #fdfcf8; min-height: 340px;
	transition: box-shadow .3s ease, translate .3s ease; }
.hng a.hng-door:hover { translate: 0 -4px; box-shadow: 0 18px 36px rgba(20,22,28,.22); }
.hng a.hng-door:focus-visible { outline: 3px solid var(--hng-bengara); outline-offset: 3px; }
.hng .hng-door-photo { position: absolute; inset: 0; }
.hng .hng-door-photo img { width: 100%; height: 100%; object-fit: cover; display: block;
	transition: scale .5s ease; }
.hng a.hng-door:hover .hng-door-photo img { scale: 1.04; }
.hng .hng-door-body { position: relative; z-index: 1; display: flex; flex-direction: column;
	justify-content: flex-end; min-height: 340px; padding: 26px 28px;
	background: linear-gradient(to top, rgba(20,22,28,.66), rgba(20,22,28,.05) 55%); }
.hng .hng-door-title { margin: 0 0 8px; font-size: clamp(19px, 2.4vw, 24px); line-height: 1.7;
	text-shadow: 0 1px 14px rgba(0,0,0,.4); }
.hng .hng-door--tsugu .hng-door-title { font-family: "Shippori Mincho", serif; font-weight: 600; letter-spacing: .14em; }
.hng .hng-door--asobu .hng-door-title { font-family: "Zen Maru Gothic", sans-serif; font-weight: 900; letter-spacing: .04em; }
.hng .hng-door-desc { font-size: 12.5px; margin: 0 0 10px; opacity: .88; line-height: 1.9; }
.hng .hng-door-more { font-size: 13px; font-weight: 700; letter-spacing: .12em; }

@media (max-width: 760px) {
	.hng .hng-hero2 { min-height: 78vh; }
	/* 右端の縦書きタグラインと重ならないよう、タイトル側の右余白を確保する */
	.hng .hng-hero2-inner { padding: 0 56px 56px 24px; }
	.hng .hng-hero2-tate { right: 18px; }
	.hng .hng-doors { grid-template-columns: 1fr; gap: 16px; }
	.hng a.hng-door, .hng .hng-door-body { min-height: 260px; }
}

/* ==========================================================================
   arc/form/voice: 一覧・フォーム系ページ
   - お知らせ(/news/) = hrt トーン、ブログ(/blog/) = atw2 トーン
   - お問い合わせ(/contact/) = hrt トーン、お客様の声(/review/) = atw2 トーン
   - 本体は SWELL / CF7 / site-reviews の出力なので、ラッパー側から再スタイルする
   ========================================================================== */

/* --- 共通: 一覧ページのヘッダー下写真 --- */
.hrt.hrt-arc .hrt-photo--tall img { aspect-ratio: 21 / 7; }

/* --- hrt: お知らせ一覧 --- */
.hrt .hrt-list-section { padding: 72px 0 96px; }

/* --- hrt: お問い合わせ --- */
.hrt.hrt-form .hrt-photo--tall img { aspect-ratio: 21 / 7; }
.hrt .hrt-tel {
	border: 1px solid var(--hrt-hairline);
	padding: 28px 24px;
	text-align: center;
	margin: 0 0 64px;
}
.hrt .hrt-tel-label {
	font-family: "Outfit", sans-serif; font-weight: 700; font-size: 11px;
	letter-spacing: .3em; text-transform: uppercase; color: var(--hrt-bengara);
	margin: 0 0 12px;
}
.hrt .hrt-tel-no { margin: 0; }
.hrt .hrt-tel-no a {
	font-family: "Outfit", sans-serif; font-weight: 700;
	font-size: clamp(26px, 4vw, 34px); letter-spacing: .06em;
	color: var(--hrt-sumi); text-decoration: none;
}
.hrt .hrt-tel-no a:hover { color: var(--hrt-bengara); }
.hrt .hrt-tel-note { margin: 10px 0 0; font-size: 13px; letter-spacing: .08em; color: var(--hrt-sub); }
.hrt .hrt-req-mark {
	display: inline-block; margin: 0 .3em; padding: .15em .6em;
	font-size: 11px; letter-spacing: .1em; color: #fff;
	background: var(--hrt-bengara);
}
.hrt .hrt-privacy-note { margin-top: 40px; font-size: 13px; line-height: 2; color: var(--hrt-sub); }
.hrt .hrt-privacy-note a { color: var(--hrt-sumi); text-decoration: underline; text-underline-offset: 4px; }
.hrt .hrt-privacy-note a:hover { color: var(--hrt-bengara); }

/* --- atw2: 一覧ページ(ブログ / お客様の声)のヘッダー --- */
.atw2 .atw2-arc-head { padding: 64px 0 34px; }
.atw2 .atw2-arc-head .atw2-title { font-size: clamp(28px, 4vw, 42px); letter-spacing: .04em; }
.atw2 .atw2-arc-photo { margin: 0; }
.atw2 .atw2-arc-photo img {
	width: min(1080px, calc(100% - 48px)); margin: 0 auto;
	aspect-ratio: 21 / 8; object-fit: cover; border-radius: 28px;
}
.atw2 .atw2-arc-body { padding: 56px 0 96px; }

/* --- atw2: お客様の声 --- */
.atw2 .atw2-voice { padding: 64px 0 0; }
.atw2 .atw2-voice + .atw2-voice { padding-top: 72px; }
.atw2 .atw2-voice-no {
	font-family: "Outfit", sans-serif; font-weight: 800; font-size: 13px;
	letter-spacing: .26em; color: var(--atw2-ac, var(--atw2-red)); margin: 0 0 6px;
}
.atw2 .atw2-voices > .atw2-voice:last-child { padding-bottom: 96px; }

@media (max-width: 760px) {
	.hrt .hrt-list-section { padding: 56px 0 72px; }
	.hrt .hrt-tel { margin-bottom: 48px; padding: 24px 18px; }
	.atw2 .atw2-arc-head { padding: 48px 0 26px; }
	.atw2 .atw2-arc-photo img { width: calc(100% - 32px); aspect-ratio: 16 / 9; border-radius: 20px; }
	.atw2 .atw2-arc-body { padding: 44px 0 72px; }
	.atw2 .atw2-voice { padding-top: 48px; }
}

/* --- hrt: お知らせ一覧(SWELL post-list -type-simple の再スタイル) --- */
.hrt .p-postListWrap { margin: 0; }
.hrt .p-postList.-type-simple { border-top: 1px solid var(--hrt-hairline); }
.hrt .p-postList.-type-simple .p-postList__link {
	padding: 22px 6px;
	border-bottom: 1px solid var(--hrt-hairline);
	transition: background .25s ease;
}
.hrt .p-postList.-type-simple .p-postList__link:hover { background: var(--hrt-kinari); }
.hrt .p-postList__title {
	font-family: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
	font-weight: 600; font-size: 16px; letter-spacing: .06em; line-height: 1.9;
	color: var(--hrt-sumi); margin: 6px 0 0;
}
.hrt .c-postTimes, .hrt .c-postTimes__posted {
	font-family: "Outfit", sans-serif; font-size: 11.5px; letter-spacing: .14em;
	color: var(--hrt-sub);
}

/* --- hrt: お問い合わせフォーム(Contact Form 7 の再スタイル) --- */
.hrt .wpcf7 { margin-top: 32px; }
.hrt .wpcf7-form > p { margin: 0 0 26px; line-height: 1.9; }
.hrt .wpcf7-form label { display: block; font-size: 14px; letter-spacing: .08em; color: var(--hrt-sumi); }
.hrt .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.hrt .wpcf7-form br { display: none; }
.hrt .wpcf7-form span.required { font-size: 14px; letter-spacing: .08em; }
.hrt .wpcf7-form span.required::after,
.hrt .hrt-req-mark {
	background: var(--hrt-bengara); color: #fff; border-radius: 0;
	font-size: 11px; letter-spacing: .12em; padding: .25em .7em; margin-left: .5em;
}
.hrt .wpcf7-form input.wpcf7-text,
.hrt .wpcf7-form input.wpcf7-email,
.hrt .wpcf7-form input.wpcf7-tel,
.hrt .wpcf7-form textarea.wpcf7-textarea {
	width: 100%;
	background: var(--hrt-paper);
	border: 1px solid var(--hrt-hairline);
	border-radius: 0;
	padding: 13px 14px;
	font-size: 16px; line-height: 1.8; color: var(--hrt-sumi);
	transition: border-color .2s ease;
}
.hrt .wpcf7-form textarea.wpcf7-textarea { height: auto; min-height: 220px; }
.hrt .wpcf7-form input:focus, .hrt .wpcf7-form textarea:focus {
	border-color: var(--hrt-sumi); outline: 1px solid var(--hrt-sumi); outline-offset: -2px;
}
.hrt .wpcf7-form input.wpcf7-submit {
	display: block; width: min(320px, 100%); margin: 44px auto 0;
	background: var(--hrt-sumi); color: #fff; border: 1px solid var(--hrt-sumi); border-radius: 0;
	font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; font-weight: 600;
	font-size: 16px; letter-spacing: .24em; padding: 16px 24px;
	cursor: pointer; transition: background .25s ease, color .25s ease;
}
.hrt .wpcf7-form input.wpcf7-submit:hover { background: var(--hrt-paper); color: var(--hrt-sumi); }
.hrt .wpcf7-response-output {
	border: 1px solid var(--hrt-hairline); border-radius: 0;
	margin: 28px 0 0; padding: 14px 18px; font-size: 14px; color: var(--hrt-sumi);
}
.hrt .wpcf7-not-valid-tip { color: var(--hrt-bengara); font-size: 13px; margin-top: 6px; }
.hrt .wpcf7 form.invalid .wpcf7-response-output,
.hrt .wpcf7 form.unaccepted .wpcf7-response-output { border-color: var(--hrt-bengara); }

/* --- atw2: ブログ一覧(タブ + post-list -type-list の再スタイル) --- */
.atw2 .c-tabList { gap: 10px; flex-wrap: wrap; }
.atw2 .c-tabList__item { margin-bottom: 22px; }
/* SWELL の .is-style-balloon 側と同じ詳細度に揃えて上書きする */
.atw2 .is-style-balloon > .c-tabList .c-tabList__button {
	background: #fff; color: var(--atw2-ink);
	border: 2px solid var(--atw2-ink); border-radius: 999px;
	font-weight: 700; font-size: 14px; letter-spacing: .04em; padding: 10px 22px;
	height: auto; box-shadow: none; transition: background .2s ease, color .2s ease;
}
.atw2 .is-style-balloon > .c-tabList .c-tabList__button::before { content: none; }
.atw2 .is-style-balloon > .c-tabList .c-tabList__button:hover,
.atw2 .is-style-balloon > .c-tabList .c-tabList__button[aria-selected="true"] {
	background-color: var(--atw2-red); border-color: var(--atw2-red); color: #fff;
}
.atw2 .p-postList.-type-list .p-postList__item { margin-bottom: 22px; }
.atw2 .p-postList.-type-list .p-postList__link {
	gap: 20px; align-items: center;
	background: #fff; border: 2px solid var(--atw2-ink); border-radius: 22px;
	padding: 14px; transition: transform .18s ease, box-shadow .18s ease;
}
.atw2 .p-postList.-type-list .p-postList__link:hover {
	transform: translateY(-2px); box-shadow: 0 10px 20px rgba(34,48,79,.14);
}
.atw2 .p-postList__thumb { border-radius: 16px; }
.atw2 .c-postThumb__cat {
	background: var(--atw2-red); border-radius: 999px;
	font-weight: 700; font-size: 11px; letter-spacing: .04em;
}
.atw2 .p-postList__title {
	font-weight: 900; font-size: 16px; line-height: 1.7; color: var(--atw2-ink);
}
.atw2 .p-postList__excerpt { color: var(--atw2-sub); font-size: 13.5px; line-height: 1.9; }
.atw2 .c-postTimes, .atw2 .c-postTimes__posted {
	font-family: "Outfit", sans-serif; font-size: 12px; letter-spacing: .1em; color: var(--atw2-sub);
}
.atw2 .is-style-more_btn { margin-top: 8px; }
.atw2 .is-style-more_btn > a.btn_text {
	background: #fff; color: var(--atw2-ink); border: 2px solid var(--atw2-ink);
	border-radius: 999px; font-weight: 700; font-size: 15px; padding: 13px 40px;
	transition: transform .18s ease;
}
.atw2 .is-style-more_btn > a.btn_text:hover { transform: translateY(-2px); }
.atw2 .is-style-more_btn > a.btn_text::after { border-color: var(--atw2-red); }

/* --- atw2: お客様の声(site-reviews の再スタイル) --- */
.atw2 .glsr-reviews { gap: 20px; }
.atw2 .glsr-review {
	display: block;
	background: #fff; border: 2px solid var(--atw2-ink); border-radius: 22px;
	padding: 22px 24px;
}
.atw2 .glsr-review-date {
	font-family: "Outfit", sans-serif; font-size: 12.5px; letter-spacing: .14em;
	color: var(--atw2-sub); margin: 0 0 10px;
}
.atw2 .glsr-review-content { font-size: 15px; line-height: 1.95; }
.atw2 .glsr-pagination { margin-top: 24px; }
.atw2 .glsr-button-loadmore {
	background: var(--atw2-ac, var(--atw2-red)); color: #fff;
	border: none; border-radius: 999px;
	font-weight: 700; font-size: 15px; letter-spacing: .08em; padding: 13px 40px;
}
.atw2 .glsr-button-loadmore:hover { filter: brightness(1.08); }

@media (min-width: 900px) {
	.atw2 .glsr-reviews { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
	.atw2 .p-postList.-type-list .p-postList__link { flex-direction: column; align-items: stretch; }
	.atw2 .p-postList.-type-list .p-postList__thumb { width: 100%; }
	.hrt .wpcf7-form input.wpcf7-submit { margin-top: 32px; }
}

/* --- hrt: 規約系ドキュメント(プライバシーポリシー) --- */
.hrt.hrt-doc .hrt-head { padding-bottom: 0; }
.hrt .hrt-doc-body { padding: 64px 0 96px; }
.hrt .hrt-doc-body .hrt-h2 {
	font-size: clamp(17px, 2.2vw, 20px); letter-spacing: .12em;
	margin: 56px 0 18px; padding-bottom: 10px;
	border-bottom: 1px solid var(--hrt-hairline);
}
.hrt .hrt-doc-body > .wp-block-group__inner-container > .wp-block-heading:first-child { margin-top: 0; }
.hrt .hrt-doc-body p { font-size: 15px; line-height: 2.1; }
.hrt .hrt-doc-body ul { margin: 0 0 1.6em; padding-left: 1.4em; }
.hrt .hrt-doc-body li { font-size: 15px; line-height: 2.1; margin: 0 0 .4em; }
.hrt .hrt-doc-date { margin-top: 56px; font-size: 13px; letter-spacing: .1em; color: var(--hrt-sub); text-align: right; }

/* お問い合わせページの下端に余白を確保する */
.hrt.hrt-form .hrt-section { padding-bottom: 96px; }
/* お客様の声: 「もっと見る」を中央に */
.atw2 .glsr-pagination .wp-block-buttons { justify-content: center; }
.hrt .hrt-doc-body h3 { font-size: 16px; letter-spacing: .1em; margin: 34px 0 12px; }
