/**
 * REIKOU — Dark mountain editorial · red offset frames
 * Prefix: rko- · Bebas Neue + Noto Sans JP
 */
:root {
  --rko-black: #121212;
  --rko-black-soft: #1a1a1a;
  --rko-red: #E53935;
  --rko-teal: #4a6b6b;
  --rko-teal-deep: #3d5858;
  --rko-white: #f5f5f5;
  --rko-muted: rgba(245, 245, 245, 0.68);
  --rko-muted-dim: rgba(245, 245, 245, 0.42);
  --rko-font-display: "Bebas Neue", "Noto Sans JP", sans-serif;
  --rko-font-body: "Noto Sans JP", "Hiragino Sans", sans-serif;
  --rko-wrap: 72rem;
  --rko-header-h: 4.5rem;
  --rko-ease: cubic-bezier(0.22, 0.8, 0.28, 1);
}

*, *::before, *::after { box-sizing: border-box; }

:focus-visible {
  outline: 2px solid var(--rko-red);
  outline-offset: 2px;
}

html { scroll-behavior: smooth; overflow-x: hidden; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

body.site-reikou {
  margin: 0; min-height: 100vh; display: flex; flex-direction: column;
  font-family: var(--rko-font-body); font-size: 0.95rem; color: var(--rko-white);
  background: var(--rko-black); line-height: 1.8; overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
main { flex: 1; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; transition: color 0.3s var(--rko-ease), border-color 0.3s var(--rko-ease), transform 0.3s var(--rko-ease); }
button, input, select, textarea { font: inherit; color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, p { margin: 0; }
address { font-style: normal; }
::selection { background: rgba(229, 57, 53, 0.35); color: var(--rko-white); }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; left: 1rem; top: 1rem; z-index: 200; clip: auto; overflow: visible; padding: 0.6rem 1rem; background: var(--rko-red); color: var(--rko-white); }

.rko-wrap { width: min(100% - 2.25rem, var(--rko-wrap)); margin-inline: auto; }
@media (min-width: 768px) { .rko-wrap { width: min(100% - 3.5rem, var(--rko-wrap)); } }
.rko-hide-sm { display: none; }
@media (min-width: 640px) { .rko-hide-sm { display: inline; } }
.rko-mt { margin-top: 0.75rem; }

.rko-kicker { font-family: var(--rko-font-display); font-size: 0.85rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rko-red); }
.rko-kicker--light { color: rgba(245, 245, 245, 0.75); }
.rko-section__title { font-family: var(--rko-font-display); font-size: clamp(2rem, 4.5vw, 3.2rem); line-height: 1.15; letter-spacing: 0.04em; margin-top: 0.5rem; }
.rko-section__title em { font-style: normal; color: var(--rko-red); }
.rko-section__lead { margin-top: 0.9rem; max-width: 32rem; font-size: 0.92rem; color: var(--rko-muted); font-weight: 300; }
.rko-body { margin-top: 1rem; color: var(--rko-muted); font-weight: 300; max-width: 36em; }
.rko-section__head { margin-bottom: 2.75rem; }
.rko-section__head--center { text-align: center; }
.rko-section__head--center .rko-section__lead { margin-inline: auto; }
.rko-section__head--row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.25rem; }

.rko-frame { position: absolute; width: min(72%, 18rem); height: min(55%, 11rem); border: 1px solid var(--rko-red); pointer-events: none; z-index: 0; top: -1.25rem; right: -0.5rem; opacity: 0.85; animation: rko-frame-pulse 6s var(--rko-ease) infinite; }
.rko-frame--offset-left { right: auto; left: -1.5rem; top: 1rem; }
.rko-frame--offset-right { right: -1.5rem; left: auto; top: 0.5rem; }
@keyframes rko-frame-pulse { 0%, 100% { opacity: 0.65; transform: translate(0,0); } 50% { opacity: 1; transform: translate(4px,-4px); } }

