/* ============================================
   Recovery Warm — NICORI palette override
   Cream beige + persimmon orange + storybook charm
   ============================================ */

:root {
  --bg: #FAF1DC;
  --bg-cream: #FDF6E3;
  --bg-paper: #F8E8C5;
  --bg-mist: #FDF6E3;
  --bg-sage: #EAEFD0;
  --bg-peach: #FBE3CB;
  --bg-sky: #E5ECEA;

  --ink: #2A1F12;
  --ink-2: #5C4A35;
  --ink-3: #9A8770;

  --sage: #5BAE68;
  --sage-deep: #4A8E54;
  --peach: #FCC93A;
  --peach-deep: #EF6F2D;
  --gold: #FCC93A;
  --sky: #5C9BB0;

  --orange: #EF6F2D;
  --orange-deep: #D85820;

  --line: #E8D9B4;
  --max: 1240px;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
}

/* === Header rebrand === */
.site-header {
  background: rgba(250, 241, 220, 0.95);
  border-bottom: 0;
}
.site-logo__mark {
  width: 44px; height: 44px;
  background: transparent;
  border: 0;
  position: relative;
}
.site-logo__mark::before,
.site-logo__mark::after {
  content: "";
  position: absolute;
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 3px solid var(--orange);
  top: 50%;
  transform: translateY(-50%);
}
.site-logo__mark::before { left: 0; background: transparent; opacity: 1; mix-blend-mode: normal; inset: auto; }
.site-logo__mark::after  { right: 0; background: transparent; opacity: 1; mix-blend-mode: normal; inset: auto; left: auto; }

/* Buttons rebrand to orange */
.btn-entry {
  background: var(--orange);
  color: #fff;
  border-radius: 10px;
  padding: 12px 22px;
  box-shadow: 0 4px 0 var(--orange-deep);
}
.btn-entry:hover {
  background: var(--orange-deep);
  transform: translateY(-2px);
  box-shadow: 0 6px 0 var(--orange-deep);
}
.btn-entry::after { display: none; }
.cta__btn {
  background: var(--orange);
  box-shadow: 0 6px 0 var(--orange-deep);
  border-radius: 10px;
  padding: 14px 32px;
}
.cta__btn:hover { background: var(--orange-deep); box-shadow: 0 8px 0 var(--orange-deep); }

/* Hero */
.hero { padding: 120px 0 60px; }
.hero__title { font-family: "Shippori Mincho", "Noto Serif JP", serif; font-weight: 700; }
.hero__title em { color: var(--orange); }
.hero__title em::after { background: var(--bg-peach); height: 14px; }
.hero__badge {
  background: #fff;
  border: 1px solid var(--line);
  color: var(--ink);
  border-radius: 999px;
}
.hero__badge::before {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--orange);
  border-radius: 50%;
  margin-right: 6px;
}

/* Section title */
.section-title { font-family: "Shippori Mincho", "Noto Serif JP", serif; }
.section-title em {
  color: var(--orange);
  border-bottom: 3px dotted var(--orange);
}
.section-label { color: var(--orange); }
.section-label::before { color: var(--orange); }

/* Number cards */
.number-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.number-card__value { color: var(--orange); }
.number-card__value sup { color: var(--peach-deep); }

