@charset "UTF-8";
/* ==========================================================
   Repubrew：トークン＋ブロック（本文）スタイル
   フロントとブロックエディタの両方で読み込まれます
   ========================================================== */
body {
	--rp-bg: #0b0a09; --rp-bg2: #161412; --rp-bg3: #1b1916;
	--rp-ink: #f3efe7; --rp-ink2: #cfc8bb; --rp-ink3: #a8a093; --rp-ink4: #8f877a;
	--rp-line: #2e2a25; --rp-line2: #3a352e;
	--rp-gold: #c8a75a; --rp-gold-ink: #c8a75a; --rp-gold-line: #5a4c2c; --rp-gold-soft: #5a4c2c;
	--rp-red: #d0202e;
	--rp-serif: "Shippori Mincho B1", serif;
	--rp-sans: "Noto Sans JP", sans-serif;
	--rp-en: Lato, sans-serif;
	--rp-accent: Lato, sans-serif;
	--rp-g: clamp(20px, 6vw, 80px);
	background: var(--rp-bg);
	color: var(--rp-ink);
	font-family: var(--rp-sans);
}

/* 白×ゴールド（結婚式二次会テンプレート） */
.rp-light .rp-page,
.editor-styles-wrapper .rp-is-light {
	--rp-bg: #faf7f1; --rp-bg2: #fff; --rp-bg3: #ece3d3;
	--rp-ink: #2b2620; --rp-ink2: #5b5348; --rp-ink3: #857a6b; --rp-ink4: #968b7a;
	--rp-line: #e6dccb; --rp-line2: #e6dccb;
	--rp-gold-ink: #9c7a3c; --rp-gold-soft: #d9c69c;
	--rp-accent: "Cormorant Garamond", serif;
	background: var(--rp-bg);
	color: var(--rp-ink);
}

/* ---------- 文字パーツ ---------- */
.rp-en { margin: 0; font-family: var(--rp-en); font-weight: 700; font-size: 13px; letter-spacing: .3em; line-height: 1.6; color: var(--rp-gold-ink); }
.rp-light .rp-page .rp-en,
.rp-is-light .rp-en { font-family: "Cormorant Garamond", serif; font-style: italic; font-weight: 500; font-size: clamp(22px, 2.2vw, 28px); letter-spacing: .02em; line-height: 1.2; }
.rp-num { margin: 0; display: flex; align-items: baseline; gap: 14px; font-family: var(--rp-en); font-weight: 700; font-size: 13px; letter-spacing: .3em; color: var(--rp-gold-ink); }
.rp-num strong { font-weight: 900; font-size: 32px; line-height: 1; letter-spacing: 0; }
.rp-ttl, h2.rp-ttl, h3.rp-ttl { margin: 0; font-family: var(--rp-serif); font-weight: 700; font-size: clamp(24px, 3vw, 36px); line-height: 1.5; color: var(--rp-ink); text-wrap: balance; }
.rp-ttl--md, h2.rp-ttl--md { font-size: clamp(24px, 2.8vw, 34px); }
.rp-ttl--sm, h2.rp-ttl--sm { font-size: clamp(22px, 2.4vw, 30px); }
.rp-ttl--lg, h2.rp-ttl--lg { font-size: clamp(24px, 3.2vw, 40px); line-height: 1.6; }
.rp-lead, p.rp-lead { margin: 0; font-size: 15px; line-height: 2; color: var(--rp-ink2); text-wrap: pretty; }
.rp-note, p.rp-note { margin: 0; font-size: 13px; line-height: 1.8; color: var(--rp-ink3); }
.rp-bar, hr.rp-bar, .wp-block-separator.rp-bar { display: block; width: 40px; height: 1px; margin: 0; border: 0; background: var(--rp-gold); opacity: 1; }
/* 白×ゴールド：ひし形付きの区切り線 */
.rp-light .rp-page .rp-bar, .rp-is-light .rp-bar {
	position: relative; width: 102px; height: 8px; background:
		linear-gradient(var(--rp-gold), var(--rp-gold)) left center / 40px 1px no-repeat,
		linear-gradient(var(--rp-gold), var(--rp-gold)) right center / 40px 1px no-repeat;
}
.rp-light .rp-page .rp-bar::after, .rp-is-light .rp-bar::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; border: 1px solid var(--rp-gold); transform: translate(-50%, -50%) rotate(45deg);
}

/* ---------- セクション ---------- */
.rp-sec { max-width: 1360px; margin: 0 auto; padding: clamp(72px, 9vw, 112px) var(--rp-g); display: flex; flex-direction: column; gap: 56px; box-sizing: border-box; }
.rp-sec > * { margin: 0; }
.rp-sec + .rp-sec { padding-top: 0; }
/* SWELL（クラシックテーマ）ではグループ内に inner-container が挟まるため、レイアウトを透過させる */
.rp-content .wp-block-group__inner-container { display: contents; }
.rp-sec--tight { gap: 40px; }
.rp-head { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; margin: 0; }
.rp-head > * { margin: 0; }
.rp-head .rp-bar { margin: 4px auto 8px; }
.rp-head .rp-lead { max-width: 640px; }
.rp-head--intro { gap: 24px; }
.rp-head-split { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid var(--rp-line); margin: 0; }
.rp-head-split > div, .rp-head-split > .wp-block-group { display: flex; flex-direction: column; gap: 10px; }
.rp-head-split > * > * { margin: 0; }
.rp-head-split__note, p.rp-head-split__note { margin: 0; font-size: 14px; color: var(--rp-ink3); }