.rko-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 2.85rem; padding: 0.65rem 1.6rem; font-family: var(--rko-font-display); font-size: 0.95rem; letter-spacing: 0.12em; text-transform: uppercase; border: 1px solid transparent; cursor: pointer; transition: background 0.35s var(--rko-ease), transform 0.35s var(--rko-ease); }
.rko-btn:hover { transform: translateY(-2px); }
.rko-btn--teal { background: var(--rko-teal); color: var(--rko-white); }
.rko-btn--teal:hover { background: var(--rko-teal-deep); }
.rko-btn--ghost { background: transparent; border-color: rgba(245,245,245,0.28); color: var(--rko-white); }
.rko-btn--ghost:hover { border-color: var(--rko-red); color: var(--rko-red); }
.rko-btn--ghost-light { background: transparent; border: 1px solid rgba(245,245,245,0.35); color: var(--rko-white); }
.rko-btn--ghost-light:hover { border-color: var(--rko-white); }

.rko-read-more { display: inline-flex; align-items: center; gap: 0.65rem; margin-top: 1.5rem; font-family: var(--rko-font-display); font-size: 0.9rem; letter-spacing: 0.18em; color: rgba(245,245,245,0.45); position: relative; z-index: 1; }
.rko-read-more::after { content: ""; width: 2.5rem; height: 1px; background: var(--rko-red); transform: scaleX(0.3); transform-origin: left; transition: transform 0.4s var(--rko-ease); }
.rko-read-more:hover { color: var(--rko-white); }
.rko-read-more:hover::after { transform: scaleX(1); }

.rko-header { position: sticky; top: 0; inset: auto; z-index: 90; height: var(--rko-header-h); background: rgba(18,18,18,0.92); border-bottom: 1px solid rgba(229,57,53,0.15); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transition: background 0.4s var(--rko-ease), border-color 0.4s var(--rko-ease), box-shadow 0.4s var(--rko-ease); }
.rko-header--over-hero { background: rgba(18,18,18,0.75); border-bottom: 1px solid rgba(255,255,255,0.08); }
.rko-header--solid, .rko-header.is-scrolled { background: rgba(18,18,18,0.98); border-bottom: 1px solid rgba(229,57,53,0.25); box-shadow: 0 8px 32px rgba(0,0,0,0.35); }
.rko-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: 100%; }
.rko-brand { display: flex; align-items: center; gap: 0.75rem; }
.rko-brand__seal { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: 1px solid var(--rko-red); border-radius: 50%; font-size: 0.75rem; color: var(--rko-red); }
.rko-brand__en { display: block; font-family: var(--rko-font-display); font-size: 1.35rem; letter-spacing: 0.14em; line-height: 1; }
.rko-brand__jp { display: block; font-size: 0.62rem; color: var(--rko-muted-dim); margin-top: 0.15rem; }
.rko-nav { display: none; gap: 1.5rem; }
@media (min-width: 960px) { .rko-nav { display: flex; } }
.rko-nav__link { font-size: 0.78rem; letter-spacing: 0.08em; color: var(--rko-muted); position: relative; }
.rko-nav__link::after { content: ""; position: absolute; left: 0; bottom: -0.35rem; width: 100%; height: 1px; background: var(--rko-red); transform: scaleX(0); transform-origin: left; transition: transform 0.35s var(--rko-ease); }
.rko-nav__link:hover, .rko-nav__link[aria-current="page"] { color: var(--rko-white); }
.rko-nav__link[aria-current="page"]::after, .rko-nav__link:hover::after { transform: scaleX(1); }
.rko-header__cta { display: none; padding: 0.5rem 1.1rem; font-family: var(--rko-font-display); font-size: 0.85rem; letter-spacing: 0.1em; background: var(--rko-teal); color: var(--rko-white); }
@media (min-width: 960px) { .rko-header__cta { display: inline-flex; } .rko-header__cta:hover { background: var(--rko-teal-deep); } }
.rko-menu-btn { display: flex; flex-direction: column; justify-content: center; gap: 0.45rem; width: 2.5rem; height: 2.5rem; padding: 0; background: none; border: none; cursor: pointer; position: relative; z-index: 210; }
@media (min-width: 960px) { .rko-menu-btn { display: none; } }
.rko-menu-btn span { display: block; width: 100%; height: 1px; background: var(--rko-white); transition: transform 0.3s var(--rko-ease); }
body.nav-open .rko-menu-btn span:first-child { transform: translateY(6px) rotate(45deg); }
body.nav-open .rko-menu-btn span:last-child { transform: translateY(-6px) rotate(-45deg); }
.rko-nav-mobile { position: fixed; inset: 0; z-index: 200; display: flex; justify-content: flex-end; pointer-events: none; visibility: hidden; opacity: 0; transition: opacity 0.3s var(--rko-ease), visibility 0.3s; }
.rko-nav-mobile.is-open { pointer-events: auto; visibility: visible; opacity: 1; }
.rko-nav-mobile[hidden] { display: none !important; }
.rko-nav-mobile__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.55); border: none; cursor: pointer; }
.rko-nav-mobile__inner { position: relative; z-index: 1; width: min(100%, 20rem); height: 100%; margin: 0; padding: calc(var(--rko-header-h) + 1.5rem) 1.5rem 2rem; display: flex; flex-direction: column; gap: 1.25rem; background: rgba(18, 18, 18, 0.98); overflow-y: auto; border-left: 1px solid rgba(229, 57, 53, 0.25); transform: translateX(100%); transition: transform 0.35s var(--rko-ease); }
.rko-nav-mobile.is-open .rko-nav-mobile__inner { transform: translateX(0); }
.rko-nav-mobile__inner a { font-family: var(--rko-font-display); font-size: 1.4rem; letter-spacing: 0.1em; }
.rko-nav-mobile__meta { margin-top: auto; font-size: 0.85rem; color: var(--rko-muted); }
body.nav-open { overflow: hidden; }
body.nav-open .rko-header { z-index: 210; }

