/*
Theme Name: Rinshoji
Theme URI: https://rinshoji.com/
Author: Rinshoji
Description: 白鶴山 倫勝寺のための専用クラシックテーマ。既存の投稿・固定ページ本文を変更せず、テーマテンプレートとCSSで表示を整えます。
Version: 1.3.1
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: rinshoji
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
	--rns-paper: #fdfcf9;
	--rns-ink: #201f1c;
	--rns-muted: #6d6963;
	--rns-line: #ccc7be;
	--rns-maroon: #773333;
	--rns-maroon-dark: #662a2a;
	--rns-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--rns-paper);
	color: var(--rns-ink);
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", YuGothic, sans-serif;
	font-feature-settings: "palt" 1;
	text-rendering: optimizeLegibility;
}

body.admin-bar .rns-page {
	min-height: calc(100vh - 32px);
}

a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	opacity: 1;
}

img {
	max-width: 100%;
	height: auto;
}

button,
input,
textarea,
select {
	font: inherit;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.rns-page {
	min-height: 100vh;
}

.rns-shell {
	width: min(100% - 56px, 1040px);
	margin: 0 auto;
}

.rns-header nav {
	display: flex;
	align-items: center;
}

.rns-header a:focus-visible,
.rns-page a:focus-visible,
.rns-page button:focus-visible {
	outline: 2px solid var(--rns-maroon);
	outline-offset: 4px;
}

/* Front page masthead */
.rns-masthead {
	padding: 0 30px;
	border-bottom: 0;
}

.rns-header--front {
	min-height: 72px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--rns-muted);
}

.rns-header--front > span {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.12em;
}

.rns-header--front nav {
	flex-shrink: 0;
	gap: 30px;
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
}

.rns-header nav a {
	white-space: nowrap;
	transition: color 360ms var(--rns-ease);
}

.rns-header nav a:hover {
	color: var(--rns-maroon);
}

.rns-title-logo {
	min-height: 540px;
	padding: 0 4px 52px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.rns-title-logo h1 {
	width: 100%;
	margin: auto 0;
	display: flex;
	justify-content: center;
	line-height: 0;
	will-change: transform;
	animation: rns-logo-reveal 2.4s var(--rns-ease) 80ms both;
}

.rns-title-logo h1 img {
	display: block;
	width: min(68%, 650px);
	height: auto;
}

.rns-title-foot {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}

.rns-title-foot blockquote,
.rns-title-foot p {
	margin: 0;
	color: var(--rns-muted);
	font-size: 14px;
	line-height: 1.9;
	letter-spacing: 0.04em;
}

@keyframes rns-logo-reveal {
	from { opacity: 0; }
	to { opacity: 1; }
}

.rns-type-char {
	opacity: 0;
	transition: opacity 70ms linear;
}

.rns-type-char.is-visible {
	opacity: 1;
}

/* News */
.rns-news {
	padding: 72px 0 124px;
}

.rns-section-bar {
	min-height: 72px;
	padding: 0 30px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: linear-gradient(90deg, var(--rns-maroon) 0%, var(--rns-maroon-dark) 100%);
}

.rns-section-bar h2 {
	margin: 0;
	color: #fffaf5;
	font-size: 14px;
	font-weight: 650;
	letter-spacing: 0.06em;
}

.rns-section-bar a {
	color: rgba(255, 250, 245, 0.78);
	font-size: 10px;
	letter-spacing: 0.06em;
}

.rns-section-bar a:hover {
	color: #fffaf5;
}

.rns-notice-list,
.rns-archive-list {
	border-top: 1px solid var(--rns-maroon);
}

.rns-notice {
	position: relative;
	min-height: 70px;
	padding: 0 4px;
	display: grid;
	grid-template-columns: 130px 1fr 24px;
	gap: 20px;
	align-items: center;
	border-bottom: 1px solid var(--rns-line);
	transition: color 360ms var(--rns-ease), padding 360ms var(--rns-ease), background 360ms var(--rns-ease);
}

.rns-notice:hover {
	padding-right: 10px;
	padding-left: 10px;
	background: #f7f3ef;
	color: var(--rns-maroon);
}

.rns-notice time {
	color: var(--rns-maroon);
	font-size: 9px;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.08em;
}

.rns-notice h2,
.rns-notice h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 520;
	letter-spacing: 0.01em;
}