/* ---------- ボタン（core/button のクラス：rp-btn / rp-btn--red / rp-btn--gold / rp-btn--text） ---------- */
.wp-block-buttons.rp-btns, .rp-btns { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin: 8px 0 0; }
.rp-head .wp-block-buttons { justify-content: center; }
.wp-block-button[class*="rp-btn"] .wp-block-button__link {
	min-height: 56px; padding: 0 32px; display: inline-flex; align-items: center; justify-content: center; gap: 16px;
	border-radius: 0; border: 1px solid var(--rp-ink); background: transparent; color: var(--rp-ink);
	font-family: var(--rp-serif); font-weight: 700; font-size: 16px; line-height: 1.3; text-decoration: none;
}
.wp-block-button.rp-btn .wp-block-button__link::after,
.wp-block-button.rp-btn--red .wp-block-button__link::after { content: "→"; }
.wp-block-button.rp-btn--red .wp-block-button__link { background: var(--rp-red); border-color: var(--rp-red); color: #fff; }
.wp-block-button.rp-btn--gold .wp-block-button__link { min-height: 48px; width: 100%; background: var(--rp-gold); border-color: var(--rp-gold); color: #0b0a09; font-family: var(--rp-sans); font-size: 14px; }
.wp-block-button.rp-btn--text .wp-block-button__link { min-height: 0; padding: 0 0 4px; border: 0; border-bottom: 1px solid var(--rp-gold); font-family: var(--rp-sans); font-weight: 500; font-size: 15px; }
.wp-block-button.rp-btn--gold { width: 100%; }
.wp-block-button[class*="rp-btn"] .wp-block-button__link:hover { opacity: .85; }

/* ---------- 画像＋テキスト（core/media-text に rp-media、背景付きは rp-media--tint） ---------- */
.wp-block-media-text.rp-media { max-width: 1360px; width: calc(100% - 2 * var(--rp-g)); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 0 !important; align-items: stretch; background: transparent; color: inherit; }
.wp-block-media-text.rp-media + .wp-block-media-text.rp-media { margin-top: 4px; }
.wp-block-media-text.rp-media--tint { background: var(--rp-bg2); }
/* ビールのTAP LISTのみ画面端まで背景（カンプ準拠） */
.wp-block-media-text.rp-media--bleed { box-shadow: 0 0 0 100vmax var(--rp-bg2); clip-path: inset(0 -100vmax); }
.rp-light .rp-page .wp-block-media-text.rp-media--tint, .rp-is-light .wp-block-media-text.rp-media--tint { box-shadow: none; clip-path: none; }
.wp-block-media-text.rp-media > .wp-block-media-text__media { margin: 0; align-self: stretch; grid-column: 1; grid-row: 1; }
.wp-block-media-text.rp-media > .wp-block-media-text__media img { width: 100%; height: 100%; min-height: 400px; object-fit: cover; display: block; background: var(--rp-bg3); }
.wp-block-media-text.rp-media > .wp-block-media-text__content { grid-column: 2; grid-row: 1; padding: clamp(48px, 7vw, 96px) clamp(24px, 6vw, 80px); display: flex; flex-direction: column; justify-content: center; gap: 20px; }
.wp-block-media-text.rp-media > .wp-block-media-text__content > * { margin: 0; }
.wp-block-media-text.rp-media.has-media-on-the-right > .wp-block-media-text__media { grid-column: 2; }
.wp-block-media-text.rp-media.has-media-on-the-right > .wp-block-media-text__content { grid-column: 1; }
.rp-light .rp-page .wp-block-media-text.rp-media, .rp-is-light .wp-block-media-text.rp-media { background: var(--rp-bg2); }
@media (max-width: 899px) {
	.wp-block-media-text.rp-media { grid-template-columns: 100% !important; }
	.wp-block-media-text.rp-media > .wp-block-media-text__media,
	.wp-block-media-text.rp-media.has-media-on-the-right > .wp-block-media-text__media { grid-column: 1; grid-row: 1; }
	.wp-block-media-text.rp-media > .wp-block-media-text__content,
	.wp-block-media-text.rp-media.has-media-on-the-right > .wp-block-media-text__content { grid-column: 1; grid-row: 2; }
	.wp-block-media-text.rp-media > .wp-block-media-text__media img { min-height: 0; aspect-ratio: 4 / 3; height: auto; }
}

/* ---------- カード（core/columns に rp-cards、各 column に rp-card） ---------- */
.wp-block-columns.rp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 24px; margin: 0; }
.wp-block-columns.rp-cards--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); }
.wp-block-column.rp-card { background: var(--rp-bg2); display: flex; flex-direction: column; margin: 0; min-width: 0; }
.wp-block-column.rp-card > * { margin: 0; }
.rp-card .wp-block-image { margin: 0; }
.rp-card .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--rp-bg3); }
.rp-card__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; margin: 0; }
.rp-card__body > * { margin: 0; }
.rp-card__tag { font-size: 12px; font-weight: 700; color: var(--rp-gold-ink); }
.rp-card__ttl, h3.rp-card__ttl { font-family: var(--rp-serif); font-weight: 700; font-size: 22px; line-height: 1.5; color: var(--rp-ink); }
.rp-card__desc { font-size: 13px; line-height: 1.7; color: var(--rp-ink3); }
.rp-price, p.rp-price { margin: auto 0 0; font-family: var(--rp-en); font-weight: 700; font-size: 28px; line-height: 1.3; color: var(--rp-ink); }
.rp-price small, .rp-price sub { vertical-align: baseline; margin-left: 4px; font-family: var(--rp-sans); font-weight: 500; font-size: 12px; }

/* ---------- 表（core/table に rp-table） ---------- */
.wp-block-table.rp-table { margin: 0 auto; width: 100%; max-width: 960px; overflow-x: visible; }
.wp-block-table.rp-table table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--rp-line); font-size: 14px; }
.wp-block-table.rp-table td, .wp-block-table.rp-table th { border: 0; border-bottom: 1px solid var(--rp-line); padding: 20px 16px; text-align: left; vertical-align: top; line-height: 1.9; color: var(--rp-ink2); }
.wp-block-table.rp-table td:first-child { width: 28%; font-weight: 700; color: var(--rp-ink); white-space: nowrap; }
.wp-block-table.rp-table thead { border: 0; }
.wp-block-table.rp-table thead th { font-family: var(--rp-serif); color: var(--rp-ink); background: var(--rp-bg2); }
@media (max-width: 600px) {
	.wp-block-table.rp-table--stack td { display: block; width: auto !important; padding: 16px 4px; }
	.wp-block-table.rp-table--stack td:first-child { padding-bottom: 0; border-bottom: 0; white-space: normal; }
}

