/* ── neko ── */
/* Header / footer (保護猫ページのみ) */
.hd.hd-neko { background: transparent; }
.hd.hd-neko.scrolled {
  background: rgba(26, 10, 0, 0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 1px 0 rgba(224, 123, 48, 0.12);
}
.hd.hd-neko .nav a { color: rgba(255, 255, 255, 0.78); }
.hd.hd-neko.scrolled .nav a { color: rgba(255, 255, 255, 0.78); }
.hd.hd-neko .nav a:not(.nav-cta)::after { background: var(--amber); }
.hd.hd-neko .nav a:not(.nav-cta):hover,
.hd.hd-neko .nav a:not(.nav-cta).active { color: var(--amber-lt); }
.hd.hd-neko .nav a.nav-cta {
  background: var(--amber);
  color: var(--white);
}
.hd.hd-neko .nav a.nav-cta:hover {
  background: #c96a20;
  color: var(--white);
}
.hd.hd-neko .ham span { background: var(--white); }
.hd.hd-neko .logo:hover .logo-img--neko,
.ft.ft-neko .ft-logo:hover .logo-img--neko {
  filter: brightness(1.08);
}
.hd.hd-neko .logo-img--neko,
.ft.ft-neko .logo-img--neko {
  transition: filter 0.3s var(--ease), opacity 0.3s var(--ease);
}

.ft.ft-neko {
  background: linear-gradient(160deg, #0d0d0d 0%, #1a0a00 60%, #0d0d0d 100%);
  color: rgba(255, 255, 255, 0.75);
}
.ft.ft-neko .ft-tag { color: rgba(255, 255, 255, 0.32); }
.ft.ft-neko .ft-mail a { color: rgba(255, 255, 255, 0.4); }
.ft.ft-neko .ft-mail a:hover,
.ft.ft-neko .ft-links a:hover { color: var(--amber-lt); }
.ft.ft-neko .ft-col-h { color: rgba(224, 123, 48, 0.45); }
.ft.ft-neko .ft-links a { color: rgba(255, 255, 255, 0.42); }
.ft.ft-neko .ft-copy { color: rgba(255, 255, 255, 0.18); }

/* ── Neko page overrides ── */
/* Warm hero variant */
/* V6: neko hero → dark background with amber glow */
.page-hero-neko {
  padding: 160px 0 80px;
  background: linear-gradient(160deg, #0D0D0D 0%, #1A0A00 60%, #0D0D0D 100%);
  position: relative;
  overflow: hidden;
}
.page-hero-neko::before {
  content: '';
  position: absolute;
  right: -5%; top: 5%;
  width: 55vw; height: 55vw;
  background: radial-gradient(circle, rgba(224,123,48,0.2) 0%, transparent 65%);
  pointer-events: none;
}
.page-hero-neko::after {
  content: '';
  position: absolute;
  left: -5%; bottom: -5%;
  width: 35vw; height: 35vw;
  background: radial-gradient(circle, rgba(240,201,154,0.06) 0%, transparent 65%);
  pointer-events: none;
}
/* V6: white text on dark neko hero */
.page-hero-neko .page-hero-title { color: var(--white); }
.page-hero-neko .page-hero-sub { color: rgba(255,255,255,0.5); }
.page-hero-neko .page-hero-eyebrow { color: var(--amber); }
.page-hero-neko .page-hero-note {
  margin-top: 20px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.38);
  line-height: 1.7;
  letter-spacing: 0.02em;
}

.neko-site-link {
  padding: 80px 0;
  background: var(--ink);
  text-align: center;
}
.neko-site-link-eyebrow { color: var(--amber); }
.neko-site-link-title {
  font-family: var(--serif);
  font-size: clamp(22px, 2.8vw, 36px);
  color: var(--white);
  margin: 16px 0 12px;
}
.neko-site-link-desc {
  color: rgba(255, 255, 255, 0.5);
  font-size: 14px;
  margin: 0 0 32px;
}
.neko-site-link-btn {
  display: inline-block;
  padding: 14px 32px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--white);
  font-size: 13px;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: border-color 0.3s, color 0.3s;
  pointer-events: none;
  opacity: 0.72;
}
.neko-site-link-btn:is(:hover, :focus-visible) {
  border-color: var(--amber);
  color: var(--white);
}

/* ── Mission section ── */
.neko-mission {
  padding: 120px 0;
  background: var(--amber-pale);
}
.neko-mission-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.neko-mission-imgs {
  width: 100%;
  max-width: 420px;
  margin-inline: auto;
}
.neko-img-ph {
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  aspect-ratio: 3 / 4;
  transition: transform 0.4s var(--ease);
  background: var(--amber-pale);
}
.neko-img-ph img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.neko-img-ph:hover { transform: scale(1.02); }
.neko-img-ph::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.08) 0%, transparent 50%);
  pointer-events: none;
}
.neko-mission-txt-block {}
.neko-mission-h2 {
  font-family: var(--serif);
  font-size: clamp(22px, 2.8vw, 38px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.025em;
  color: var(--ink);
  margin: 16px 0 24px;
}
.neko-mission-body {
  font-size: 15px;
  color: #6A4E38;
  line-height: 2.15;
  margin-bottom: 20px;
}
.neko-mission-note {
  font-size: 11px;
  color: #8A6E58;
  line-height: 1.75;
  margin-bottom: 28px;
}
.neko-mission-note a {
  color: var(--amber);
  border-bottom: 1px solid rgba(224, 123, 48, 0.35);
}
.moco-page-neko .neko-mission .sec-ghost-num {
  margin-top: 8px;
}

/* ── Belief ── */
.neko-belief {
  padding: 120px 0;
  background: var(--white);
}
.neko-belief-lead {
  margin-top: 20px;
  font-size: 14px;
}
.neko-belief-list {
  list-style: none;
  margin: 64px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--line);
  border: 2px solid var(--line);
}
.neko-belief-item {
  background: var(--off-white);
  padding: 40px 36px;
}
.neko-belief-word {
  display: block;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 800;
  color: var(--amber);
  letter-spacing: 0.08em;
  margin-bottom: 14px;
}
.neko-belief-text {
  margin: 0;
  font-size: 13px;
  color: var(--mid);
  line-height: 1.9;
}
@media (max-width: 768px) {
  .neko-belief-list { grid-template-columns: 1fr; }
}