.rns-notice > span {
	text-align: right;
	transition: transform 360ms var(--rns-ease);
}

.rns-notice:hover > span {
	transform: translateX(3px);
}

.rns-empty {
	margin: 0;
	padding: 40px 4px;
	color: var(--rns-muted);
	font-size: 13px;
}

/* Front guide links */
.rns-guide-links {
	position: relative;
	border-top: 2px solid var(--rns-maroon);
}

.rns-guide-links::before {
	position: absolute;
	z-index: 0;
	top: 0;
	left: 0;
	width: 100%;
	height: 50%;
	background: linear-gradient(90deg, var(--rns-maroon) 0%, var(--rns-maroon-dark) 100%);
	content: "";
	pointer-events: none;
	transition: transform 520ms var(--rns-ease);
}

.rns-guide-links:has(.rns-guide-link--memorial:hover)::before,
.rns-guide-links:has(.rns-guide-link--memorial:focus-visible)::before {
	transform: translateY(100%);
}

.rns-guide-link {
	position: relative;
	z-index: 1;
	min-height: 150px;
	padding: 26px 4px;
	display: grid;
	grid-template-columns: 130px 1fr 30px;
	gap: 20px;
	align-items: center;
	border-bottom: 1px solid var(--rns-line);
	transition: color 380ms var(--rns-ease), padding 380ms var(--rns-ease);
}

.rns-guide-link:hover {
	padding-right: 11px;
	padding-left: 11px;
}

.rns-guide-link--temple,
.rns-guide-link--memorial:hover,
.rns-guide-link--memorial:focus-visible {
	color: #fffaf5;
}

.rns-guide-links:has(.rns-guide-link--memorial:hover) .rns-guide-link--temple,
.rns-guide-links:has(.rns-guide-link--memorial:focus-visible) .rns-guide-link--temple {
	color: var(--rns-ink);
}

.rns-guide-link > span {
	align-self: start;
	color: var(--rns-muted);
	font-size: 9px;
}

.rns-guide-link h2 {
	margin: 0 0 12px;
	font-size: 25px;
	font-weight: 560;
	letter-spacing: 0.01em;
}

.rns-guide-link p {
	margin: 0;
	color: var(--rns-muted);
	font-size: 11px;
}

.rns-guide-link--temple > span,
.rns-guide-link--temple p,
.rns-guide-link--memorial:hover > span,
.rns-guide-link--memorial:hover p,
.rns-guide-link--memorial:focus-visible > span,
.rns-guide-link--memorial:focus-visible p {
	color: rgba(255, 250, 245, 0.72);
}

.rns-guide-links:has(.rns-guide-link--memorial:hover) .rns-guide-link--temple > span,
.rns-guide-links:has(.rns-guide-link--memorial:hover) .rns-guide-link--temple p,
.rns-guide-links:has(.rns-guide-link--memorial:focus-visible) .rns-guide-link--temple > span,
.rns-guide-links:has(.rns-guide-link--memorial:focus-visible) .rns-guide-link--temple p {
	color: var(--rns-muted);
}

.rns-guide-link b {
	font-size: 16px;
	font-weight: 400;
	text-align: right;
	transition: transform 380ms var(--rns-ease);
}

.rns-guide-link:hover b {
	transform: translateX(3px);
}

/* Shared inner header */
.rns-header--inner {
	min-height: 112px;
	padding: 0 30px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	border-bottom: 1px solid var(--rns-maroon);
}

.rns-brand {
	grid-column: 2;
	display: block;
	line-height: 0;
}

.rns-brand img {
	display: block;
	width: 116px;
	height: auto;
}

.rns-header--inner nav {
	grid-column: 3;
	justify-self: end;
	gap: 24px;
	color: var(--rns-muted);
	font-size: 11px;
	font-weight: 500;
}

/* Article */
.rns-article-intro,
.rns-page-title {
	min-height: 310px;
	padding: 56px 30px 54px;
	display: grid;
	grid-template-columns: 170px 1fr;
	align-items: center;
	border-bottom: 1px solid var(--rns-line);
}

.rns-article-title-group,
.rns-page-title h1 {
	grid-column: 2;
}

.rns-article-title-group {
	display: flex;
	flex-direction: column;
}