.rko-hero { position: relative; min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; padding: calc(var(--rko-header-h) + 2rem) 0 4rem; overflow: hidden; }
.rko-hero__mountain { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(18,18,18,0.55) 0%, rgba(18,18,18,0.92) 75%, var(--rko-black) 100%), url("../images/hero/mountain.jpg") center 70% / cover no-repeat; filter: grayscale(100%) contrast(1.05); opacity: 0.55; z-index: 0; }
.rko-hero__line { position: absolute; height: 1px; background: linear-gradient(90deg, transparent, var(--rko-red), transparent); z-index: 1; opacity: 0.6; }
.rko-hero__line--a { top: 28%; left: -10%; width: 45%; animation: rko-line-slide 8s linear infinite; }
.rko-hero__line--b { bottom: 22%; right: -10%; width: 38%; animation: rko-line-slide 10s linear infinite reverse; }
@keyframes rko-line-slide { 0% { transform: translateX(-20%); opacity: 0; } 20%, 80% { opacity: 0.7; } 100% { transform: translateX(120%); opacity: 0; } }
.rko-hero__grid { position: relative; z-index: 2; display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { .rko-hero__grid { grid-template-columns: 1fr 1fr; gap: 3rem; } }
.rko-hero__brand { display: block; font-family: var(--rko-font-display); font-size: clamp(3rem, 8vw, 5.5rem); letter-spacing: 0.08em; line-height: 0.95; }
.rko-hero__line-text { display: block; margin-top: 0.5rem; font-size: clamp(1.1rem, 2.5vw, 1.45rem); font-weight: 300; letter-spacing: 0.04em; line-height: 1.6; }
.rko-hero__line-text em { font-style: normal; color: var(--rko-red); }
.rko-hero__lead { margin-top: 1.25rem; max-width: 26rem; color: var(--rko-muted); font-weight: 300; font-size: 0.92rem; }
.rko-hero__cta { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: 2rem; }
.rko-hero__visual { position: relative; }
.rko-hero__frame { position: relative; overflow: hidden; aspect-ratio: 4/5; max-width: 28rem; margin-inline: auto; }
.rko-hero__frame::before { content: ""; position: absolute; inset: 0; border: 1px solid rgba(229,57,53,0.4); transform: translate(12px,12px); z-index: 2; pointer-events: none; }
.rko-hero__img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(30%) contrast(1.05); }