/* ---------- ギャラリー（core/gallery に rp-gallery） ---------- */
.wp-block-gallery.rp-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px !important; margin: 0 auto; max-width: 1360px; }
.wp-block-gallery.rp-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: 100%; margin: 0; }
.wp-block-gallery.rp-gallery figure.wp-block-image img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--rp-bg3); }
.wp-block-gallery.rp-gallery--wide { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 700px) { .wp-block-gallery.rp-gallery--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- よくある質問（core/details に rp-faq、まとめて group rp-faqs） ---------- */
.rp-faqs { max-width: 800px; width: 100%; margin: 0 auto; border-top: 1px solid var(--rp-line); }
.rp-faqs > * { margin: 0; }
.wp-block-details.rp-faq { border-bottom: 1px solid var(--rp-line); margin: 0; padding: 0; }
.wp-block-details.rp-faq summary { list-style: none; cursor: pointer; position: relative; padding: 20px 32px 20px 36px; font-size: 15px; font-weight: 700; line-height: 1.7; color: var(--rp-ink); }
.wp-block-details.rp-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.rp-faq summary::before { content: "Q."; position: absolute; left: 0; top: 20px; font-family: var(--rp-accent); font-style: italic; color: var(--rp-gold-ink); }
.wp-block-details.rp-faq summary::after { content: "＋"; position: absolute; right: 0; top: 20px; color: var(--rp-gold-ink); }
.wp-block-details.rp-faq[open] summary::after { content: "－"; }
.wp-block-details.rp-faq > :not(summary) { position: relative; margin: 0; padding: 0 28px 20px 36px; font-size: 14px; line-height: 1.9; color: var(--rp-ink2); }
.wp-block-details.rp-faq > p:first-of-type::before { content: "A."; position: absolute; left: 0; top: 0; font-family: var(--rp-accent); font-style: italic; color: var(--rp-ink3); }

/* ---------- 流れ（group rp-steps > group rp-step） ---------- */
.rp-steps { --n: clamp(56px, 7vw, 80px); max-width: 960px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; }
.rp-steps > * { margin: 0; }
.rp-step { position: relative; display: grid; grid-template-columns: var(--n) minmax(0, 1fr) auto; gap: 0 clamp(16px, 3vw, 32px); align-items: start; padding-bottom: clamp(40px, 5vw, 56px); margin: 0; }
.rp-step > * { margin: 0; }
.rp-step::before { content: ""; position: absolute; left: calc(var(--n) / 2); top: calc(var(--n) + 16px); bottom: 0; width: 1px; background: var(--rp-gold-soft); }
.rp-step:last-child { padding-bottom: 0; }
.rp-step:last-child::before { display: none; }
.rp-step__num, p.rp-step__num { width: var(--n); height: var(--n); box-sizing: border-box; border-radius: 50%; border: 1px solid var(--rp-gold); display: flex; align-items: center; justify-content: center; font-family: var(--rp-accent); font-style: italic; font-weight: 500; font-size: clamp(30px, 3.6vw, 42px); line-height: 1; color: var(--rp-gold-ink); }
.rp-step__body { display: flex; flex-direction: column; gap: 16px; padding-top: clamp(8px, 1.4vw, 18px); min-width: 0; }
.rp-step__body > * { margin: 0; }
.rp-step__body h3 { font-family: var(--rp-serif); font-weight: 700; font-size: clamp(20px, 2.2vw, 26px); line-height: 1.4; color: var(--rp-ink); }
.rp-step__body p { font-size: 14px; line-height: 2; color: var(--rp-ink2); }
.rp-step .rp-step__img { margin: 0; }
.rp-step .rp-step__img img { width: clamp(110px, 12vw, 150px); height: clamp(110px, 12vw, 150px); border-radius: 50%; object-fit: cover; display: block; background: var(--rp-bg3); }
@media (max-width: 700px) {
	.rp-step { grid-template-columns: var(--n) minmax(0, 1fr); row-gap: 16px; }
	.rp-step .rp-step__img { grid-column: 2; }
}

/* ---------- 数字サークル（group rp-stats > paragraph rp-stat、中身は <em>） ---------- */
.rp-stats { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin: 16px 0 0; }
.rp-stats > * { margin: 0; }
.rp-stat, p.rp-stat { width: 140px; height: 140px; border-radius: 50%; border: 1px solid var(--rp-gold); box-shadow: inset 0 0 0 5px var(--rp-bg), inset 0 0 0 6px var(--rp-gold-soft); display: grid; place-items: center; text-align: center; font-size: 11px; line-height: 1.5; color: var(--rp-ink2); }
.rp-stat em { font-style: normal; display: block; }
.rp-stat strong { font-family: var(--rp-accent); font-style: italic; font-weight: 600; font-size: 40px; line-height: 1.1; color: var(--rp-gold-ink); }
.rp-stat strong { display: inline-block; margin-right: 2px; }

/* ---------- 箇条書き（core/list に rp-list） ---------- */
.wp-block-list.rp-list, ul.rp-list { max-width: 960px; width: 100%; margin: 0 auto; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.rp-list li { position: relative; padding-left: 20px; font-size: 14px; line-height: 1.9; color: var(--rp-ink2); }
.rp-list li::before { content: ""; position: absolute; left: 2px; top: .8em; width: 6px; height: 6px; transform: rotate(45deg); border: 1px solid var(--rp-gold); }

/* ---------- 写真帯（白×ゴールド：image に rp-banner） ---------- */
.wp-block-image.rp-banner { position: relative; width: calc(100% - clamp(24px, 3.2vw, 40px)); max-width: 960px; margin: clamp(12px, 1.6vw, 20px) auto clamp(20px, 3.4vw, 44px); }
.wp-block-image.rp-banner::before, .wp-block-image.rp-banner::after { content: ""; position: absolute; width: 32%; height: 70%; background: repeating-linear-gradient(-45deg, var(--rp-gold) 0 1px, transparent 1px 7px); z-index: 0; }
.wp-block-image.rp-banner::before { top: calc(clamp(12px, 1.6vw, 20px) * -1); right: calc(clamp(12px, 1.6vw, 20px) * -1); }
.wp-block-image.rp-banner::after { bottom: calc(clamp(12px, 1.6vw, 20px) * -1); left: calc(clamp(12px, 1.6vw, 20px) * -1); }
.wp-block-image.rp-banner img { position: relative; z-index: 1; width: 100%; height: clamp(220px, 30vw, 400px); object-fit: cover; display: block; }

/* ---------- 地図（カスタムHTML：<div class="rp-map"><iframe …></iframe></div>） ---------- */
.rp-map { max-width: 1360px; margin: 0 auto; padding: 0 var(--rp-g); box-sizing: border-box; }
.rp-map iframe { width: 100%; height: clamp(260px, 40vw, 400px); border: 0; display: block; filter: grayscale(1) contrast(.9); }

/* ---------- 本文（通常の段落・見出し：プライバシーポリシー等） ---------- */
.rp-content > :where(p, h2, h3, h4, ul, ol, blockquote, .wp-block-list, .wp-block-quote, .wp-block-image:not(.rp-banner), .wp-block-table:not(.rp-table), .wp-block-embed, .wp-block-file) { width: min(960px, calc(100% - 2 * var(--rp-g))); margin-left: auto; margin-right: auto; }
.rp-content > :first-child:where(p, h2, h3, ul, ol) { margin-top: clamp(48px, 7vw, 88px); }
.rp-content > :last-child:where(p, h2, h3, ul, ol) { margin-bottom: clamp(64px, 8vw, 104px); }
.rp-content > p { font-size: 15px; line-height: 2; color: var(--rp-ink2); margin-top: 0; margin-bottom: 1.4em; }
.rp-content > h2 { font-family: var(--rp-serif); font-weight: 700; font-size: clamp(18px, 1.8vw, 21px); line-height: 1.5; color: var(--rp-ink); padding-top: 32px; margin-top: 48px; margin-bottom: 14px; border-top: 1px solid var(--rp-line); }
.rp-content > h3 { font-family: var(--rp-serif); font-weight: 700; font-size: 18px; color: var(--rp-ink); margin-top: 32px; margin-bottom: 12px; }
.rp-content > :where(ul, ol) { font-size: 15px; line-height: 2; color: var(--rp-ink2); padding-left: 1.4em; }
.rp-content :where(p, li, td) > a:not([class]) { color: var(--rp-gold-ink); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 本文セットアップ用パーツ ---------- */
.rp-btns--center, .wp-block-buttons.rp-btns--center { justify-content: center; }
.rp-note--center, p.rp-note--center { text-align: center; }
.rp-sec--anchors { padding-top: clamp(40px, 5vw, 56px); padding-bottom: clamp(40px, 5vw, 56px); }
.rp-anchors { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 8px; max-width: 1080px; width: 100%; margin: 0 auto; }
.rp-anchors a { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 12px 20px; box-sizing: border-box; border: 1px solid var(--rp-line2); color: var(--rp-ink); text-decoration: none; font-family: var(--rp-serif); font-weight: 700; font-size: 15px; line-height: 1.4; transition: border-color .2s; }
.rp-anchors a:hover { border-color: var(--rp-gold); }
.rp-anchors small { font-family: var(--rp-en); font-weight: 900; font-size: 12px; letter-spacing: .15em; color: var(--rp-gold-ink); }
.rp-anchors span { margin-left: auto; color: var(--rp-gold-ink); }
.rp-course__price, p.rp-course__price { margin: 0; font-family: var(--rp-en); font-weight: 700; font-size: clamp(28px, 3vw, 36px); line-height: 1.2; color: var(--rp-ink); }
.rp-course__price sub { vertical-align: baseline; margin-left: 4px; font-family: var(--rp-sans); font-weight: 500; font-size: 13px; }
.wp-block-list.rp-menu-list, ol.rp-menu-list { margin: 0; padding: 0; list-style: none; counter-reset: rpm; border-top: 1px solid var(--rp-line); }
.rp-menu-list li { counter-increment: rpm; display: flex; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--rp-line); font-size: 14px; line-height: 1.7; color: var(--rp-ink2); }
.rp-menu-list li::before { content: counter(rpm, decimal-leading-zero); flex: none; padding-top: 2px; font-family: var(--rp-en); font-weight: 700; font-size: 12px; color: var(--rp-gold-ink); }
.rp-drinks { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: 4px; max-width: 1080px; width: 100%; margin: 0 auto; }
.rp-drinks--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); }
.rp-drinks > div { background: var(--rp-bg2); padding: 28px 24px; display: flex; flex-direction: column; gap: 12px; }
.rp-drinks dt { font-family: var(--rp-serif); font-weight: 700; font-size: 17px; color: var(--rp-ink); padding-bottom: 12px; border-bottom: 1px solid var(--rp-gold-line); }
.rp-drinks dd { margin: 0; font-size: 14px; line-height: 1.9; color: var(--rp-ink2); }
.rp-drinks dd small { font-size: 12px; color: var(--rp-ink3); }
.rp-drinks dd a { color: var(--rp-gold-ink); text-decoration: none; border-bottom: 1px solid var(--rp-gold-line); }
.wp-block-list.rp-olist, ol.rp-olist { max-width: 960px; width: 100%; margin: 0 auto; padding: 0; list-style: none; counter-reset: rpo; display: flex; flex-direction: column; }
.rp-olist li { counter-increment: rpo; display: flex; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--rp-line); font-size: 14px; line-height: 1.9; color: var(--rp-ink2); }
.rp-olist li::before { content: counter(rpo, decimal-leading-zero); flex: none; font-family: var(--rp-en); font-weight: 900; font-size: 18px; line-height: 1.5; color: var(--rp-gold-ink); }
.wp-block-list.rp-list--2col, ul.rp-list--2col { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 8px 20px; margin: 0; }
.wp-block-table.rp-table--time td:first-child { width: 1%; font-family: var(--rp-en); font-size: 18px; color: var(--rp-gold-ink); }
.wp-block-table.rp-table--time td:nth-child(2) { width: 1%; white-space: nowrap; color: var(--rp-ink3); }
.rp-cancel { max-width: 960px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 4px; }
.rp-cancel__formula { background: var(--rp-bg2); padding: 28px 24px; text-align: center; display: flex; flex-direction: column; gap: 12px; }
.rp-cancel__formula > * { margin: 0; }
.rp-cancel__expr { font-family: var(--rp-serif); font-weight: 700; font-size: clamp(16px, 2vw, 20px); line-height: 1.6; color: var(--rp-ink); }
.rp-cancel__rates { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.rp-cancel__rates > div { background: var(--rp-bg2); padding: 20px 12px; text-align: center; display: flex; flex-direction: column; gap: 6px; }
.rp-cancel__rates dt { font-size: 13px; color: var(--rp-ink3); }
.rp-cancel__rates dd { margin: 0; font-family: var(--rp-en); font-weight: 900; font-size: clamp(28px, 4vw, 40px); line-height: 1.1; color: var(--rp-gold-ink); }
.rp-cancel__rates small { font-size: .5em; margin-left: 2px; }
.rp-cbox, .rp-notice { max-width: 1080px; width: 100%; margin: 0 auto; box-sizing: border-box; border: 1px solid var(--rp-gold-line); background: var(--rp-bg2); padding: clamp(28px, 4vw, 48px); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; }
.rp-cbox__txt { display: flex; flex-direction: column; gap: 8px; }
.rp-cbox__txt > *, .rp-notice > * { margin: 0; }
.rp-cbox__ttl, .rp-notice__ttl { font-family: var(--rp-serif); font-weight: 700; font-size: clamp(20px, 2.2vw, 26px); line-height: 1.5; color: var(--rp-ink); }
.rp-cbox__act, .rp-notice__act { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.rp-cbox__btn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 56px; padding: 0 32px; background: var(--rp-red); color: #fff; text-decoration: none; font-family: var(--rp-serif); font-weight: 700; font-size: 16px; }
.rp-cbox__tel { display: inline-flex; align-items: baseline; gap: 8px; color: var(--rp-ink); text-decoration: none; font-family: var(--rp-en); font-weight: 700; font-size: 24px; }
.rp-cbox__tel small { font-size: 12px; letter-spacing: .15em; color: var(--rp-gold-ink); }
.rp-cbox__btn:hover, .rp-cbox__tel:hover { opacity: .85; }
.rp-notice { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 16px; max-width: 800px; }
.wp-block-image.rp-figure { max-width: 960px; width: 100%; margin: 0 auto; }
.wp-block-image.rp-figure img { width: 100%; height: auto; display: block; }
.rp-info { max-width: 960px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; }
.rp-info > * { margin: 0; }
.rp-info__ttl, h3.rp-info__ttl { font-family: var(--rp-serif); font-weight: 700; font-size: 18px; color: var(--rp-ink); }
.rp-sec:has(+ .rp-media), .rp-sec:has(+ .wp-block-image.rp-banner) { padding-bottom: clamp(40px, 5vw, 56px); }
.rp-light .rp-page .rp-cbox__btn { background: var(--rp-gold); color: #fff; }

/* ---------- コースページ（カンプ準拠） ---------- */
.rp-intro2 { max-width: 1360px; width: 100%; box-sizing: border-box; margin: 0 auto; padding: clamp(48px, 7vw, 88px) var(--rp-g) clamp(48px, 6vw, 64px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: clamp(32px, 5vw, 72px); align-items: center; }
.rp-intro2 > * { margin: 0; }
.rp-intro2 .wp-block-image { margin: 0; }
.rp-intro2 .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--rp-bg3); }
.rp-intro2__body { display: flex; flex-direction: column; gap: 20px; }
.rp-intro2__body > * { margin: 0; }
.rp-wrap { max-width: 1360px; width: 100%; box-sizing: border-box; margin: 0 auto; padding: 0 var(--rp-g); }
.rp-wrap--anchors { padding-bottom: clamp(56px, 7vw, 80px); }
.rp-anchors2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1px; background: var(--rp-line); border: 1px solid var(--rp-line); }
.rp-anchors2 a { background: var(--rp-bg); padding: 20px 24px; display: flex; flex-direction: column; gap: 4px; color: var(--rp-ink); text-decoration: none; font-size: 15px; font-weight: 500; }
.rp-anchors2 a:hover { background: var(--rp-bg2); }
.rp-anchors2 small { font-family: var(--rp-en); font-size: 11px; letter-spacing: .2em; color: var(--rp-gold); }
.rp-courses2 { max-width: 1360px; width: calc(100% - 2 * var(--rp-g)); box-sizing: border-box; margin: 0 auto; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.rp-courses2 > * { margin: 0; }
.rp-course2 { scroll-margin-top: 96px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); background: var(--rp-bg2); margin: 0; }
.rp-course2--rev { direction: rtl; }
.rp-course2 > * { direction: ltr; margin: 0; }
.rp-course2 .rp-course2__img { margin: 0; }
.rp-course2 .rp-course2__img img { width: 100%; height: 100%; min-height: clamp(280px, 40vw, 560px); object-fit: cover; display: block; background: var(--rp-bg3); }
.rp-course2__body { padding: clamp(28px, 4.5vw, 56px); display: flex; flex-direction: column; gap: 16px; }
.rp-course2__body > * { margin: 0; }
.rp-course2__body .rp-en { font-size: 12px; }
.rp-course2__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; }
.rp-course2__head > * { margin: 0; }
.rp-course2__ttl, h3.rp-course2__ttl { margin: 0; font-family: var(--rp-serif); font-weight: 700; font-size: clamp(22px, 2.4vw, 28px); line-height: 1.4; color: var(--rp-ink); }
.rp-course2__price, p.rp-course2__price { font-family: var(--rp-en); font-weight: 700; font-size: clamp(26px, 2.4vw, 30px); line-height: 1.2; color: var(--rp-ink); }
.rp-course2__price small { margin-left: 4px; font-family: var(--rp-sans); font-size: 12px; font-weight: 500; }
.rp-course2__tag, p.rp-course2__tag { font-size: 13px; line-height: 1.7; font-weight: 700; color: var(--rp-gold); }
.rp-course2__desc, p.rp-course2__desc { font-size: 14px; line-height: 1.95; color: var(--rp-ink2); text-wrap: pretty; }
.wp-block-list.rp-course2__menu, ul.rp-course2__menu { margin: 0; padding: 16px 0 0; list-style: none; border-top: 1px solid var(--rp-line); display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 1.6; color: var(--rp-ink); }
.rp-course2__menu li { margin: 0; padding: 0; }
.rp-course2__menu li::before { content: none; }
.rp-course2__note, p.rp-course2__note { font-size: 12px; color: var(--rp-ink3); }
.rp-course2__btns { margin: 8px 0 0; }
.wp-block-button.rp-btn--reserve { width: 100%; }
.wp-block-button.rp-btn--reserve .wp-block-button__link { width: 100%; min-height: 52px; padding: 0 24px; display: flex; align-items: center; justify-content: center; border-radius: 0; border: 0; background: var(--rp-red); color: #fff; font-family: var(--rp-serif); font-weight: 700; font-size: 15px; text-decoration: none; }
.wp-block-button.rp-btn--reserve .wp-block-button__link:hover { opacity: .85; }
.rp-drink2 { scroll-margin-top: 96px; max-width: 1360px; width: 100%; box-sizing: border-box; margin: 0 auto; padding: clamp(72px, 9vw, 112px) var(--rp-g) 0; display: flex; flex-direction: column; gap: 48px; }
.rp-drink2 > * { margin: 0; }
.rp-drinks2 { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 40px; border-top: 1px solid var(--rp-line); padding-top: 32px; }
.rp-drinks2 > div { display: flex; flex-direction: column; gap: 12px; }
.rp-drinks2 dt { font-family: var(--rp-serif); font-weight: 700; font-size: 18px; color: var(--rp-ink); }
.rp-drinks2 dd { margin: 0; font-size: 14px; line-height: 1.9; color: var(--rp-ink2); }
.rp-notice2 { scroll-margin-top: 96px; max-width: 1360px; width: 100%; box-sizing: border-box; margin: 0 auto; padding: clamp(72px, 9vw, 112px) var(--rp-g); display: flex; flex-wrap: wrap; gap: 24px clamp(32px, 5vw, 72px); }
.rp-notice2 > * { margin: 0; }
.rp-notice2__head { flex: 1 1 240px; display: flex; flex-direction: column; gap: 10px; }
.rp-notice2__head > * { margin: 0; }
.wp-block-list.rp-olist2, ol.rp-olist2 { flex: 3 1 480px; min-width: 0; margin: 0; padding: 0; list-style: none; counter-reset: rpo2; display: flex; flex-direction: column; border-top: 1px solid var(--rp-line); font-size: 14px; line-height: 1.85; color: var(--rp-ink2); }
.rp-olist2 li { counter-increment: rpo2; display: grid; grid-template-columns: 40px minmax(0, 1fr); margin: 0; padding: 16px 0; border-bottom: 1px solid var(--rp-line); }
.rp-olist2 li::before { content: counter(rpo2, decimal-leading-zero); font-family: var(--rp-en); color: var(--rp-gold); }
.rp-notice2 + .rp-cta, .rp-content > .rp-notice2:last-child { padding-bottom: clamp(56px, 7vw, 80px); }

/* ---------- アクセスページ（カンプ準拠） ---------- */
.rp-shop2 { scroll-margin-top: 96px; max-width: 1360px; width: 100%; box-sizing: border-box; margin: 0 auto; padding: clamp(48px, 7vw, 88px) var(--rp-g) clamp(72px, 9vw, 112px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(32px, 5vw, 64px); }
.rp-shop2__info { display: flex; flex-direction: column; gap: 24px; }
.rp-shop2__info > * { margin: 0; }
.rp-shop2__name { font-family: var(--rp-serif); font-weight: 700; font-size: clamp(22px, 2.2vw, 26px); line-height: 1.5; color: var(--rp-ink); }
.rp-shop2__dl { display: grid; grid-template-columns: 96px minmax(0, 1fr); border-top: 1px solid var(--rp-line); font-size: 14px; line-height: 1.85; color: var(--rp-ink); }
.rp-shop2__dl dt, .rp-shop2__dl dd { margin: 0; padding: 16px 0; border-bottom: 1px solid var(--rp-line); }
.rp-shop2__dl dt { color: var(--rp-gold); font-weight: 700; }
.rp-shop2__tel { font-family: var(--rp-en); font-weight: 700; font-size: 18px; }
.rp-shop2__tel a { color: var(--rp-ink); text-decoration: none; }
.rp-shop2__links { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 12px; }
.rp-shop2__links a { height: 52px; border: 1px solid var(--rp-ink); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 500; color: var(--rp-ink); text-decoration: none; }
.rp-shop2__links a:hover { border-color: var(--rp-gold); color: var(--rp-gold); }
.rp-shop2__map { width: 100%; height: 100%; min-height: clamp(320px, 40vw, 460px); border: 0; display: block; filter: grayscale(1) contrast(.9); }
.rp-access2 { scroll-margin-top: 96px; max-width: 1360px; width: 100%; box-sizing: border-box; margin: 0 auto; padding: 0 var(--rp-g) clamp(72px, 9vw, 96px); display: flex; flex-direction: column; gap: 40px; }
.rp-access2 > * { margin: 0; }
.rp-access2--last { padding-bottom: clamp(72px, 9vw, 112px); }
.rp-access2 .rp-head .rp-bar { margin: 0; }
.rp-info2s { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 40px 48px; }
.rp-info2s > * { margin: 0; }
.rp-info2 { display: flex; flex-direction: column; gap: 14px; }
.rp-info2 > * { margin: 0; }
.rp-info2__ttl, h3.rp-info2__ttl { font-family: var(--rp-serif); font-weight: 700; font-size: 20px; line-height: 1.5; padding-bottom: 12px; border-bottom: 1px solid var(--rp-line); color: var(--rp-ink); }
.rp-info2__txt, p.rp-info2__txt { font-size: 14px; line-height: 1.95; color: var(--rp-ink2); text-wrap: pretty; }

/* ---------- 宴会・貸切ページ（カンプ準拠） ---------- */
.rp-blk { max-width: 1360px; width: calc(100% - 2 * var(--rp-g)); box-sizing: border-box; margin: 0 auto; padding: clamp(72px, 9vw, 112px) 0 0; display: flex; flex-direction: column; gap: 48px; }
.rp-blk > * { margin: 0 auto; width: 100%; max-width: 1200px; }
/* 画像＋文章カードはTOPと同じ最大1360px */
.rp-blk > .rp-points2, .rp-blk > .rp-point2 { max-width: none; }
.rp-blk > .rp-faqs { max-width: 800px; }
.rp-blk--box { padding-top: clamp(56px, 7vw, 80px); }
.rp-blk--last { padding-bottom: clamp(72px, 9vw, 112px); }
.rp-sec--intro { padding-bottom: 0; }
.rp-content > .rp-sec + .rp-blk { padding-top: 0; }
.rp-points2 { display: flex; flex-direction: column; gap: 4px; }
.rp-points2 > * { margin: 0; }
.rp-point2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); background: var(--rp-bg2); margin: 0; }
.rp-point2--rev { direction: rtl; }
.rp-point2 > * { direction: ltr; margin: 0; }
.rp-point2 .rp-point2__img { margin: 0; }
.rp-point2 .rp-point2__img img { width: 100%; height: 100%; min-height: clamp(240px, 30vw, 380px); object-fit: cover; display: block; background: var(--rp-bg3); }
.rp-point2 .rp-pos-3075 img { object-position: 30% 75%; }
.rp-point2 .rp-pos-6045 img { object-position: 60% 45%; }
.rp-point2 .rp-point2__img--course img { min-height: clamp(260px, 32vw, 440px); }
.rp-point2--course { box-shadow: 0 0 0 1px var(--rp-bg3); }
.rp-point2__body .rp-course__price, .rp-point2__body .rp-card__tag, .rp-point2__body .rp-menu-list, .rp-point2__body .rp-note { margin: 0; }
.wp-block-media-text.rp-pos-c65 > .wp-block-media-text__media img { object-position: center 65%; }
.wp-block-image.rp-banner img { object-position: center 62%; }
.wp-block-buttons.rp-btns--tap { margin-top: 8px; }
.wp-block-button.rp-btn--tap .wp-block-button__link { min-height: 56px; padding: 0 36px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 0; background: var(--rp-gold); color: #0b0a09; font-family: var(--rp-serif); font-weight: 700; font-size: 16px; text-decoration: none; }
.wp-block-button.rp-btn--tap .wp-block-button__link:hover { opacity: .85; }
.rp-point2__body { padding: clamp(28px, 4.5vw, 56px); display: flex; flex-direction: column; justify-content: center; gap: 16px; }
.rp-point2__body > * { margin: 0; }
.rp-point2__ttl, h3.rp-point2__ttl { font-family: var(--rp-serif); font-weight: 700; font-size: clamp(20px, 2vw, 24px); line-height: 1.5; color: var(--rp-ink); }
.rp-point2__txt, p.rp-point2__txt { font-size: 14px; line-height: 1.95; color: var(--rp-ink2); text-wrap: pretty; }
.rp-point2__note, p.rp-point2__note { font-size: 12px; color: var(--rp-ink3); }
.rp-textlink2, p.rp-textlink2 { align-self: center; text-align: center; }
.rp-textlink2 a { font-size: 14px; color: var(--rp-ink2); text-decoration: none; border-bottom: 1px solid var(--rp-gold); padding-bottom: 4px; }
.rp-textlink2 a:hover { color: var(--rp-gold); }
.rp-cbox2 { background: var(--rp-bg2); padding: 8px; }
.rp-cbox2__in { border: 1px solid var(--rp-gold-line); padding: clamp(28px, 4vw, 44px) clamp(20px, 4vw, 48px); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px 40px; align-items: center; }
.rp-cbox2__txt { display: flex; flex-direction: column; gap: 10px; }
.rp-cbox2__txt > * { margin: 0; }
.rp-cbox2__ttl { font-family: var(--rp-serif); font-weight: 700; font-size: clamp(20px, 2.2vw, 26px); color: var(--rp-ink); }
.rp-cbox2__sub { font-size: 13px; line-height: 1.8; color: var(--rp-ink3); }
.rp-cbox2__act { display: flex; flex-direction: column; gap: 12px; }
.rp-cbox2__tel { height: 60px; background: var(--rp-red); color: #fff; display: flex; align-items: center; justify-content: center; gap: 12px; text-decoration: none; }
.rp-cbox2__tel small { font-size: 12px; }
.rp-cbox2__tel span { font-family: var(--rp-en); font-weight: 700; font-size: 22px; letter-spacing: .04em; }
.rp-cbox2__btn { height: 56px; border: 1px solid var(--rp-ink); color: var(--rp-ink); display: flex; align-items: center; justify-content: center; gap: 14px; font-family: var(--rp-serif); font-weight: 700; font-size: 16px; text-decoration: none; }
.rp-cbox2__tel:hover, .rp-cbox2__btn:hover { opacity: .85; }
.rp-cancel2 { max-width: 800px; width: 100%; align-self: center; display: flex; flex-direction: column; gap: 24px; }
.rp-cancel2 > * { margin: 0; }
.rp-cancel2__lead { font-size: 14px; line-height: 1.95; color: var(--rp-ink2); text-wrap: pretty; }
.rp-cancel2__formula { background: var(--rp-bg2); padding: 20px 24px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; line-height: 1.8; }
.rp-cancel2__formula strong { font-weight: 700; color: var(--rp-ink); }
.rp-cancel2__formula span { color: var(--rp-ink3); }
.rp-cancel2__rates { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; text-align: center; }
.rp-cancel2__rates > div { background: var(--rp-bg2); padding: 20px 8px; display: flex; flex-direction: column; gap: 6px; }
.rp-cancel2__rates dt { font-size: 13px; color: var(--rp-ink3); }
.rp-cancel2__rates dd { margin: 0; font-family: var(--rp-en); font-weight: 900; font-size: 28px; color: var(--rp-ink); }
.rp-cancel2__rates small { font-size: 14px; }
.rp-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(110px, 15vw, 220px); gap: clamp(4px, .6vw, 8px); }
.rp-mosaic img { width: 100%; height: 100% !important; object-fit: cover; display: block; background: var(--rp-bg3); }
.rp-mosaic img:first-child { grid-column: span 2; grid-row: span 2; }
.rp-mosaic img:nth-child(n+4) { grid-column: span 2; }
.rp-mosaic img.rp-pos-c60 { object-position: center 60%; }

/* ---------- プライバシーポリシー（カンプ準拠） ---------- */
.rp-policy { max-width: 880px; width: 100%; box-sizing: border-box; margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--rp-g) clamp(72px, 9vw, 112px); display: flex; flex-direction: column; gap: 32px; }
.rp-policy > * { margin: 0; }
.rp-policy__sec { display: flex; flex-direction: column; gap: 14px; padding-top: 32px; border-top: 1px solid var(--rp-line); margin: 0; }
.rp-policy__sec > * { margin: 0; }
.rp-policy__ttl, h2.rp-policy__ttl { margin: 0; display: flex; align-items: baseline; gap: 14px; font-family: var(--rp-serif); font-weight: 700; font-size: clamp(18px, 1.8vw, 21px); line-height: 1.5; color: var(--rp-ink); }
.rp-policy__ttl span { font-family: var(--rp-en); font-weight: 700; font-size: 14px; letter-spacing: .1em; color: var(--rp-gold); }
.rp-policy__txt, p.rp-policy__txt { font-size: 14px; line-height: 2; color: var(--rp-ink2); text-wrap: pretty; }
.wp-block-list.rp-policy__list, ul.rp-policy__list { margin: 0; padding: 0 0 0 1.2em; display: flex; flex-direction: column; gap: 6px; font-size: 14px; line-height: 1.9; color: var(--rp-ink2); }
.rp-policy__box, p.rp-policy__box { background: var(--rp-bg2); padding: 20px 24px; font-size: 14px; line-height: 1.9; color: var(--rp-ink2); }

