@charset "utf-8";
/* ITOOSOFT（oakcorp.net/itoo/）共通スタイル — itoosoft.com のデザインを踏襲 */

:root {
	--c-text: #111;
	--c-sub: #555;
	--c-bg: #fdfdfd;
	--c-gray: #f2f2f2;
	--c-line: #e2e2e2;
	--c-dark: #111;
	--c-accent: #26bbff;
	--c-accent-hover: #0aa6ee;
	--c-product: #e67300; /* ページごとに上書き（ForestPack: オレンジ） */
	--radius: 10px;
	--radius-lg: 16px;
	--wrap: 1320px; /* 1200px から 10% 拡張（2026-10-26 指定） */
	--font: "Inter", "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	--font-head: "Inter Tight", "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}
.p-railclone { --c-product: #1781ff; }
.p-3dgarden { --c-product: #70a300; }
.p-parametric { --c-product: #7a55ff; }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 150px; }
body {
	margin: 0;
	background: var(--c-bg);
	color: var(--c-text);
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.75;
	-webkit-text-size-adjust: 100%;
}
img { max-width: 100%; height: auto; vertical-align: middle; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--font-head); line-height: 1.35; margin: 0; word-break: auto-phrase; text-wrap: balance; }
p { margin: 0; }

.l-wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.l-section { padding: 96px 0 0; }
.l-section:last-of-type { padding-bottom: 96px; }

/* ===== ボタン ===== */
.c-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 10px 20px; border-radius: var(--radius); border: 1px solid transparent;
	background: var(--c-accent); color: #fdfdfd;
	font-size: 15px; font-weight: 600; line-height: 1.4; text-decoration: none;
	transition: background .2s, color .2s, border-color .2s;
	cursor: pointer;
}
.c-btn:hover { background: var(--c-accent-hover); }
.c-btn--outline { background: transparent; border-color: currentColor; color: #fdfdfd; }
.c-btn--outline:hover { background: rgba(255,255,255,.12); }
.c-btn--dark { background: var(--c-dark); }
.c-btn--dark:hover { background: #333; }
.c-btn--line { background: transparent; border-color: var(--c-text); color: var(--c-text); }
.c-btn--line:hover { background: var(--c-text); color: #fdfdfd; }
.c-btn--sm { padding: 8px 14px; font-size: 14px; }
.c-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.c-ext::after { content: "↗"; font-size: .85em; margin-left: 2px; opacity: .7; }

/* ===== ヘッダー ===== */
.c-header {
	position: sticky; top: 12px; z-index: 100;
	max-width: var(--wrap); margin: 12px auto 0; padding: 0 16px;
}
.c-header__bar {
	display: flex; align-items: center; gap: 24px;
	padding: 12px 20px; background: var(--c-bg); border-radius: var(--radius);
	box-shadow: 0 2px 12px rgba(0,0,0,.08);
}
.c-header__logos { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.c-header__logos a { display: block; line-height: 0; }
.c-header__oak img { height: 32px; width: auto; }
.c-header__itoo img { height: 18px; width: auto; }
.c-header__sep { width: 1px; height: 26px; background: var(--c-line); }
.c-nav { flex: 1; }
.c-nav > ul { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.c-nav > ul > li { position: relative; }
.c-nav__top {
	display: block; padding: 6px 12px; border-radius: 8px;
	font-size: 15px; font-weight: 600; text-decoration: none; white-space: nowrap;
	background: none; border: 0; color: var(--c-text); font-family: inherit; cursor: pointer;
}
.c-nav__top:hover, .c-nav li:focus-within > .c-nav__top { background: var(--c-gray); }
.c-nav__drop {
	position: absolute; top: 100%; left: 0; min-width: 220px; padding: 12px;
	background: var(--c-bg); border-radius: var(--radius); box-shadow: 0 8px 28px rgba(0,0,0,.14);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: .15s;
}
.c-nav li:hover > .c-nav__drop, .c-nav li:focus-within > .c-nav__drop { opacity: 1; visibility: visible; transform: none; }
.c-nav__drop ul { margin: 0; padding: 0; list-style: none; }
.c-nav__drop a { display: block; padding: 7px 10px; border-radius: 6px; font-size: 14px; text-decoration: none; white-space: nowrap; }
.c-nav__drop a:hover { background: var(--c-gray); }
.c-nav__drop--products { display: flex; gap: 24px; min-width: 520px; }
.c-nav__products a { padding: 10px; }
.c-nav__products img { height: 30px; width: auto; }
.c-nav__label { display: block; padding: 4px 10px 6px; font-size: 12px; color: var(--c-sub); }
.c-header__buy { flex-shrink: 0; }
.c-header__menu {
	display: none; margin-left: auto; padding: 6px; background: none; border: 0; cursor: pointer;
}
.c-header__menu span { display: block; width: 22px; height: 2px; margin: 5px 0; background: var(--c-text); transition: .2s; }

/* ===== サブナビ（製品ページ内） ===== */
.c-subnav {
	position: sticky; top: 84px; z-index: 90;
	max-width: var(--wrap); margin: 16px auto 0; padding: 0 16px;
}
.c-subnav__bar {
	display: flex; align-items: center; gap: 8px;
	padding: 10px 12px 10px 18px; background: var(--c-dark); color: #fdfdfd; border-radius: var(--radius);
}
.c-subnav__logo { flex-shrink: 0; line-height: 0; margin-right: 8px; }
.c-subnav__logo img { height: 26px; width: auto; }
.c-subnav__links { display: flex; gap: 2px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; flex: 1; }
.c-subnav__links::-webkit-scrollbar { display: none; }
.c-subnav__links a {
	display: block; padding: 6px 12px; border-radius: 8px;
	font-size: 14px; font-weight: 600; color: #bbb; text-decoration: none; white-space: nowrap;
}
.c-subnav__links a:hover, .c-subnav__links a.is-current { color: #fdfdfd; background: rgba(255,255,255,.1); }
.c-subnav .c-btn { flex-shrink: 0; }

/* ===== ヒーロー ===== */
.c-hero {
	position: relative; margin-top: -82px; padding: 160px 24px 72px;
	background: linear-gradient(rgba(0,0,0,.4), rgba(0,0,0,.8)), var(--hero) center / cover no-repeat;
	color: #fdfdfd; text-align: center;
}
.c-hero__logo { height: 48px; width: auto; margin-bottom: 28px; }
.c-hero h1 { max-width: 820px; margin: 0 auto 20px; font-size: 48px; font-weight: 700; }
.c-hero__lead { max-width: 760px; margin: 0 auto 36px; font-size: 18px; }
.c-hero .c-btns { justify-content: center; }
.c-breadcrumb { display: flex; justify-content: center; gap: 8px; margin: 64px 0 0; padding: 0; list-style: none; font-size: 13px; }
.c-breadcrumb li + li::before { content: "›"; margin-right: 8px; opacity: .7; }
.c-breadcrumb a { text-decoration: underline; }

/* ===== 画像のクレジット ===== */
.c-figure { position: relative; margin: 0; overflow: hidden; border-radius: var(--radius-lg); line-height: 0; }
.c-figure img { width: 100%; }
.c-credit {
	position: absolute; right: 12px; bottom: 10px;
	font-size: 12px; line-height: 1.4; color: #fdfdfd; text-shadow: 0 1px 3px rgba(0,0,0,.8);
}
.c-hero .c-credit { right: 24px; }
.c-play {
	position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px;
	border: 0; border-radius: 50%; background: rgba(17,17,17,.75); cursor: pointer; transition: transform .15s, background .15s;
}
.c-play::before {
	content: ""; position: absolute; left: 26px; top: 20px;
	border-style: solid; border-width: 12px 0 12px 19px; border-color: transparent transparent transparent #fdfdfd;
}
.c-play:hover { transform: scale(1.08); background: var(--c-accent); }

/* ===== セクション見出し ===== */
.c-title { text-align: center; margin-bottom: 48px; }
.c-title h1, .c-title h2 { font-size: 36px; font-weight: 700; margin-bottom: 10px; }
.c-title p { max-width: 860px; margin: 0 auto; font-size: 18px; color: var(--c-sub); }

/* ===== 概要 ===== */
.c-overview { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.c-overview h2 { font-size: 36px; margin-bottom: 18px; }
.c-overview h3 { font-size: 18px; font-weight: 600; line-height: 1.75; margin-bottom: 16px; text-wrap: pretty; }

/* ===== バージョン（料金カード） ===== */
.c-plans { display: grid; grid-template-columns: 1fr 1.5fr; gap: 24px; align-items: start; }
.c-plan { padding: 32px; border-radius: var(--radius-lg); background: var(--c-gray); }
.c-plan--pro { background: var(--c-dark); color: #fdfdfd; }
.c-plan__head { display: flex; align-items: center; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid rgba(128,128,128,.3); }
.c-plan__head img { width: 52px; height: 52px; }
.c-plan__kind { font-size: 14px; }
.c-plan__price { font-family: var(--font-head); font-size: 28px; font-weight: 700; line-height: 1.3; }
.c-plan__price small { font-size: 15px; font-weight: 600; margin-left: 6px; }
.c-plan__badge {
	margin-left: auto; align-self: flex-start; padding: 2px 8px; border-radius: 4px;
	font-size: 12px; font-weight: 700; letter-spacing: .05em; background: #d5d5d5; color: #333;
}
.c-plan--pro .c-plan__badge { background: #555; color: #eee; }
.c-plan h4 { font-size: 15px; margin: 24px 0 12px; }
.c-checks { margin: 0 0 28px; padding: 0; list-style: none; }
.c-checks li { position: relative; padding-left: 28px; margin-bottom: 12px; font-size: 15px; }
.c-checks li::before {
	content: ""; position: absolute; left: 4px; top: .45em; width: 12px; height: 7px;
	border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg);
}
.c-plan a:not(.c-btn) { text-decoration: underline; }
.c-plans__note { margin-top: 20px; text-align: center; font-size: 14px; color: var(--c-sub); }
.c-plans__note a { text-decoration: underline; }
.c-plans__note p + p { margin-top: 4px; }

/* ===== 機能タブ ===== */
.c-tabs { display: flex; gap: 0; margin: 0 0 32px; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--c-line); }
.c-tabs::-webkit-scrollbar { display: none; }
.c-tabs button {
	padding: 14px 22px; border: 0; border-bottom: 3px solid transparent; background: none;
	font-family: inherit; font-size: 15px; font-weight: 600; color: var(--c-sub); white-space: nowrap; cursor: pointer;
}
.c-tabs button:hover { color: var(--c-text); }
.c-tabs button[aria-selected="true"] { color: var(--c-text); border-bottom-color: var(--c-product); }
.c-tabpanel[hidden] { display: none; }
.c-feature-main { margin-bottom: 40px; }
.c-feature-main .c-figure { margin-bottom: 24px; }
.c-feature-main h3 { font-size: 24px; text-align: center; margin-bottom: 10px; }
.c-feature-main h3 a { text-decoration: none; }
.c-feature-main h3 a:hover { text-decoration: underline; }
.c-feature-main p { max-width: 860px; margin: 0 auto; text-align: center; }
.c-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 28px; }
.c-card .c-figure { border-radius: var(--radius); margin-bottom: 16px; aspect-ratio: 600 / 380; }
.c-card .c-figure img { height: 100%; object-fit: cover; }
.c-card h4 { font-size: 18px; margin-bottom: 8px; }
.c-card h4 a { text-decoration: none; }
.c-card h4 a:hover { text-decoration: underline; }
.c-card p { font-size: 15px; color: #333; }
.c-card__en { display: block; font-family: var(--font); font-size: 12px; font-weight: 400; color: var(--c-sub); margin-top: 2px; }

/* ===== 新機能・ForestIvy ===== */
.c-banner {
	position: relative; padding: 64px; border-radius: var(--radius-lg); overflow: hidden;
	background: linear-gradient(90deg, rgba(0,0,0,.75), rgba(0,0,0,.15)), var(--bg) center / cover no-repeat;
	color: #fdfdfd;
}
.c-banner__body { max-width: 560px; }
.c-banner h3 { font-size: 30px; margin-bottom: 16px; }
.c-banner p { margin-bottom: 28px; }
.c-whatsnew { text-align: center; margin-bottom: 40px; }

/* ===== 対応環境 ===== */
.c-logos { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px; margin: 0 0 36px; padding: 0; list-style: none; }
.c-logos li { text-align: center; font-size: 12px; color: var(--c-sub); }
.c-logos img { display: block; width: 56px; height: 56px; margin: 0 auto 8px; border-radius: 8px; }
.c-center { text-align: center; }

/* ===== 無料ライブラリー ===== */
.c-library {
	position: relative; padding: 96px 24px; text-align: center; color: #fdfdfd;
	background: linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)), var(--bg) center / cover no-repeat;
}
.c-library h2 { font-size: 36px; margin-bottom: 12px; }
.c-library p { max-width: 760px; margin: 0 auto 32px; font-size: 18px; }
.c-library .c-credit { right: 24px; }
.c-thumbs { display: grid; grid-template-columns: repeat(7, 1fr); gap: 12px; margin-top: 24px; }
.c-thumbs img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; }

/* ===== ギャラリー ===== */
.c-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.c-gallery a { position: relative; display: block; overflow: hidden; border-radius: var(--radius); line-height: 0; text-decoration: none; }
.c-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s; }
.c-gallery a:hover img { transform: scale(1.04); }
.c-gallery span {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 32px 16px 14px;
	background: linear-gradient(transparent, rgba(0,0,0,.75)); color: #fdfdfd; line-height: 1.5;
}
.c-gallery b { display: block; font-size: 15px; }
.c-gallery small { font-size: 13px; opacity: .85; }

/* ===== リンクカード（事例・ユーザーの声・チュートリアル） ===== */
.c-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.c-linkcard { display: flex; flex-direction: column; padding: 32px; border-radius: var(--radius-lg); background: var(--c-gray); }
.c-linkcard h2 { font-size: 22px; margin-bottom: 4px; }
.c-linkcard__en { font-size: 13px; color: var(--c-sub); margin-bottom: 14px; }
.c-linkcard p { font-size: 15px; margin-bottom: 24px; flex: 1; }
.c-linkcard p a { text-decoration: underline; }
.c-linkcard .c-btn { align-self: flex-start; }

/* ===== 購入 ===== */
.c-bundle { margin-top: 24px; }
.c-bundle .c-plan__price { font-size: 24px; }
.c-renew { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 24px; padding: 24px 32px; border: 1px solid var(--c-line); border-radius: var(--radius-lg); }
.c-renew h3 { font-size: 18px; margin-right: auto; }

/* ===== 3DGarden バナー ===== */
.c-other { text-align: center; padding: 80px 32px; }
.c-other .c-banner__body { max-width: 640px; margin: 0 auto; }
.c-other img.c-other__logo { height: 40px; width: auto; margin-bottom: 20px; }
.c-other p { font-size: 22px; font-family: var(--font-head); line-height: 1.6; }

/* ===== トップ: 製品カード ===== */
.c-products { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.c-product { display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; background: var(--c-gray); }
.c-product .c-figure { border-radius: 0; aspect-ratio: 650 / 362; }
.c-product .c-figure img { height: 100%; object-fit: cover; }
.c-product__body { display: flex; flex-direction: column; flex: 1; padding: 28px 32px 32px; }
.c-product__logo { height: 34px; width: auto; align-self: flex-start; margin-bottom: 20px; }
.c-product h3 { font-size: 22px; margin-bottom: 12px; }
.c-product p { font-size: 15px; color: #333; margin-bottom: 28px; flex: 1; }
.c-product .c-btns > * { flex: 1; }
.c-product .c-plan__kind { font-size: 13px; color: var(--c-sub); margin-bottom: 4px; }
.c-products--3 { grid-template-columns: repeat(3, 1fr); }
.c-products--3 .c-btns > * { flex-basis: 100%; }
.c-products--single { grid-template-columns: minmax(0, 560px); justify-content: center; }
.c-cards--2 { grid-template-columns: repeat(2, 1fr); }
.c-howvideo { margin-top: 48px; aspect-ratio: 1200 / 500; }
.c-howvideo img { height: 100%; object-fit: cover; }

/* ===== 3DGarden: コレクションの紹介ブロック（画像スライダー＋説明） ===== */
.c-collection { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.c-collection + .c-collection { margin-top: 72px; padding-top: 72px; border-top: 1px solid var(--c-line); }
.c-slider { min-width: 0; }
.c-slider__track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.c-slider__track::-webkit-scrollbar { display: none; }
.c-slider__item { position: relative; flex: 0 0 72%; margin: 0; overflow: hidden; border-radius: var(--radius-lg); line-height: 0; scroll-snap-align: start; }
.c-slider__item img { width: 100%; aspect-ratio: 720 / 650; object-fit: cover; }
.c-slider__dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 16px; }
.c-slider__dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: #c8c8c8; cursor: pointer; }
.c-slider__dots button.is-active { background: var(--c-dark); }
.c-slider__nav { display: flex; justify-content: center; gap: 16px; margin-top: 16px; }
.c-slider__nav button {
	width: 44px; height: 44px; border: 0; border-radius: var(--radius); background: var(--c-dark); color: #fdfdfd;
	font-size: 20px; line-height: 44px; cursor: pointer;
}
.c-slider__nav button:hover { background: #333; }
.c-collection__kind { font-size: 13px; color: var(--c-sub); margin-bottom: 4px; }
.c-collection h3 { font-size: 34px; margin-bottom: 20px; }
.c-collection__lead { font-size: 17px; font-weight: 600; line-height: 1.75; margin-bottom: 16px; }
.c-tri { margin: 8px 0 24px; padding: 0; list-style: none; }
.c-tri li { position: relative; padding-left: 40px; margin-bottom: 10px; }
.c-tri li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 24px; height: 24px;
	background: var(--c-product); clip-path: polygon(100% 0, 100% 100%, 0 100%);
}
.c-tri a, .c-collection__links a { text-decoration: underline; }
.c-collection__price { font-size: 14px; color: var(--c-sub); margin-bottom: 12px; }
.c-collection__links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 20px; font-size: 14px; }

/* ===== 3DGarden: バンドル（全部入りセット）を強調する帯 ===== */
.c-bundlesec {
	margin-top: 96px; padding: 80px 0 88px; color: #fdfdfd;
	background:
		radial-gradient(circle at 85% 15%, rgba(112,163,0,.35), transparent 45%),
		linear-gradient(135deg, #0d1708 0%, #18260f 60%, #101a0a 100%);
}
.c-bundlesec .c-title p { color: #c9d6b8; }
/* ParametricLibrary ページでは紫系の帯にする */
.p-parametric .c-bundlesec {
	background:
		radial-gradient(circle at 85% 15%, rgba(122,85,255,.38), transparent 45%),
		linear-gradient(135deg, #0f0b1c 0%, #1b1530 60%, #110d1f 100%);
}
.p-parametric .c-bundlesec .c-title p,
.p-parametric .c-collection--bundle .c-collection__kind,
.p-parametric .c-collection--bundle .c-collection__price,
.p-parametric .c-included__label { color: #cfc6ee; }
.p-parametric .c-collection--bundle .c-slider__dots button { background: #4b4466; }
.p-parametric .c-collection--bundle .c-slider__dots button.is-active { background: #fdfdfd; }
.p-parametric .c-collection--bundle .c-slider__nav button:hover { background: #e4def8; }
.p-parametric .c-deal { background: rgba(122,85,255,.2); }
.c-badge {
	display: inline-block; margin-bottom: 12px; padding: 4px 12px; border-radius: 999px;
	background: var(--c-product); color: #fdfdfd; font-size: 13px; font-weight: 700; letter-spacing: .04em;
}
.c-collection--bundle .c-collection__kind, .c-collection--bundle .c-collection__price { color: #c9d6b8; }
.c-collection--bundle .c-slider__dots button { background: #4a5a3c; }
.c-collection--bundle .c-slider__dots button.is-active { background: #fdfdfd; }
.c-collection--bundle .c-slider__nav button { background: #fdfdfd; color: var(--c-dark); }
.c-collection--bundle .c-slider__nav button:hover { background: #dfe8d2; }
.c-collection--bundle .c-btn--line { border-color: #fdfdfd; color: #fdfdfd; }
.c-collection--bundle .c-btn--line:hover { background: #fdfdfd; color: var(--c-dark); }
.c-included { margin: 8px 0 20px; padding: 16px 18px; border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius); background: rgba(255,255,255,.05); }
.c-included__label { margin-bottom: 10px; font-size: 13px; font-weight: 700; color: #c9d6b8; }
.c-included ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 16px; margin: 0; padding: 0; list-style: none; }
.c-included li { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.c-included img { width: 22px; height: 22px; border-radius: 4px; }
.c-deal { margin: 0 0 16px; padding: 16px 18px; border-left: 4px solid var(--c-product); border-radius: 0 var(--radius) var(--radius) 0; background: rgba(112,163,0,.18); }
.c-deal__title { font-family: var(--font-head); font-size: 20px; font-weight: 700; margin-bottom: 4px; }
.c-deal p:not(.c-deal__title) { font-size: 15px; }

/* ===== Lite と Pro の比較・動作環境（techspec）ページ ===== */
.c-pagehead { margin-top: -82px; padding: 140px 0 48px; background: var(--c-gray); border-bottom: 4px solid var(--c-product); }
.c-pagehead .c-breadcrumb { justify-content: flex-start; margin: 0 0 28px; color: var(--c-sub); }
.c-pagehead__logo { height: 36px; width: auto; margin-bottom: 16px; }
.c-pagehead h1 { font-size: 36px; margin-bottom: 10px; }
.c-pagehead__lead { color: var(--c-sub); font-size: 17px; }
.c-pagehead__nav { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 0; padding: 0; list-style: none; }
.c-pagehead__nav a {
	display: inline-block; padding: 8px 16px; border: 1px solid var(--c-line); border-radius: 999px; background: #fff;
	font-size: 14px; font-weight: 600; text-decoration: none;
}
.c-pagehead__nav a:hover { border-color: var(--c-product); }
.c-doc { padding-top: 24px; }
.c-doc__sec { padding-top: 64px; }
.c-doc h2 { font-size: 30px; padding-bottom: 12px; margin-bottom: 24px; border-bottom: 1px solid var(--c-line); }
.c-doc h3 { font-size: 20px; margin: 36px 0 12px; padding-left: 12px; border-left: 4px solid var(--c-product); }
.c-doc p { margin-bottom: 14px; }
.c-doc ul { margin: 0 0 16px; padding-left: 2.5em; }
.c-doc li { margin-bottom: 4px; }
.c-doc a { text-decoration: underline; }
.c-note { margin: 16px 0 20px; padding: 14px 18px; border-left: 4px solid #e0a100; border-radius: 0 var(--radius) var(--radius) 0; background: #fff8e5; font-size: 15px; }
.c-note p { margin: 0; }
.c-note .c-note__title { margin-bottom: 4px; font-weight: 700; }
.c-tablewrap { overflow-x: auto; margin: 8px 0 24px; border: 1px solid var(--c-line); border-radius: var(--radius); }
.c-tablewrap--narrow { max-width: 880px; }
.c-tablewrap--narrow .c-mark, .c-tablewrap--narrow thead th:not(:first-child), .c-tablewrap--narrow .is-group th:not(:first-child) { width: 110px; }
.c-spec { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; }
.c-spec th, .c-spec td { padding: 9px 14px; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: middle; }
.c-spec thead th { position: sticky; top: 0; background: var(--c-dark); color: #fdfdfd; font-weight: 700; white-space: nowrap; }
.c-spec thead th:not(:first-child), .c-spec .is-group th:not(:first-child) { text-align: center; }
.c-spec tbody th { font-weight: 400; min-width: 220px; }
.c-spec tbody tr:hover { background: #f7f7f7; }
.c-spec .is-group th { background: var(--c-gray); font-weight: 700; }
.c-spec tr:last-child th, .c-spec tr:last-child td { border-bottom: 0; }
.c-mark { text-align: center; font-size: 16px; font-weight: 700; white-space: nowrap; }
.c-mark--yes { color: #2e8b3d; }
.c-mark--no { color: #b0b0b0; }
.c-mark--part { color: #d48a00; }
.c-mark--none { color: #c8c8c8; font-weight: 400; }
.c-doc__cta { margin-top: 0; }

/* ===== FAQ ===== */
.c-faq { max-width: 900px; margin: 0 auto; }
.c-faq .c-tabs { justify-content: center; }
.c-faq details { border-bottom: 1px solid var(--c-line); }
.c-faq summary {
	position: relative; padding: 20px 40px 20px 0; font-weight: 600; cursor: pointer; list-style: none;
}
.c-faq summary::-webkit-details-marker { display: none; }
.c-faq summary::after { content: "+"; position: absolute; right: 8px; top: 16px; font-size: 24px; font-weight: 400; transition: transform .2s; }
.c-faq details[open] summary::after { transform: rotate(45deg); }
.c-faq__a { padding: 0 0 24px; color: #333; }
.c-faq__a p + p, .c-faq__a p + ul, .c-faq__a ul + p { margin-top: 10px; }
.c-faq__a ul { margin: 0; padding-left: 2.5em; }
.c-faq__a a { text-decoration: underline; }

/* ===== フッター ===== */
.c-footer { padding: 48px 0 32px; background: #fff; border-top: 1px solid var(--c-line); color: var(--c-sub); font-size: 14px; }
.c-footer__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 28px; border-bottom: 1px solid var(--c-line); }
.c-footer__logos { display: flex; align-items: center; gap: 16px; }
.c-footer__logos a { display: block; line-height: 0; }
.c-footer__logos img { height: 40px; width: auto; }
.c-footer ul { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.c-footer a { color: var(--c-text); text-decoration: none; }
.c-footer a:hover { text-decoration: underline; }
.c-footer__copy { padding-top: 24px; font-size: 12px; color: #888; }

/* ===== 動画モーダル ===== */
.c-modal { width: min(960px, 92vw); padding: 0; border: 0; border-radius: var(--radius); background: #000; overflow: visible; }
.c-modal::backdrop { background: rgba(0,0,0,.8); }
.c-modal__frame { position: relative; aspect-ratio: 16 / 9; }
.c-modal__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: var(--radius); }
.c-modal__close {
	position: absolute; right: -14px; top: -14px; width: 36px; height: 36px; border: 0; border-radius: 50%;
	background: #fdfdfd; color: #111; font-size: 22px; line-height: 36px; cursor: pointer;
}

/* ===== レスポンシブ ===== */
@media (max-width: 1100px) {
	.c-nav__top { padding: 6px 8px; font-size: 14px; }
	.c-header__bar { gap: 12px; }
}
@media (max-width: 960px) {
	.c-header__menu { display: block; }
	.c-header__buy { display: none; }
	.c-nav {
		display: none; position: absolute; left: 16px; right: 16px; top: calc(100% + 8px);
		max-height: calc(100vh - 120px); overflow-y: auto;
		padding: 12px; background: var(--c-bg); border-radius: var(--radius); box-shadow: 0 8px 28px rgba(0,0,0,.18);
	}
	.c-header.is-open .c-nav { display: block; }
	.c-header.is-open .c-header__menu span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.c-header.is-open .c-header__menu span:nth-child(2) { opacity: 0; }
	.c-header.is-open .c-header__menu span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
	.c-nav > ul { flex-direction: column; }
	.c-nav__drop, .c-nav__drop--products {
		position: static; display: block; min-width: 0; padding: 0 0 8px 12px;
		opacity: 1; visibility: visible; transform: none; box-shadow: none;
	}
	.c-nav__top { pointer-events: none; padding: 10px 8px 4px; color: var(--c-sub); font-size: 13px; }
	.c-nav__top--link { pointer-events: auto; padding: 10px 8px; color: var(--c-text); font-size: 15px; }
	.c-nav__products img { height: 24px; }
	.c-subnav { top: 80px; }
	.c-overview, .c-plans, .c-collection { grid-template-columns: 1fr; }
	.c-collection { gap: 32px; }
	.c-slider__item { flex-basis: 85%; }
	.c-cards, .c-links, .c-products--3 { grid-template-columns: repeat(2, 1fr); }
	.c-thumbs { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 640px) {
	.l-section { padding-top: 64px; }
	.l-wrap { padding: 0 16px; }
	.c-header { padding: 0 8px; }
	.c-header__bar { padding: 10px 14px; }
	.c-header__oak img { height: 26px; }
	.c-header__itoo img { height: 14px; }
	.c-subnav { padding: 0 8px; }
	.c-subnav__logo { display: none; }
	.c-subnav__bar { padding: 8px 8px 8px 10px; }
	.c-hero { padding: 130px 16px 56px; }
	.c-hero h1 { font-size: 30px; }
	.c-hero__lead { font-size: 16px; }
	.c-hero__logo { height: 36px; }
	.c-title h1, .c-title h2, .c-overview h2, .c-library h2 { font-size: 26px; }
	.c-title p, .c-library p { font-size: 16px; }
	.c-plan { padding: 24px 20px; }
	.c-cards, .c-links, .c-gallery, .c-products, .c-products--3, .c-cards--2 { grid-template-columns: 1fr; }
	.c-product__body { padding: 24px 20px; }
	.c-thumbs { grid-template-columns: repeat(4, 1fr); }
	.c-banner { padding: 40px 24px; }
	.c-banner h3 { font-size: 24px; }
	.c-renew { padding: 20px; }
	.c-collection h3 { font-size: 26px; }
	.c-pagehead { margin-top: -78px; padding: 116px 0 36px; }
	.c-pagehead h1 { font-size: 26px; }
	.c-doc h2 { font-size: 24px; }
	.c-spec tbody th { min-width: 180px; }
	.c-bundlesec { margin-top: 64px; padding: 56px 0 64px; }
	.c-included ul { grid-template-columns: 1fr; }
	.c-collection__lead { font-size: 16px; }
}

/* ===== 汎用ページ（page.php / 404.php） ===== */
.c-generic { max-width: 900px; }
.c-generic h1 { font-size: 32px; margin-bottom: 24px; }
.c-generic p { margin-bottom: 16px; }
.c-generic__body img { max-width: 100%; height: auto; }
.c-generic .c-btn { margin-top: 8px; }