/* ── Activities (legacy) ── */
.neko-activities {
  padding: 120px 0;
  background: var(--white);
}
.activities-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 64px;
  max-width: 800px;
}
.activity-card {
  background: var(--off-white);
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid var(--line);
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.activity-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(201,106,32,0.12);
}
.activity-icon-wrap {
  padding: 36px 36px 0;
}
.activity-icon {
  width: 56px;
  height: 56px;
  background: var(--amber-pale);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}
.activity-body {
  padding: 20px 36px 36px;
}
.activity-num {
  font-family: var(--display);
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--amber);
  margin-bottom: 10px;
  display: block;
}
.activity-title {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 12px;
}
.activity-desc {
  font-size: 14px;
  color: var(--mid);
  line-height: 1.9;
}

/* ── Stats ── */
.neko-stats {
  padding: 100px 0;
  background: var(--ink);
  position: relative;
  overflow: hidden;
}
.neko-stats::before {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 70vw; height: 70vw;
  max-width: 600px; max-height: 600px;
  background: radial-gradient(circle, rgba(240,201,154,0.1) 0%, transparent 65%);
  pointer-events: none;
}
.neko-stats-inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  position: relative;
  z-index: 1;
}
.neko-stat {
  text-align: center;
  padding: 0 40px;
  position: relative;
}
.neko-stat + .neko-stat::before {
  content: '';
  position: absolute;
  left: 0; top: 10%;
  height: 80%;
  width: 1px;
  background: rgba(247,244,239,0.07);
}
.neko-stat-icon {
  font-size: 28px;
  margin-bottom: 16px;
  display: block;
}
.neko-stat-num {
  font-family: var(--serif);
  font-size: clamp(36px, 5vw, 60px);
  font-weight: 700;
  color: var(--paper);
  line-height: 1;
  letter-spacing: -0.03em;
  display: block;
}
.neko-stat-num .unit {
  font-size: 0.42em;
  font-weight: 400;
  color: var(--amber-lt);
  margin-left: 3px;
}
.neko-stat-label {
  font-family: var(--display);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--amber);
  display: block;
  margin-top: 10px;
}
.neko-stat-note {
  font-size: 11px;
  color: rgba(247,244,239,0.28);
  margin-top: 6px;
  line-height: 1.6;
}