/* ---------- 公式ECサイトボタン（下層） ---------- */
.rp-cta + .rp-ec { padding-top: 0; }
.rp-ec + .rp-stores { padding-top: 0; }

/* ---------- 画像＋文章（カンプ準拠のグリッド。rpb_media で出力） ---------- */
.rp-media2 { max-width: 1360px; width: calc(100% - 2 * var(--rp-g)); margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); scroll-margin-top: 96px; }
.rp-media2 + .rp-media2 { margin-top: 4px; }
.rp-media2--tint { background: var(--rp-bg2); }
.rp-media2--rev { direction: rtl; }
.rp-media2 > * { direction: ltr; margin: 0; min-width: 0; }
.rp-media2 .rp-media2__img { margin: 0; }
.rp-media2 .rp-media2__img img { width: 100%; height: 100% !important; min-height: 400px; object-fit: cover; display: block; background: var(--rp-bg3); }
.rp-media2.rp-pos-c65 .rp-media2__img img { object-position: center 65%; }
.rp-media2__body { padding: clamp(48px, 7vw, 96px) clamp(24px, 6vw, 80px); display: flex; flex-direction: column; justify-content: center; gap: 20px; }
.rp-media2__body > * { margin: 0; }
.rp-media2__body .rp-btns { margin-top: 8px; }