.rko-seal { position: absolute; bottom: -1rem; left: -0.5rem; width: 5.5rem; height: 5.5rem; display: grid; place-items: center; z-index: 3; }
@media (min-width: 900px) { .rko-seal { left: -2rem; bottom: 2rem; } }
.rko-seal__ring { position: absolute; inset: 0; border: 1px solid var(--rko-red); border-radius: 50%; animation: rko-seal-spin 20s linear infinite; }
.rko-seal__ring::before { content: ""; position: absolute; inset: 6px; border: 1px solid rgba(229,57,53,0.35); border-radius: 50%; }
@keyframes rko-seal-spin { to { transform: rotate(360deg); } }
.rko-seal__char { font-size: 1.5rem; color: var(--rko-red); position: relative; z-index: 1; }
.rko-seal__sub { position: absolute; bottom: 0.85rem; font-family: var(--rko-font-display); font-size: 0.45rem; letter-spacing: 0.2em; color: var(--rko-muted-dim); }

.rko-stats { padding: 2.5rem 0; border-block: 1px solid rgba(229,57,53,0.15); background: var(--rko-black-soft); }
.rko-stats__grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.5rem; }
@media (min-width: 768px) { .rko-stats__grid { grid-template-columns: repeat(4,1fr); } }
.rko-stat { text-align: center; }
.rko-stat__num { font-family: var(--rko-font-display); font-size: clamp(2rem, 4vw, 2.75rem); letter-spacing: 0.06em; color: var(--rko-red); }
.rko-stat__label { margin-top: 0.35rem; font-size: 0.75rem; color: var(--rko-muted-dim); }

.rko-section { position: relative; padding: 5rem 0; }
.rko-section--mountain { overflow: hidden; }
.rko-section--dark { background: var(--rko-black-soft); }
.rko-mountain-bg { position: absolute; inset: 0; background: linear-gradient(rgba(18,18,18,0.88), rgba(18,18,18,0.92)), url("../images/hero/mountain.jpg") center / cover no-repeat; filter: grayscale(100%); opacity: 0.35; pointer-events: none; }
.rko-mountain-bg + .rko-wrap { position: relative; z-index: 1; }

.rko-split { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 860px) { .rko-split { grid-template-columns: 1fr 1fr; gap: 3.5rem; } .rko-split--flip .rko-split__media { order: 2; } .rko-split--flip .rko-split__copy { order: 1; } }
.rko-split__media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; filter: grayscale(40%) contrast(1.05); }
.rko-split__copy { position: relative; padding: 1rem 0; }
.rko-split__en { font-family: var(--rko-font-display); font-size: 0.85rem; letter-spacing: 0.2em; color: var(--rko-red); position: relative; z-index: 1; }
.rko-split__title { margin-top: 0.5rem; font-family: var(--rko-font-display); font-size: clamp(1.75rem, 3vw, 2.5rem); letter-spacing: 0.06em; position: relative; z-index: 1; }
.rko-split__text { margin-top: 1rem; color: var(--rko-muted); font-weight: 300; max-width: 28rem; position: relative; z-index: 1; }
.rko-collection .rko-split + .rko-split { margin-top: 4rem; }

.rko-featured { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 860px) { .rko-featured { grid-template-columns: 1.1fr 0.9fr; } }
.rko-featured__media img { width: 100%; aspect-ratio: 4/3; object-fit: cover; filter: grayscale(35%); }
.rko-featured__copy { position: relative; padding: 1rem 0; }