.rns-article-title-group time {
	margin-bottom: 28px;
	color: var(--rns-maroon);
	font-size: 15px;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.08em;
}

.rns-article-title-group h1,
.rns-page-title h1 {
	max-width: 700px;
	margin: 0;
	font-size: clamp(34px, 3.5vw, 50px);
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.025em;
}

.rns-article-reading {
	padding: 112px 30px 124px;
}

.rns-article-content {
	width: min(100%, 620px);
	margin-left: 170px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 16px;
	line-height: 2.25;
	letter-spacing: 0.055em;
}

.rns-article-content > *:first-child {
	margin-top: 0;
}

.rns-article-content p {
	margin: 0 0 2.15em;
	text-align: justify;
}

.rns-article-content ruby rt {
	font-size: 0.52em;
}

.rns-article-content figure:first-child {
	width: calc(100% + 360px);
	margin: -112px 0 112px -170px;
}

.rns-article-content figure:first-child img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 660px;
	object-fit: cover;
}

.rns-article-content figcaption {
	margin-top: 10px;
	color: var(--rns-muted);
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 9px;
	text-align: right;
}

.rns-post-navigation {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-top: 2px solid var(--rns-maroon);
}

.rns-post-navigation a {
	position: relative;
	min-height: 176px;
	padding: 30px;
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: auto 1fr;
	gap: 16px;
	border-bottom: 1px solid var(--rns-line);
	transition: background 420ms var(--rns-ease), color 420ms var(--rns-ease);
}

.rns-post-navigation a:first-child {
	border-right: 1px solid var(--rns-line);
}

.rns-post-navigation a:only-child {
	grid-column: 1 / -1;
	border-right: 0;
}

.rns-post-navigation a:hover {
	background: linear-gradient(105deg, var(--rns-maroon) 0%, var(--rns-maroon-dark) 100%);
	color: #fffaf5;
}

.rns-post-navigation span {
	color: var(--rns-maroon);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.12em;
}

.rns-post-navigation strong {
	align-self: end;
	font-size: 16px;
	font-weight: 520;
	letter-spacing: 0.02em;
}

.rns-post-navigation b {
	grid-column: 2;
	grid-row: 1 / 3;
	align-self: center;
	font-size: 17px;
	font-weight: 400;
	transition: transform 420ms var(--rns-ease);
}

.rns-post-navigation a:hover span {
	color: rgba(255, 250, 245, 0.72);
}

.rns-post-navigation__prev:hover b { transform: translateX(-4px); }
.rns-post-navigation__next:hover b { transform: translateX(4px); }

/* Static page content: theme styling only; content remains untouched. */
.rns-page-content {
	padding: 80px 30px 124px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 15px;
	line-height: 2.15;
	letter-spacing: 0.045em;
}

.rns-page-content > * {
	max-width: 700px;
	margin-right: auto;
	margin-left: 170px;
}

.rns-page-content p {
	margin-top: 0;
	margin-bottom: 2em;
}

.rns-page-content h2,
.rns-page-content h3 {
	margin-top: 96px;
	margin-bottom: 42px;
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	font-size: 27px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.02em;
}

.rns-page-content h2:first-child,
.rns-page-content h3:first-child {
	margin-top: 0;
}

.rns-page-content hr,
.rns-page-content .wp-block-separator {
	max-width: none;
	height: 0;
	margin: 112px 0 0;
	border: 0;
	border-top: 1px solid var(--rns-maroon);
}

.rns-page-content hr + h2,
.rns-page-content hr + h3,
.rns-page-content .wp-block-separator + h2,
.rns-page-content .wp-block-separator + h3 {
	margin-top: 50px;
}