/* ---------- エディタ ---------- */
.editor-styles-wrapper { background: var(--rp-bg); color: var(--rp-ink); }
.editor-styles-wrapper .rp-is-light { padding: 1px 0; }

/* ---------- お問い合わせフォーム（Contact Form 7 + Flamingo） ---------- */
.rp-form-sec { max-width: 800px; gap: 40px; }
.rp-form-head { display: flex; flex-direction: column; gap: 10px; }
.rp-form-head > * { margin: 0; }
.wpcf7 .rp-form { display: flex; flex-direction: column; gap: 28px; }
.wpcf7 .rp-field { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.wpcf7 .rp-field__label { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: var(--rp-ink); }
.wpcf7 .rp-req, .wpcf7 .rp-opt { font-size: 11px; line-height: 1.4; padding: 2px 6px; }
.wpcf7 .rp-req { font-weight: 700; background: var(--rp-red); color: #fff; }
.wpcf7 .rp-opt { font-weight: 500; border: 1px solid #5d574e; color: var(--rp-ink3); padding: 1px 6px; }
.wpcf7 .wpcf7-form-control-wrap { display: block; }
.wpcf7 input.wpcf7-text, .wpcf7 input.wpcf7-email, .wpcf7 input.wpcf7-tel, .wpcf7 input.wpcf7-url, .wpcf7 select.wpcf7-select, .wpcf7 textarea.wpcf7-textarea {
	width: 100%; box-sizing: border-box; height: 52px; margin: 0; padding: 0 16px; border-radius: 0; box-shadow: none;
	background: var(--rp-bg2); border: 1px solid var(--rp-line); color: var(--rp-ink); font-family: inherit; font-size: 16px; outline: none; transition: border-color .2s;
}
.wpcf7 textarea.wpcf7-textarea { height: auto; min-height: 200px; padding: 14px 16px; line-height: 1.8; resize: vertical; }
.wpcf7 .wpcf7-form-control::placeholder { color: var(--rp-ink4); }
.wpcf7 .wpcf7-form-control:focus { border-color: var(--rp-gold); }
.wpcf7 .wpcf7-not-valid { border-color: var(--rp-red) !important; }
.wpcf7 .wpcf7-not-valid-tip { margin-top: 8px; font-size: 12px; color: #ff6b74; }
.wpcf7 .rp-form__privacy { margin: 0; font-size: 12px; line-height: 1.8; color: var(--rp-ink3); }
.wpcf7 .rp-form__privacy a { color: var(--rp-ink2); text-decoration: none; border-bottom: 1px solid var(--rp-gold-line); }
.wpcf7 .rp-form__privacy a:hover { color: var(--rp-gold); }
.wpcf7 .rp-form__recaptcha { margin: 0; font-size: 11px; line-height: 1.7; color: var(--rp-ink4); text-align: center; }
.wpcf7 .rp-form__recaptcha a { color: var(--rp-ink3); text-decoration: underline; }
.wpcf7 .rp-form__submit { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 8px; }
.wpcf7 input.wpcf7-submit {
	width: 100%; max-width: 360px; height: 60px; margin: 0; border: 0; border-radius: 0; cursor: pointer;
	background: var(--rp-gold); color: #0b0a09; font-family: var(--rp-serif); font-weight: 700; font-size: 17px; letter-spacing: .08em; transition: opacity .2s;
}
.wpcf7 input.wpcf7-submit:hover { opacity: .85; }
.wpcf7 input.wpcf7-submit:disabled { opacity: .5; cursor: default; }
.wpcf7 .wpcf7-spinner { margin: 0; background-color: var(--rp-gold); }
.wpcf7 form .wpcf7-response-output { margin: 28px 0 0; padding: 14px 16px; border: 1px solid var(--rp-line2); font-size: 14px; line-height: 1.8; color: var(--rp-ink2); text-align: center; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--rp-gold); color: var(--rp-ink); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { border-color: var(--rp-red); }

/* 本文中リンクの装飾をパーツ内リンクに当てない */
.rp-shop2 a, .rp-anchors2 a, .rp-anchors a, .rp-cbox a, .rp-notice a { text-decoration: none; }
.rp-shop2__tel a { color: var(--rp-ink); }
.rp-shop2__links a, .rp-anchors2 a { color: var(--rp-ink); }