/* News */
.news-list { background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.news-list .news-tag {
  background: var(--bg-peach);
  color: var(--orange-deep);
}

/* Person card */
.person-card { background: #fff; border: 1px solid var(--line); border-radius: 20px; }
.person-card__role { color: var(--orange); }
.person-card .scallop-card { display: none; } /* hide scallops */
.person-card__img { aspect-ratio: 3/4; background: var(--bg-cream); }

/* Feature card */
.feature-card { background: #fff; border: 1px solid var(--line); border-radius: 20px; }
.feature-card__en { color: var(--orange); }
.feature-card__more { color: var(--orange); }

/* Sections background variations */
.section--cream { background: var(--bg-cream); }
.section--mist { background: var(--bg-paper); }
.section--sage { background: var(--bg-paper); }

/* Mincho display heading helper */
.mincho-display {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* Marquee rebrand */
.marquee { background: var(--orange); color: #fff; }
.marquee__dot { background: var(--peach); }

/* Site nav rebrand */
.site-nav a { color: var(--ink); font-family: "Shippori Mincho", "Noto Serif JP", serif; }
.site-nav a:hover { color: var(--orange); }
.site-nav a::after { background: var(--orange); }

/* CF7 rebrand */
.wpcf7 input[type=submit] {
  background: var(--orange);
  border-radius: 10px;
  box-shadow: 0 6px 0 var(--orange-deep);
}
.wpcf7 input[type=submit]:hover {
  background: var(--orange-deep);
  box-shadow: 0 8px 0 var(--orange-deep);
}
.wpcf7-form-control:focus { border-color: var(--orange); }
.wpcf7 input[type=checkbox], .wpcf7 input[type=radio] { accent-color: var(--orange); }

/* Hero slide dot active */
.hero__dots button.is-active { background: var(--orange); }

/* === Decorative floating illustrations === */
.deco {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  user-select: none;
}
.deco img { width: 100%; height: auto; display: block; }

.deco--float-y { animation: deco-float-y 5s ease-in-out infinite; }
.deco--float-y2 { animation: deco-float-y 7s ease-in-out infinite; }
.deco--sway { animation: deco-sway 6s ease-in-out infinite; }
.deco--bird { animation: bird-fly 18s linear infinite; }

@keyframes deco-float-y {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
@keyframes deco-sway {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-6px) rotate(2deg); }
}
@keyframes bird-fly {
  0% { transform: translate(-100px, 0) scale(0.6); opacity: 0; }
  10% { opacity: 1; }
  50% { transform: translate(60vw, -30px) scale(0.8); }
  90% { opacity: 1; }
  100% { transform: translate(120vw, 20px) scale(0.7); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .deco--float-y, .deco--float-y2, .deco--sway, .deco--bird { animation: none; }
}

/* Hero rebuild for nicori layout: two photos overlapping */
.nicori-hero {
  position: relative;
  padding: 100px 0 80px;
  min-height: 80vh;
  overflow: hidden;
}
.nicori-hero__inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
  z-index: 2;
}
.nicori-hero__logo-mark {
  display: flex; align-items: center; gap: 14px;
  margin: 60px 0 28px;
  flex-wrap: wrap;
}
.nicori-hero__tags {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.nicori-hero__tags span {
  display: inline-block;
  padding: 4px 14px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  font-size: 13px;
  background: #fff;
}
.nicori-hero__copy-line {
  font-size: 14px; color: var(--ink-2);
  border-bottom: 1px solid var(--ink);
  padding-bottom: 2px;
}
.nicori-hero__photos {
  position: relative;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 18px;
  margin-top: 36px;
}
.nicori-hero__photo {
  border-radius: 14px;
  overflow: hidden;
  background: var(--bg-cream);
  box-shadow: 0 12px 30px -12px rgba(42, 31, 18, 0.18);
}
.nicori-hero__photo--1 { aspect-ratio: 4/3; }
.nicori-hero__photo--2 { aspect-ratio: 3/4; align-self: end; }
.nicori-hero__photo img { width: 100%; height: 100%; object-fit: cover; }

.nicori-hero__bubble {
  position: absolute;
  top: 18%;
  right: 6%;
  background: #fff;
  border-radius: 12px;
  padding: 14px 20px 16px;
  box-shadow: 0 8px 18px rgba(42,31,18,0.12);
  font-size: 14px;
  z-index: 4;
  max-width: 250px;
}
.nicori-hero__bubble strong { display: block; color: var(--orange); font-size: 12px; margin-bottom: 4px; }
.nicori-hero__bubble::before {
  content: "ｸ";
  position: absolute;
  top: -16px; left: -10px;
  font-size: 18px;
  color: var(--ink-3);
}
.nicori-hero__bubble::after {
  content: "ｸ";
  position: absolute;
  top: -16px; right: -10px;
  font-size: 18px;
  color: var(--ink-3);
}

/* Big tree section (centerpiece with animals) */
.tree-section {
  position: relative;
  padding: 100px 0 140px;
  background: var(--bg-cream);
  overflow: hidden;
}
.tree-section__inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
  z-index: 2;
  text-align: center;
  min-height: 600px;
}
.tree-section__heading {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-size: clamp(32px, 5vw, 56px);
  line-height: 1.6;
  font-weight: 700;
  margin: 0 0 32px;
  position: relative;
  z-index: 3;
}
.tree-section__copy {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-size: clamp(15px, 1.6vw, 17px);
  line-height: 2.4;
  max-width: 600px;
  margin: 0 auto 40px;
  color: var(--ink);
}
.tree-section__buttons {
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
  position: relative;
  z-index: 3;
}
.tree-section__buttons a {
  display: inline-flex; align-items: center;
  padding: 12px 36px;
  background: var(--orange);
  color: #fff;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.08em;
  box-shadow: 0 4px 0 var(--orange-deep);
  transition: transform .25s, box-shadow .25s;
}
.tree-section__buttons a:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 0 var(--orange-deep);
}

/* Floating donation/recruit banner (always visible bottom) */
.float-banner {
  position: fixed;
  bottom: 16px; left: 50%;
  transform: translateX(-50%);
  z-index: 80;
  background: var(--orange);
  color: #fff;
  padding: 14px 60px 14px 24px;
  border-radius: 14px;
  display: flex; align-items: center; gap: 18px;
  box-shadow: 0 14px 30px -10px rgba(216, 88, 32, 0.45);
  max-width: calc(100vw - 32px);
}
.float-banner__txt { font-size: 13px; line-height: 1.4; }
.float-banner__txt strong { display: block; font-size: 16px; margin-top: 4px; text-decoration: underline; }
.float-banner__btn {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--peach);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--ink);
  font-weight: 900;
}
.float-banner__close {
  position: absolute;
  top: -10px; right: -10px;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--line);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
}
.float-banner__logo {
  font-family: "Shippori Mincho", serif;
  letter-spacing: 0.1em;
  font-weight: 700;
  font-size: 14px;
}
@media (max-width: 640px) {
  .float-banner { padding: 10px 40px 10px 16px; gap: 10px; }
  .float-banner__txt { font-size: 11px; }
  .float-banner__txt strong { font-size: 13px; }
}
.float-banner.is-hidden { display: none; }