.rns-page-content a {
	color: var(--rns-maroon);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

.rns-page-content figure,
.rns-page-content .wp-block-image {
	margin-top: 42px;
	margin-bottom: 42px;
}

.rns-page-content img {
	height: auto;
}

.rns-page-content figcaption {
	margin-top: 8px;
	color: var(--rns-muted);
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 9px;
	letter-spacing: 0.06em;
}

.rns-page-content iframe {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: auto !important;
	aspect-ratio: 4 / 3;
	border: 0;
}

/* Temple page: selectors target the existing saved HTML. */
.rinshoji-page-temple .rns-page-content > h3:first-child {
	margin-top: 0;
	font-size: 28px;
}

.rinshoji-page-temple .rns-page-content > h3:first-child + p {
	margin-top: 0;
}

.rinshoji-page-temple .rns-page-content > .rns-profile-panel {
	max-width: none;
	margin: -80px 0 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-bottom: 1px solid var(--rns-line);
}

.rinshoji-page-temple .rns-profile-identity,
.rinshoji-page-temple .rns-profile-contact {
	min-height: 290px;
	margin: 0;
	padding: 54px 40px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.rinshoji-page-temple .rns-profile-identity {
	background: linear-gradient(105deg, var(--rns-maroon) 0%, var(--rns-maroon-dark) 100%);
	color: #fffaf5;
}

.rinshoji-page-temple .rns-profile-identity h3,
.rinshoji-page-temple .rns-profile-identity p,
.rinshoji-page-temple .rns-profile-contact p {
	margin: 0;
}

.rinshoji-page-temple .rns-profile-identity h3 {
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.45;
	letter-spacing: 0.02em;
}

.rinshoji-page-temple .rns-profile-identity p {
	font-size: 13px;
}

.rinshoji-page-temple .rns-page-content > br {
	display: none;
}

.rinshoji-page-temple .rns-page-content > p[style*="padding-left"],
.rinshoji-page-temple .rin-phone-reveal > p {
	padding-left: 0 !important;
}

.rinshoji-page-temple .rin-phone-reveal {
	margin-top: 36px;
	margin-bottom: 48px;
}

.rinshoji-page-temple .rin-phone-reveal.rns-profile-contact {
	margin: 0;
}

.rinshoji-page-temple .rin-phone-reveal > p {
	margin: 0;
}

.rinshoji-page-temple .rin-phone-button {
	width: max-content;
	margin-top: 18px;
	padding: 0 0 4px;
	border: 0;
	border-bottom: 1px solid var(--rns-maroon);
	background: transparent;
	color: var(--rns-maroon);
	cursor: pointer;
}

.rinshoji-page-temple .rin-phone-output {
	display: inline-block;
	margin-top: 18px;
}

.rinshoji-page-temple .rin-phone-link {
	font-family: "Helvetica Neue", sans-serif;
	font-size: 17px;
	font-variant-numeric: tabular-nums;
}

.rinshoji-page-temple .rns-page-content > p:has(> iframe) {
	margin-top: 100px;
}

.rinshoji-page-temple .rns-page-content p:has(> strong:first-child) strong:first-child {
	color: var(--rns-maroon);
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 15px;
	letter-spacing: 0.04em;
}

.rinshoji-page-temple .rns-page-content p:has(> a > img) {
	max-width: none;
	margin: 42px 0 0;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--rns-paper);
	border: 0;
}

.rinshoji-page-temple .rns-page-content p:has(> a > img) > a {
	min-width: 0;
	background: var(--rns-paper);
	overflow: hidden;
}

.rinshoji-page-temple .rns-page-content p:has(> a > img) img {
	display: block;
	width: 100%;
	height: 260px;
	object-fit: cover;
	filter: saturate(0.86);
	transition: transform 700ms var(--rns-ease), filter 500ms var(--rns-ease);
}

.rinshoji-page-temple .rns-page-content p:has(> a > img) a:hover img {
	transform: scale(1.025);
	filter: saturate(1);
}

.rinshoji-page-temple .rns-page-content p:has(> a > img) > a {
	cursor: zoom-in;
}

.rinshoji-page-temple .rns-page-content > p:has(> img[src*="sagi2"]) {
	max-width: none;
	min-height: 310px;
	margin: 0;
	padding: 48px 42px;
	background: linear-gradient(105deg, var(--rns-maroon) 0%, var(--rns-maroon-dark) 100%);
	color: #fffaf5;
	overflow: hidden;
}

.rinshoji-page-temple .rns-page-content > p:has(> img[src*="sagi2"]) img {
	float: left;
	width: 52%;
	height: 310px;
	margin: -48px 42px -48px -42px;
	object-fit: cover;
}

.rinshoji-page-temple .rns-page-content > p:has(> img[src*="sagi2"]) strong:last-of-type {
	display: inline-block;
	margin: 18px 0;
	font-size: 17px;
	line-height: 1.8;
}

/* Theme-enhanced structure for the legacy inline origin paragraph. */
.rinshoji-page-temple .rns-page-content > p.rns-origin-panel {
	min-height: 340px !important;
	padding: 0 !important;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	overflow: hidden;
}

.rinshoji-page-temple .rns-origin-panel > img {
	float: none !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	object-fit: cover;
}

.rinshoji-page-temple .rns-origin-copy {
	padding: 48px 42px;
	display: block;
	align-self: center;
}

.rinshoji-page-temple .rns-origin-copy > strong:first-of-type {
	display: inline-block;
	margin-bottom: 16px;
}

.rinshoji-page-temple .rns-origin-copy > strong:last-of-type {
	display: inline-block;
	margin: 18px 0;
	font-size: 17px;
	line-height: 1.8;
}

.rinshoji-page-temple .rns-page-content > p:has(> img[src*="kobuki2"]) {
	margin-top: 54px;
}

.rinshoji-page-temple .rns-page-content > p:has(> img[src*="kobuki2"]) img {
	display: block;
	width: min(100%, 400px);
	margin: 0;
}

.rinshoji-page-temple .rns-page-content > p:has(> img[src*="baika"]),
.rinshoji-page-temple .rns-page-content > p:has(> img[src*="syositu"]) {
	margin-top: 54px;
}

.rinshoji-page-temple .rns-page-content > p:has(> img[src*="baika"]) img,
.rinshoji-page-temple .rns-page-content > p:has(> img[src*="syositu"]) img {
	display: block;
	width: min(100%, 460px);
	margin: 0 0 28px;
}

/* Theme-enhanced structure for Baika-ko and Rinsho Shoshitsu. */
.rinshoji-page-temple .rns-activities {
	max-width: none;
	margin: 64px 0 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--rns-line);
	border: 1px solid var(--rns-line);
}

