/*
Theme Name: Lightning re.RAIZE Child
Theme URI: https://www.reraize.com/
Description: re.RAIZE用 Lightning子テーマ。トップページの視認性とモーションを改善します。
Author: re.RAIZE
Template: lightning
Version: 1.0.0
Text Domain: lightning-reraize-child
*/

:root {
  --rr-ink: #14211d;
  --rr-muted: #5f6c67;
  --rr-brand: #106a4e;
  --rr-brand-deep: #084936;
  --rr-accent: #d7a64a;
  --rr-wash: #f2f7f4;
  --rr-paper: #ffffff;
  --rr-line: rgba(20, 33, 29, .11);
  --rr-shadow: 0 18px 55px rgba(21, 53, 43, .10);
  --rr-radius: 22px;
  --rr-ease: cubic-bezier(.22, 1, .36, 1);
}

body.home {
  color: var(--rr-ink);
  background: var(--rr-paper);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  letter-spacing: .025em;
}

body.home .siteHeader {
  background: rgba(255, 255, 255, .92);
  border-bottom: 1px solid transparent;
  transition: box-shadow .35s ease, border-color .35s ease, backdrop-filter .35s ease;
}

body.home.rr-scrolled .siteHeader {
  border-color: var(--rr-line);
  box-shadow: 0 8px 32px rgba(20, 33, 29, .07);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

body.home .siteContent {
  overflow: clip;
}

body.home .entry-body {
  line-height: 1.9;
}

body.home .entry-body > *:not(.alignfull) {
  max-width: 1120px;
  margin-inline: auto;
}

body.home .entry-body > .alignfull {
  margin-top: clamp(64px, 9vw, 120px);
  margin-bottom: clamp(64px, 9vw, 120px);
}

body.home .entry-body h2,
body.home .entry-body .vk_heading_title {
  color: var(--rr-ink);
  font-weight: 700;
  letter-spacing: .045em;
  line-height: 1.5;
}

body.home .entry-body h3 {
  line-height: 1.55;
}

body.home .entry-body p {
  color: var(--rr-muted);
}

body.home .wp-block-columns {
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
}

body.home .wp-block-column {
  min-width: 0;
}

body.home .wp-block-image img {
  border-radius: 18px;
}

body.home .wp-block-cover {
  overflow: hidden;
}

body.home .wp-block-cover.alignfull {
  min-height: clamp(420px, 56vw, 680px);
}

body.home .vkp_filter_blur {
  max-width: 680px;
  border: 1px solid rgba(255, 255, 255, .52);
  border-radius: var(--rr-radius);
  background: rgba(255, 255, 255, .76);
  box-shadow: var(--rr-shadow);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

body.home .wp-block-button__link,
body.home .vk_button_link {
  min-height: 52px;
  padding: 14px 28px;
  border-radius: 999px !important;
  font-weight: 700;
  letter-spacing: .06em;
  transition: transform .25s var(--rr-ease), box-shadow .25s ease, background-color .25s ease;
}

body.home .wp-block-button__link:hover,
body.home .vk_button_link:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(16, 106, 78, .2);
}

body.home .wp-block-columns.rr-card-row > .wp-block-column {
  align-self: stretch;
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid var(--rr-line);
  border-radius: var(--rr-radius);
  background: var(--rr-paper);
  box-shadow: 0 12px 40px rgba(20, 33, 29, .055);
  transition: transform .3s var(--rr-ease), box-shadow .3s ease;
}

body.home .wp-block-columns.rr-card-row > .wp-block-column:hover {
  transform: translateY(-5px);
  box-shadow: var(--rr-shadow);
}

body.home .rr-reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .8s var(--rr-ease), transform .8s var(--rr-ease);
  transition-delay: var(--rr-delay, 0ms);
  will-change: opacity, transform;
}

body.home .rr-reveal.rr-visible {
  opacity: 1;
  transform: none;
}

body.home .rr-image-reveal {
  overflow: hidden;
}

body.home .rr-image-reveal img {
  transform: scale(1.055);
  transition: transform 1.25s var(--rr-ease);
}

body.home .rr-image-reveal.rr-visible img {
  transform: scale(1);
}

body.home .rr-mobile-cta {
  display: none;
}

@media (max-width: 781px) {
  body.home .entry-body > *:not(.alignfull) {
    width: min(100% - 32px, 1120px);
  }

  body.home .entry-body > .alignfull {
    margin-top: 56px;
    margin-bottom: 56px;
  }

  body.home .wp-block-columns {
    gap: 28px;
  }

  body.home .wp-block-cover.alignfull {
    min-height: 520px;
  }

  body.home .vkp_filter_blur {
    padding: 28px 22px !important;
    border-radius: 18px;
  }

  body.home .rr-mobile-cta {
    position: fixed;
    z-index: 9999;
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    left: 12px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 16px 46px rgba(20, 33, 29, .18);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
  }

  body.home .rr-mobile-cta a {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: var(--rr-brand-deep);
    background: var(--rr-wash);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
  }

  body.home .rr-mobile-cta a {
    color: #fff;
    background: var(--rr-brand);
  }

  body.home .siteFooter {
    padding-bottom: 90px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home *,
  body.home *::before,
  body.home *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  body.home .rr-reveal {
    opacity: 1;
    transform: none;
  }
}