/* ── Gallery ── */
.neko-gallery {
  padding: 120px 0;
  background: var(--amber-pale);
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto auto;
  gap: 12px;
  margin-top: 56px;
}
.gallery-item {
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
  transition: transform 0.4s var(--ease);
}
.gallery-item:hover { transform: scale(1.02); }
.gallery-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.06) 0%, transparent 50%);
}
.gallery-item:nth-child(1) {
  aspect-ratio: 4/3;
  background: linear-gradient(155deg, #D4906A 0%, #B06030 55%, #8A4018 100%);
}
.gallery-item:nth-child(2) {
  aspect-ratio: 4/3;
  background: linear-gradient(145deg, #C88050 0%, #E8A870 55%, #C07840 100%);
}
.gallery-item:nth-child(3) {
  grid-row: 1 / 3;
  grid-column: 3;
  aspect-ratio: auto;
  min-height: 300px;
  background: linear-gradient(170deg, #B86828 0%, #D08840 55%, #B87040 100%);
}
.gallery-item:nth-child(4) {
  aspect-ratio: 4/3;
  background: linear-gradient(130deg, #E8C090 0%, #C89060 55%, #A86838 100%);
}
.gallery-item:nth-child(5) {
  aspect-ratio: 4/3;
  background: linear-gradient(150deg, #C07848 0%, #A05A28 55%, #884018 100%);
}
.gallery-item-label {
  position: absolute;
  bottom: 14px;
  left: 16px;
  font-family: var(--display);
  font-size: 9px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(247,244,239,0.4);
  z-index: 1;
}

/* ── Cats for adoption ── */
.neko-adopt {
  padding: 120px 0;
  background: var(--white);
}
.cats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 64px;
}
.cat-card {
  background: var(--white);
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid var(--line);
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.cat-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(201,106,32,0.12);
}
.cat-photo {
  width: 100%;
  aspect-ratio: 4/3;
  position: relative;
  overflow: hidden;
}
.cat-photo-inner {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 52px;
  position: relative;
}
.cat-photo-inner::before {
  content: '';
  position: absolute;
  inset: 0;
}
.cat-photo-inner span { position: relative; z-index: 1; }
.cat-card:nth-child(1) .cat-photo-inner { background: linear-gradient(145deg, #D4906A 0%, #C07840 100%); }
.cat-card:nth-child(2) .cat-photo-inner { background: linear-gradient(145deg, #E8C090 0%, #C89060 100%); }
.cat-card:nth-child(3) .cat-photo-inner { background: linear-gradient(145deg, #B86828 0%, #D08840 100%); }
.cat-status {
  position: absolute;
  top: 14px;
  left: 14px;
  font-family: var(--display);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  background: var(--amber);
  color: var(--ink);
  padding: 5px 12px;
  border-radius: 2px;
  z-index: 2;
}
.cat-body {
  padding: 24px 26px 30px;
}
.cat-name {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 6px;
}
.cat-age {
  font-size: 12px;
  color: var(--mid);
  margin-bottom: 14px;
}
.cat-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.cat-tag {
  font-size: 11px;
  color: var(--amber);
  background: var(--amber-pale);
  padding: 4px 10px;
  border-radius: 2px;
}
.cat-desc {
  font-size: 13px;
  color: var(--mid);
  line-height: 1.85;
}

/* ── Contact section ── */
.neko-contact {
  padding: 100px 0;
  background: var(--amber-pale);
}
.neko-contact-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.neko-contact-h2 {
  font-family: var(--serif);
  font-size: clamp(26px, 3.5vw, 40px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.025em;
  color: var(--ink);
  margin: 16px 0 20px;
}
.neko-contact-body {
  font-size: 15px;
  color: #6A4E38;
  line-height: 2;
  margin-bottom: 36px;
}
.neko-contact-form {
  background: var(--white);
  border-radius: 4px;
  padding: 40px;
  border: 1px solid rgba(201,106,32,0.15);
}
.neko-form-group {
  margin-bottom: 20px;
}
.neko-form-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 8px;
  letter-spacing: 0.04em;
}
.neko-form-input,
.neko-form-textarea {
  width: 100%;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 2px;
  padding: 12px 16px;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--ink);
  transition: border-color 0.25s;
  outline: none;
}
.neko-form-input:focus,
.neko-form-textarea:focus { border-color: var(--amber); }
.neko-form-textarea { resize: vertical; min-height: 100px; }
.neko-form-submit {
  width: 100%;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 16px;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  transition: background 0.25s, transform 0.3s var(--spring);
}
.neko-form-submit:hover { background: var(--amber); transform: translateY(-2px); }
.neko-form-note {
  font-size: 11px;
  color: var(--mid);
  text-align: center;
  margin-top: 12px;
  line-height: 1.7;
}

@media (max-width: 1024px) {
  .neko-stats-inner { grid-template-columns: repeat(2, 1fr); gap: 48px 0; }
  .neko-stat + .neko-stat:nth-child(3)::before { display: none; }
}
@media (max-width: 768px) {
  .page-hero-neko { padding: 120px 0 60px; }
  .neko-mission-inner { grid-template-columns: 1fr; gap: 48px; }
  .activities-grid { grid-template-columns: 1fr; }
  .neko-stats-inner { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-item:nth-child(3) { grid-row: auto; grid-column: auto; min-height: auto; }
  .cats-grid { grid-template-columns: 1fr; }
  .neko-contact-inner { grid-template-columns: 1fr; gap: 48px; }
}
@media (max-width: 480px) {
  .neko-stats-inner { grid-template-columns: 1fr; }
  .neko-stat + .neko-stat::before { display: none; }
  .gallery-grid { grid-template-columns: 1fr; }
}