.rinshoji-page-temple .rns-activity-card {
	min-width: 0;
	padding: 0 0 34px;
	background: var(--rns-paper);
}

.rinshoji-page-temple .rns-activity-card p {
	max-width: none;
	margin: 0;
}

.rinshoji-page-temple .rns-activity-heading br {
	display: none;
}

.rinshoji-page-temple .rns-activity-heading img {
	display: block;
	width: 100% !important;
	height: 290px;
	margin: 0 0 30px !important;
	object-fit: cover;
}

.rinshoji-page-temple .rns-activity-heading strong,
.rinshoji-page-temple .rns-activity-detail {
	display: block;
	padding-right: 34px;
	padding-left: 34px;
}

.rinshoji-page-temple .rns-activity-heading strong {
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 18px;
	font-weight: 600;
}

.rinshoji-page-temple .rns-activity-detail {
	margin-top: 24px !important;
}

.rinshoji-page-temple .rns-page-content > p > img:only-child,
.rinshoji-page-temple .rns-page-content > figure > img {
	display: block;
	max-width: 100%;
}

/* Memorial page: target the existing rin-houji wrapper and its saved classes. */
.rinshoji-page-memorial .rns-page-content > .rin-houji {
	max-width: none;
	margin: -80px 0 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
}

.rinshoji-page-memorial .rin-houji-lead {
	min-height: 360px;
	padding: 54px 48px;
	display: flex;
	align-items: center;
	background: linear-gradient(105deg, var(--rns-maroon) 0%, var(--rns-maroon-dark) 100%);
	color: #fffaf5;
	font-size: 17px;
}

.rinshoji-page-memorial .rin-houji-main-image {
	min-height: 360px;
	margin: 0;
}

.rinshoji-page-memorial .rin-houji-main-image br {
	display: none;
}

.rinshoji-page-memorial .rin-houji-main-image img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: cover;
	filter: saturate(0.88);
}

.rinshoji-page-memorial .rin-houji-section {
	grid-column: 1 / -1;
	padding: 92px 170px 72px;
}

.rinshoji-page-memorial .rin-houji-section h2 {
	margin: 0 0 34px;
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 27px;
	font-weight: 600;
}

.rinshoji-page-memorial .rin-houji-section p {
	margin: 0 0 12px;
}