.rko-process { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .rko-process { grid-template-columns: repeat(4,1fr); } }
.rko-process__step { padding: 1.5rem; border: 1px solid rgba(229,57,53,0.2); background: rgba(26,26,26,0.6); position: relative; }
.rko-process__step::before { content: ""; position: absolute; top: 0; left: 0; width: 2rem; height: 1px; background: var(--rko-red); animation: rko-line-grow 3s var(--rko-ease) infinite; }
@keyframes rko-line-grow { 0%, 100% { width: 1.5rem; opacity: 0.5; } 50% { width: 3rem; opacity: 1; } }
.rko-process__n { font-family: var(--rko-font-display); font-size: 1.1rem; color: var(--rko-red); }
.rko-process__en { margin-top: 0.5rem; font-family: var(--rko-font-display); font-size: 0.9rem; letter-spacing: 0.15em; color: var(--rko-muted-dim); }
.rko-process__jp { margin-top: 0.35rem; font-size: 1rem; font-weight: 500; }
.rko-process__d { margin-top: 0.65rem; font-size: 0.85rem; color: var(--rko-muted); font-weight: 300; }

.rko-list { margin-top: 1.25rem; position: relative; z-index: 1; }
.rko-list li { padding: 0.45rem 0 0.45rem 1rem; border-left: 1px solid var(--rko-red); font-size: 0.88rem; color: var(--rko-muted); }
.rko-list li + li { margin-top: 0.35rem; }

.rko-journal { display: grid; gap: 2rem; }
@media (min-width: 768px) { .rko-journal { grid-template-columns: repeat(3,1fr); } .rko-journal--page { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1024px) { .rko-journal--page { grid-template-columns: repeat(3,1fr); } }
.rko-journal__card { border: 1px solid rgba(245,245,245,0.06); background: var(--rko-black-soft); transition: border-color 0.35s var(--rko-ease), transform 0.35s var(--rko-ease); }
.rko-journal__card:hover { border-color: rgba(229,57,53,0.35); transform: translateY(-3px); }
.rko-journal__card img { width: 100%; aspect-ratio: 16/10; object-fit: cover; filter: grayscale(50%); }
.rko-journal__card h2, .rko-journal__card h3 { padding: 0 1.25rem; margin-top: 0.85rem; font-size: 1rem; font-weight: 500; line-height: 1.5; }
.rko-journal__card p { padding: 0.5rem 1.25rem 1.25rem; font-size: 0.85rem; color: var(--rko-muted); font-weight: 300; }
.rko-journal__card .rko-read-more { margin: 0 1.25rem 1.25rem; }
.rko-journal__meta { display: flex; justify-content: space-between; padding: 0.85rem 1.25rem 0; font-size: 0.72rem; color: var(--rko-muted-dim); }
.rko-journal__meta span { color: var(--rko-red); }

.rko-cta { position: relative; padding: 5rem 0; text-align: center; overflow: hidden; }
.rko-cta--compact { padding: 3.5rem 0; }
.rko-cta__mountain { position: absolute; inset: 0; background: linear-gradient(rgba(18,18,18,0.8), rgba(18,18,18,0.95)), url("../images/hero/mountain.jpg") center / cover no-repeat; filter: grayscale(100%); opacity: 0.4; }
.rko-cta__inner { position: relative; z-index: 1; }
.rko-cta__title { font-family: var(--rko-font-display); font-size: clamp(2rem, 4vw, 3rem); letter-spacing: 0.06em; }
.rko-cta__lead { margin-top: 1rem; color: var(--rko-muted); font-weight: 300; }
.rko-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.85rem; margin-top: 2rem; }
.rko-cta__hours { margin-top: 1.5rem; font-size: 0.82rem; color: var(--rko-muted-dim); }