/* Section divider with torn paper */
.divider-tear {
  display: block;
  width: 100%;
  height: 30px;
  background: var(--bg);
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 30' preserveAspectRatio='none'><path d='M0 0 L40 8 L80 2 L120 12 L160 4 L200 14 L240 6 L280 16 L320 8 L360 18 L400 10 L440 20 L480 12 L520 22 L560 14 L600 24 L640 16 L680 26 L720 18 L760 28 L800 20 L840 30 L880 22 L920 32 L960 24 L1000 34 L1040 26 L1080 36 L1120 28 L1160 38 L1200 30 L1200 60 L0 60 Z' fill='black'/></svg>") center/100% 100%;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 30' preserveAspectRatio='none'><path d='M0 0 L40 8 L80 2 L120 12 L160 4 L200 14 L240 6 L280 16 L320 8 L360 18 L400 10 L440 20 L480 12 L520 22 L560 14 L600 24 L640 16 L680 26 L720 18 L760 28 L800 20 L840 30 L880 22 L920 32 L960 24 L1000 34 L1040 26 L1080 36 L1120 28 L1160 38 L1200 30 L1200 60 L0 60 Z' fill='black'/></svg>") center/100% 100%;
}

/* Footer rebrand */
.site-footer { background: var(--bg-paper); color: var(--ink); }
.site-footer h4 { color: var(--orange); }
.site-footer .copyright { border-top: 1px solid var(--line); color: var(--ink-3); }