.rinshoji-page-memorial .rin-houji-years {
	margin: 28px 0 !important;
	padding: 30px 0;
	border-top: 1px solid var(--rns-maroon);
	border-bottom: 1px solid var(--rns-maroon);
	color: var(--rns-maroon);
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 23px;
	font-weight: 600;
	line-height: 1.7;
}

.rinshoji-page-memorial .rin-houji-flow {
	grid-column: 1 / -1;
	border-top: 2px solid var(--rns-maroon);
}

.rinshoji-page-memorial .rin-houji-step {
	padding: 50px 0 54px;
	border-bottom: 1px solid var(--rns-line);
}

.rinshoji-page-memorial .rin-houji-step h2 {
	max-width: 700px;
	margin: 0 0 30px 170px;
	display: grid;
	grid-template-columns: 64px 1fr;
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.55;
}

.rinshoji-page-memorial .rin-houji-step h2 br {
	display: none;
}

.rinshoji-page-memorial .rin-houji-step-num {
	color: var(--rns-maroon);
	font-size: 20px;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.rinshoji-page-memorial .rin-houji-step-title {
	grid-column: 2;
}

.rinshoji-page-memorial .rin-houji-step p {
	max-width: 700px;
	margin: 0 0 1.8em 234px;
}

/* Archive, 404, footer */
.rns-archive-list {
	padding-bottom: 80px;
}

.navigation.pagination {
	padding: 40px 4px;
}

.nav-links {
	display: flex;
	gap: 16px;
	font-size: 12px;
}

.nav-links .current {
	color: var(--rns-maroon);
}

.rns-not-found {
	min-height: 560px;
	padding: 90px 30px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border-bottom: 1px solid var(--rns-line);
}

.rns-not-found p {
	margin: 0 0 20px;
	color: var(--rns-maroon);
	font-size: 12px;
}

.rns-not-found h1 {
	margin: 0 0 48px;
	font-size: clamp(30px, 4vw, 52px);
	font-weight: 600;
}

.rns-not-found a {
	width: max-content;
	font-size: 12px;
}

.rns-footer {
	min-height: 150px;
	padding: 34px 4px 24px;
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: end;
	border-top: 2px solid var(--rns-maroon);
}

.single .rns-footer,
.page .rns-footer {
	border-top-width: 1px;
}

.rns-footer p,
.rns-footer a {
	margin: 0;
	color: var(--rns-muted);
	font-size: 9px;
	letter-spacing: 0.06em;
}

/* Theme lightbox — works with ordinary image links; no plugin required. */
body.rns-lightbox-open {
	overflow: hidden;
}

.rns-lightbox[hidden] {
	display: none;
}

.rns-lightbox {
	position: fixed;
	z-index: 1000000;
	inset: 0;
	display: grid;
	grid-template-rows: 1fr auto;
	background: rgba(22, 15, 15, 0.96);
	color: #fffaf5;
	opacity: 0;
	transition: opacity 320ms var(--rns-ease);
}

.rns-lightbox.is-open {
	opacity: 1;
}

.rns-lightbox__stage {
	position: relative;
	min-width: 0;
	min-height: 0;
	padding: 68px 90px 28px;
	display: grid;
	place-items: center;
}

.rns-lightbox__image {
	display: block;
	max-width: 100%;
	max-height: calc(100vh - 150px);
	width: auto;
	height: auto;
	box-shadow: 0 22px 80px rgba(0, 0, 0, 0.28);
	opacity: 1;
	transition: opacity 220ms ease;
}

.rns-lightbox.is-loading .rns-lightbox__image {
	opacity: 0.2;
}

.rns-lightbox__close,
.rns-lightbox__previous,
.rns-lightbox__next {
	position: absolute;
	padding: 0;
	border: 0;
	background: transparent;
	color: #fffaf5;
	cursor: pointer;
}

.rns-lightbox__close {
	top: 25px;
	right: 30px;
	width: 44px;
	height: 44px;
	font-size: 0;
}

.rns-lightbox__close::before,
.rns-lightbox__close::after {
	position: absolute;
	top: 21px;
	left: 8px;
	width: 28px;
	height: 1px;
	background: currentColor;
	content: "";
}

.rns-lightbox__close::before { transform: rotate(45deg); }
.rns-lightbox__close::after { transform: rotate(-45deg); }

.rns-lightbox__previous,
.rns-lightbox__next {
	top: 50%;
	width: 64px;
	height: 80px;
	transform: translateY(-50%);
	font-size: 20px;
	transition: transform 280ms var(--rns-ease), color 280ms var(--rns-ease);
}

.rns-lightbox__previous { left: 14px; }
.rns-lightbox__next { right: 14px; }
.rns-lightbox__previous:hover { transform: translate(-4px, -50%); }
.rns-lightbox__next:hover { transform: translate(4px, -50%); }

.rns-lightbox__close:focus-visible,
.rns-lightbox__previous:focus-visible,
.rns-lightbox__next:focus-visible {
	outline: 1px solid #fffaf5;
	outline-offset: 4px;
}

.rns-lightbox__meta {
	min-height: 68px;
	padding: 16px 30px 22px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 20px;
	border-top: 1px solid rgba(255, 250, 245, 0.18);
	font-family: "Helvetica Neue", "Hiragino Kaku Gothic ProN", sans-serif;
}

.rns-lightbox__caption {
	grid-column: 2;
	margin: 0;
	font-size: 11px;
	letter-spacing: 0.06em;
	text-align: center;
}

.rns-lightbox__count {
	grid-column: 3;
	justify-self: end;
	font-size: 9px;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.1em;
}

@media (max-width: 760px) {
	body.admin-bar .rns-page { min-height: calc(100vh - 46px); }
	.rns-shell { width: calc(100% - 36px); }
	.rns-masthead { padding: 0 18px; }
	.rns-header--front { min-height: 64px; }
	.rns-header--front nav { gap: 12px; font-size: 9px; }
	.rns-header--front nav a:first-child { display: none; }
	.rns-header--front > span { font-size: 14px; }
	.rns-title-logo { min-height: 440px; padding: 0 0 40px; }
	.rns-title-logo h1 img { width: min(84%, 390px); }
	.rns-title-foot { align-items: flex-start; }
	.rns-title-foot blockquote,
	.rns-title-foot p { font-size: 10px; }
	.rns-news { padding: 48px 0 96px; }
	.rns-section-bar { min-height: 64px; padding: 0 18px; }
	.rns-notice { min-height: 68px; grid-template-columns: 78px 1fr 18px; gap: 10px; }
	.rns-notice h2,
	.rns-notice h3 { font-size: 13px; }
	.rns-guide-link { min-height: 132px; grid-template-columns: 30px 1fr 22px; gap: 10px; }
	.rns-guide-link h2 { font-size: 24px; }

	.rns-header--inner {
		min-height: 92px;
		padding: 0 18px;
		grid-template-columns: 1fr auto;
	}
	.rns-brand { grid-column: 1; justify-self: start; }
	.rns-brand img { width: 94px; }
	.rns-header--inner nav { grid-column: 2; gap: 12px; font-size: 9px; }
	.rns-header--inner nav a:first-child { display: none; }

	.rns-article-intro,
	.rns-page-title {
		min-height: 240px;
		padding: 38px 18px 34px;
		grid-template-columns: 1fr;
	}
	.rns-article-title-group,
	.rns-page-title h1 { grid-column: 1; }
	.rns-article-title-group time { margin-bottom: 22px; font-size: 14px; }
	.rns-article-title-group h1,
	.rns-page-title h1 { font-size: 30px; }
	.rns-article-reading { padding: 76px 18px 88px; }
	.rns-article-content { width: 100%; margin-left: 0; font-size: 15px; line-height: 2.15; letter-spacing: 0.045em; }
	.rns-article-content figure:first-child { width: calc(100% + 36px); margin: -76px 0 76px -18px; }
	.rns-post-navigation { grid-template-columns: 1fr; }
	.rns-post-navigation a,
	.rns-post-navigation a:only-child {
		grid-column: 1;
		width: 100%;
		min-height: 118px;
		padding: 22px 18px;
		grid-template-columns: 1fr auto;
		grid-template-rows: auto 1fr;
		gap: 10px 14px;
		border-right: 0;
	}
	.rns-post-navigation strong { font-size: 14px; line-height: 1.55; }
	.rns-post-navigation b { font-size: 14px; }

	.rns-page-content { padding: 62px 18px 88px; font-size: 14px; line-height: 2.1; }
	.rns-page-content > * { max-width: none; margin-left: 0; }
	.rns-page-content h2,
	.rns-page-content h3 { margin-top: 72px; margin-bottom: 34px; font-size: 23px; }
	.rns-page-content hr,
	.rns-page-content .wp-block-separator { margin-top: 76px; }
	.rinshoji-page-temple .rns-page-content > h3:first-child {
		font-size: 24px;
	}
	.rinshoji-page-temple .rns-page-content > .rns-profile-panel {
		margin: -62px -18px 0;
		grid-template-columns: 1fr;
	}
	.rinshoji-page-temple .rns-profile-identity,
	.rinshoji-page-temple .rns-profile-contact {
		min-height: 230px;
		padding: 36px 24px;
	}
	.rinshoji-page-temple .rns-profile-identity h3 { font-size: 24px; }
	.rinshoji-page-memorial .rin-houji-lead {
		min-height: 220px;
		margin: 0;
		padding: 38px 24px;
		font-size: 15px;
	}
	.rinshoji-page-temple .rns-page-content > p:has(> img[src*="sagi2"]) {
		min-height: 0;
		padding: 0 24px 38px;
	}
	.rinshoji-page-temple .rns-page-content > p:has(> img[src*="sagi2"]) img {
		float: none;
		width: calc(100% + 48px);
		height: auto;
		margin: 0 -24px 34px;
	}
	.rinshoji-page-temple .rns-page-content > p.rns-origin-panel {
		min-height: 0 !important;
		padding: 0 !important;
		grid-template-columns: 1fr;
	}
	.rinshoji-page-temple .rns-origin-panel > img {
		width: 100% !important;
		height: auto !important;
		margin: 0 !important;
	}
	.rinshoji-page-temple .rns-origin-copy { padding: 38px 24px; }
	.rinshoji-page-temple .rns-page-content p:has(> a > img) {
		grid-template-columns: repeat(2, 1fr);
	}
	.rinshoji-page-temple .rns-page-content p:has(> a > img) img { height: 220px; }
	.rinshoji-page-temple .rns-activities {
		margin-top: 42px;
		grid-template-columns: 1fr;
	}
	.rinshoji-page-temple .rns-activity-heading img { height: auto; }
	.rinshoji-page-memorial .rns-page-content > .rin-houji {
		margin: -62px -18px 0;
		display: block;
	}
	.rinshoji-page-memorial .rin-houji-main-image { min-height: 0; margin: 0; }
	.rinshoji-page-memorial .rin-houji-main-image img { width: 100%; max-width: 100%; height: auto; }
	.rinshoji-page-memorial .rin-houji-section { padding: 68px 18px 54px; }
	.rinshoji-page-memorial .rin-houji-section h2 { font-size: 23px; }
	.rinshoji-page-memorial .rin-houji-years { font-size: 19px; }
	.rinshoji-page-memorial .rin-houji-step { padding: 36px 18px 40px; }
	.rinshoji-page-memorial .rin-houji-step h2 {
		margin-left: 0;
		grid-template-columns: 40px 1fr;
		font-size: 18px;
	}
	.rinshoji-page-memorial .rin-houji-step p { margin-left: 40px; }
	.rns-footer { min-height: 130px; grid-template-columns: 1fr auto; }
	.rns-lightbox__stage { padding: 74px 18px 22px; }
	.rns-lightbox__image { max-height: calc(100vh - 180px); }
	.rns-lightbox__close { top: 15px; right: 12px; }
	.rns-lightbox__previous,
	.rns-lightbox__next {
		top: auto;
		bottom: -54px;
		width: 54px;
		height: 54px;
		transform: none;
	}
	.rns-lightbox__previous { left: 10px; }
	.rns-lightbox__next { right: 10px; }
	.rns-lightbox__previous:hover { transform: translateX(-3px); }
	.rns-lightbox__next:hover { transform: translateX(3px); }
	.rns-lightbox__meta {
		min-height: 86px;
		padding: 16px 74px 20px;
		grid-template-columns: 1fr;
		gap: 7px;
	}
	.rns-lightbox__caption,
	.rns-lightbox__count { grid-column: 1; justify-self: center; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; }
	.rns-parallax-logo { animation: none !important; transform: none !important; }
	.rns-lightbox { transition: none; }
}