.rko-banner { position: relative; min-height: 42vh; display: flex; align-items: flex-end; padding: calc(var(--rko-header-h) + 2rem) 0 2.5rem; }
.rko-banner__media { position: absolute; inset: 0; }
.rko-banner__img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(60%) contrast(1.05); }
.rko-banner__veil { position: absolute; inset: 0; background: linear-gradient(to top, rgba(18,18,18,0.95) 15%, rgba(18,18,18,0.5) 100%); }
.rko-banner__content { position: relative; z-index: 1; width: 100%; }
.rko-banner__title { font-family: var(--rko-font-display); font-size: clamp(2.2rem, 5vw, 3.5rem); letter-spacing: 0.06em; margin-top: 0.5rem; }
.rko-banner__lead { margin-top: 0.75rem; max-width: 28rem; color: var(--rko-muted); font-weight: 300; }
.rko-crumb { display: flex; flex-wrap: wrap; gap: 0.5rem; font-size: 0.75rem; color: var(--rko-muted-dim); margin-bottom: 0.75rem; }
.rko-crumb a:hover { color: var(--rko-red); }

.rko-product-list { margin-top: 1.25rem; position: relative; z-index: 1; }
.rko-product-list li { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.65rem 0; border-bottom: 1px solid rgba(245,245,245,0.08); }
.rko-product-list__name { font-weight: 500; font-size: 0.9rem; }
.rko-product-list__spec { font-size: 0.78rem; color: var(--rko-muted-dim); }
.rko-product-grid { display: grid; gap: 1.5rem; margin-top: 3rem; }
@media (min-width: 768px) { .rko-product-grid { grid-template-columns: repeat(3,1fr); } }
.rko-product-card figcaption { padding: 0.85rem 0; }
.rko-product-card strong { display: block; font-size: 0.88rem; }
.rko-product-card span { font-size: 0.75rem; color: var(--rko-muted-dim); }
.rko-product-card img { width: 100%; aspect-ratio: 4/5; object-fit: cover; filter: grayscale(45%); }
.rko-mini-process { margin-top: 1.25rem; position: relative; z-index: 1; }
.rko-mini-process li { display: grid; grid-template-columns: 2rem 1fr; gap: 0.25rem 0.75rem; padding: 0.65rem 0; border-bottom: 1px solid rgba(245,245,245,0.06); font-size: 0.85rem; color: var(--rko-muted); }
.rko-mini-process__n { grid-row: span 2; font-family: var(--rko-font-display); color: var(--rko-red); }
.rko-mini-process strong { color: var(--rko-white); font-weight: 500; }

.rko-principles { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .rko-principles { grid-template-columns: repeat(3,1fr); } }
.rko-principle { padding: 1.75rem; border: 1px solid rgba(229,57,53,0.2); background: rgba(18,18,18,0.7); }
.rko-principle__n { font-family: var(--rko-font-display); color: var(--rko-red); }
.rko-principle h3 { margin-top: 0.65rem; font-size: 1.05rem; }
.rko-principle p { margin-top: 0.5rem; font-size: 0.85rem; color: var(--rko-muted); font-weight: 300; }
.rko-team { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .rko-team { grid-template-columns: repeat(3,1fr); } }
.rko-team__card img { width: 100%; aspect-ratio: 4/5; object-fit: cover; filter: grayscale(50%); }
.rko-team__card figcaption { padding: 0.85rem 0; }
.rko-team__card strong { display: block; font-size: 0.9rem; }
.rko-team__card span { font-size: 0.78rem; color: var(--rko-muted-dim); }
.rko-address p { margin-top: 0.5rem; color: var(--rko-muted); font-size: 0.9rem; position: relative; z-index: 1; }

.rko-contact__grid { display: grid; gap: 3rem; }
@media (min-width: 860px) { .rko-contact__grid { grid-template-columns: 1fr 1fr; } }
.rko-contact__info { position: relative; }
.rko-contact__address { margin-top: 1.5rem; font-size: 0.9rem; color: var(--rko-muted); }
.rko-contact__address a:hover { color: var(--rko-red); }
.rko-contact__studio { font-weight: 500; color: var(--rko-white); margin-bottom: 0.5rem; }
.rko-form { display: flex; flex-direction: column; gap: 1.25rem; padding: 1.75rem; border: 1px solid rgba(229,57,53,0.2); background: var(--rko-black-soft); }
.rko-form__field label { display: block; margin-bottom: 0.4rem; font-size: 0.82rem; color: var(--rko-muted); }
.rko-form__field input, .rko-form__field select, .rko-form__field textarea { width: 100%; padding: 0.75rem 0.9rem; background: var(--rko-black); border: 1px solid rgba(245,245,245,0.12); color: var(--rko-white); }
.rko-form__field input:focus, .rko-form__field select:focus, .rko-form__field textarea:focus { outline: none; border-color: var(--rko-red); }
.rko-form-error { padding: 0.75rem 1rem; margin-bottom: 1rem; background: rgba(229,57,53,0.15); border: 1px solid var(--rko-red); font-size: 0.88rem; }
.rko-form-success { padding: 2rem; border: 1px solid rgba(74,107,107,0.5); background: rgba(74,107,107,0.12); }
.rko-form-success__title { font-family: var(--rko-font-display); font-size: 1.4rem; letter-spacing: 0.08em; margin-bottom: 0.5rem; }

.rko-footer { border-top: 1px solid rgba(229,57,53,0.2); background: var(--rko-black-soft); }
.rko-footer__top { display: grid; gap: 2rem; padding: 3rem 0 2rem; }
@media (min-width: 768px) { .rko-footer__top { grid-template-columns: 1.2fr 1fr 1fr; } }
.rko-footer__name { font-family: var(--rko-font-display); font-size: 1.5rem; letter-spacing: 0.12em; }
.rko-footer__jp { margin-top: 0.25rem; font-size: 0.78rem; color: var(--rko-muted-dim); }
.rko-footer__tag { margin-top: 0.75rem; font-size: 0.85rem; color: var(--rko-muted); font-weight: 300; }
.rko-footer__nav { display: flex; flex-direction: column; gap: 0.55rem; }
.rko-footer__nav a { font-size: 0.82rem; color: var(--rko-muted); }
.rko-footer__nav a:hover { color: var(--rko-red); }
.rko-footer__contact { font-size: 0.82rem; color: var(--rko-muted); line-height: 1.7; }
.rko-footer__contact a:hover { color: var(--rko-red); }
.rko-footer__bottom { border-top: 1px solid rgba(245,245,245,0.06); padding: 1.25rem 0 2rem; }
.rko-footer__bottom-inner { display: flex; flex-direction: column; gap: 0.5rem; font-size: 0.72rem; color: var(--rko-muted-dim); }

.rko-reveal { opacity: 1; transform: translateY(1rem); transition: transform 0.7s var(--rko-ease); transition-delay: var(--d, 0ms); }
.rko-reveal.is-in { transform: translateY(0); }
html:not(.js) .rko-reveal { transform: none; }
body.nav-open { overflow: hidden; }

@media (max-width: 767px) {
  .rko-hero__grid { grid-template-columns: 1fr; }
  .rko-collection__grid { grid-template-columns: 1fr; }
  .rko-stats__grid { grid-template-columns: repeat(2, 1fr); }
  .rko-footer__grid { grid-template-columns: 1fr; }
  .rko-contact-grid { grid-template-columns: 1fr; }
}

/* Local + mobile width fixes */
html { width: 100%; max-width: 100%; overflow-x: hidden; }
body.site-reikou { width: 100%; max-width: 100%; min-width: 0; }
.rko-wrap {
  width: min(calc(100% - 2.25rem), 72rem);
  max-width: 100%;
  margin-inline: auto;
}
.rko-hero__grid > *,
.rko-split > * { min-width: 0; }
@media (max-width: 767px) {
  .rko-frame { display: none; }
  .rko-seal { position: relative; left: auto; bottom: auto; margin-top: 1rem; }
}
