/* ============================================================
   RESONANCE — WordPress HTML Export
   Design: "Nukumori no Hibiki（温もりの響き）"
   Colors: Cream #FDF8F3 / Terracotta #C4714A / Dark #3D2B1F
   Fonts: Playfair Display + Noto Serif JP + Noto Sans JP
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Noto+Serif+JP:wght@300;400;700&family=Noto+Sans+JP:wght@300;400;500&display=swap');

/* ── Reset & Base ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: #FDF8F3; color: #3D2B1F; font-family: 'Noto Sans JP', sans-serif; -webkit-font-smoothing: antialiased; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
ul { list-style: none; }

/* ── CSS Variables ── */
:root {
  --cream: #FDF8F3;
  --cream2: #FAF4ED;
  --cream3: #FAF0E6;
  --cream4: #F5EBE0;
  --accent: #C4714A;
  --accent2: #B06040;
  --accent-bg: #FDF0E8;
  --dark: #3D2B1F;
  --mid: #7A6055;
  --light: #A08070;
  --border: rgba(232,213,192,0.6);
  --white: #ffffff;
  --dark-bg: #2D1F17;
}

/* ── Fade-in animation ── */
.rw-fade {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.75s cubic-bezier(0.22,1,0.36,1), transform 0.75s cubic-bezier(0.22,1,0.36,1);
}
.rw-fade.rw-visible { opacity: 1; transform: translateY(0); }

/* ── Container ── */
.rw-container { max-width: 1280px; margin: 0 auto; padding: 0 1.5rem; }

/* ── Section label ── */
.rw-label {
  display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1rem;
}
.rw-label::before, .rw-label::after {
  content: ''; display: block; width: 2rem; height: 1px; background: rgba(196,113,74,0.4);
}
.rw-label span {
  font-size: .6875rem; letter-spacing: .4em; color: var(--accent); font-family: 'Noto Sans JP', sans-serif;
}

/* ── Section header ── */
.rw-section-header { text-align: center; margin-bottom: 4rem; }
.rw-section-header h2 {
  font-family: 'Noto Serif JP', serif; font-size: clamp(2rem,4vw,3rem); font-weight: 700;
  color: var(--dark); line-height: 1.25;
}
.rw-section-header h2 span { color: var(--accent); }
.rw-section-header p {
  font-family: 'Noto Sans JP', sans-serif; font-weight: 300; color: var(--light);
  margin-top: 1rem; font-size: 1rem;
}

/* ============================================================
   NAVBAR
   ============================================================ */
.rw-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  padding: 1.5rem 0;
  transition: background .5s, padding .5s, box-shadow .5s;
}
.rw-nav.scrolled {
  background: rgba(253,248,243,0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  padding: .75rem 0;
  box-shadow: 0 1px 0 rgba(232,213,192,0.5);
}
.rw-nav-inner {
  display: flex; align-items: center; justify-content: space-between;
}
.rw-logo { display: flex; align-items: center; gap: .75rem; }
.rw-logo-icon {
  width: 2.5rem; height: 2.5rem; border-radius: 50%;
  background: rgba(196,113,74,0.1); border: 1px solid rgba(196,113,74,0.25);
  display: flex; align-items: center; justify-content: center;
  transition: background .3s;
}
.rw-logo-icon:hover { background: rgba(196,113,74,0.2); }
.rw-logo-icon svg { width: 1.25rem; height: 1.25rem; color: var(--accent); }
.rw-logo-text { font-family: 'Playfair Display', serif; font-size: 1.25rem; font-weight: 700; letter-spacing: .12em; color: var(--dark); }
.rw-logo-sub { font-size: 9px; letter-spacing: .3em; color: rgba(196,113,74,0.7); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; }
.rw-nav-links { display: flex; align-items: center; gap: 2rem; }
.rw-nav-links a {
  font-size: .875rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: .03em; transition: color .3s;
}
.rw-nav-links a:hover { color: var(--dark); }
.rw-btn-trial {
  padding: .625rem 1.5rem; border-radius: 999px; font-size: .875rem; font-weight: 500;
  background: var(--accent); color: #fff; font-family: 'Noto Sans JP', sans-serif;
  box-shadow: 0 4px 12px rgba(196,113,74,0.25); transition: background .3s;
}
.rw-btn-trial:hover { background: var(--accent2); }
.rw-hamburger {
  display: none; background: none; border: none; cursor: pointer;
  color: var(--mid); padding: .25rem;
}
.rw-hamburger svg { width: 1.5rem; height: 1.5rem; }
.rw-mobile-menu {
  display: none; background: var(--cream); border-top: 1px solid var(--border);
  padding: 1rem 1.5rem 1.5rem; flex-direction: column; gap: .75rem;
}
.rw-mobile-menu.open { display: flex; }
.rw-mobile-menu a { font-size: .9375rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; padding: .5rem 0; }
.rw-mobile-menu a:hover { color: var(--dark); }
.rw-mobile-cta {
  margin-top: .5rem; padding: .875rem 1.5rem; border-radius: 999px;
  background: var(--accent); color: #fff !important; text-align: center;
  font-size: .9375rem; font-weight: 500;
}

@media (max-width: 1023px) {
  .rw-nav-links, .rw-btn-trial { display: none; }
  .rw-hamburger { display: block; }
}

/* ============================================================
   PAGE HERO (subpages)
   ============================================================ */
.rw-page-hero {
  padding: 9rem 0 5rem;
  background: linear-gradient(160deg, var(--cream) 0%, var(--cream3) 100%);
}
.rw-page-hero-label {
  font-size: .6875rem; letter-spacing: .4em; color: var(--accent);
  font-family: 'Noto Sans JP', sans-serif; margin-bottom: 1rem;
}
.rw-page-hero h1 {
  font-family: 'Noto Serif JP', serif; font-size: clamp(2rem,4vw,3rem);
  font-weight: 700; color: var(--dark); line-height: 1.25;
}
.rw-page-hero h1 span { color: var(--accent); }
.rw-page-hero p {
  font-size: 1rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif;
  font-weight: 300; line-height: 1.9; margin-top: 1rem; max-width: 560px;
}

/* ============================================================
   HERO (top page)
   ============================================================ */
.rw-hero {
  position: relative; min-height: 100vh; display: flex; align-items: center;
  overflow: hidden;
  background: linear-gradient(160deg, var(--cream) 0%, var(--cream3) 50%, var(--cream4) 100%);
}
.rw-hero-blob1 {
  position: absolute; top: 5rem; right: 2.5rem; width: 24rem; height: 24rem;
  border-radius: 50%; opacity: .2;
  background: radial-gradient(circle, #D4956A 0%, transparent 70%);
  pointer-events: none;
}
.rw-hero-blob2 {
  position: absolute; bottom: 5rem; left: 2.5rem; width: 18rem; height: 18rem;
  border-radius: 50%; opacity: .15;
  background: radial-gradient(circle, #7A9E8E 0%, transparent 70%);
  pointer-events: none;
}
.rw-hero-inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: 3rem;
  align-items: center; padding: 7rem 0 4rem; width: 100%;
}
.rw-hero-tag {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(196,113,74,0.1); border: 1px solid rgba(196,113,74,0.2);
  border-radius: 999px; padding: .375rem 1rem; margin-bottom: 2rem;
}
.rw-hero-tag-dot {
  width: .375rem; height: .375rem; border-radius: 50%; background: var(--accent);
  animation: rwPulse 2s ease-in-out infinite;
}
@keyframes rwPulse { 0%,100%{opacity:.6;transform:scale(1)} 50%{opacity:1;transform:scale(1.2)} }
.rw-hero-tag span { font-size: .75rem; color: var(--accent); font-family: 'Noto Sans JP', sans-serif; letter-spacing: .1em; }
.rw-hero-h1 {
  font-family: 'Noto Serif JP', serif; font-size: clamp(2.5rem,5vw,3.75rem);
  font-weight: 700; line-height: 1.2; margin-bottom: 1.5rem; color: var(--dark);
}
.rw-hero-h1 .accent { color: var(--accent); }
.rw-hero-h1 .sub { font-size: clamp(2rem,4vw,3rem); font-weight: 300; color: var(--mid); display: block; margin-top: .25rem; }
.rw-hero-desc {
  font-family: 'Noto Sans JP', sans-serif; font-weight: 300; font-size: 1.125rem;
  color: var(--mid); line-height: 1.9; max-width: 32rem; margin-bottom: 2.5rem;
}
.rw-hero-desc .sub-note { color: rgba(196,113,74,0.8); font-size: 1rem; }
.rw-hero-btns { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 3rem; }
.rw-btn-primary {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: 1rem 2rem; border-radius: 999px; font-size: .875rem; font-weight: 500;
  background: var(--accent); color: #fff; font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: .05em; box-shadow: 0 8px 24px rgba(196,113,74,0.3);
  transition: background .3s, transform .3s;
}
.rw-btn-primary:hover { background: var(--accent2); transform: translateY(-1px); }
.rw-btn-primary svg { width: 1rem; height: 1rem; transition: transform .3s; }
.rw-btn-primary:hover svg { transform: translateX(4px); }
.rw-btn-outline {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: 1rem 2rem; border-radius: 999px; font-size: .875rem; font-weight: 500;
  border: 2px solid rgba(196,113,74,0.3); color: var(--accent);
  font-family: 'Noto Sans JP', sans-serif; letter-spacing: .05em;
  transition: border-color .3s, background .3s;
}
.rw-btn-outline:hover { border-color: rgba(196,113,74,0.6); background: rgba(196,113,74,0.05); }
.rw-hero-badges { display: flex; flex-wrap: wrap; gap: .75rem; }
.rw-badge {
  display: flex; align-items: center; gap: .375rem;
  background: rgba(255,255,255,0.7); border: 1px solid var(--border);
  border-radius: 999px; padding: .375rem .75rem;
  font-size: .75rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif;
}
/* Hero right */
.rw-hero-right { position: relative; }
.rw-hero-img-wrap {
  position: relative; border-radius: 2.5rem; overflow: hidden;
  box-shadow: 0 30px 80px rgba(196,113,74,0.18);
}
.rw-hero-img-wrap img {
  width: 100%; height: 560px; object-fit: cover; object-position: top;
  filter: saturate(0.95) brightness(1.02);
}
.rw-hero-img-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 60%, rgba(196,113,74,0.12) 100%);
}
.rw-hero-float-card {
  position: absolute; bottom: 2rem; left: -1.25rem; right: 2rem;
  background: #fff; border-radius: 1rem; padding: 1rem;
  box-shadow: 0 8px 32px rgba(196,113,74,0.15);
}
.rw-hero-float-inner { display: flex; align-items: center; gap: .75rem; }
.rw-hero-float-icon {
  width: 2.75rem; height: 2.75rem; border-radius: .75rem;
  background: rgba(196,113,74,0.1); display: flex; align-items: center; justify-content: center;
  font-size: 1.25rem; flex-shrink: 0;
}
.rw-hero-float-title { font-size: .875rem; font-weight: 600; color: var(--dark); font-family: 'Noto Sans JP', sans-serif; }
.rw-hero-float-sub { font-size: .75rem; color: var(--light); font-family: 'Noto Sans JP', sans-serif; }
.rw-hero-float-btn {
  flex-shrink: 0; padding: .375rem .75rem; border-radius: 999px;
  background: var(--accent); color: #fff; font-size: .75rem;
  font-family: 'Noto Sans JP', sans-serif; transition: background .3s;
}
.rw-hero-float-btn:hover { background: var(--accent2); }
.rw-hero-stat {
  position: absolute; top: 2rem; right: -1rem;
  background: var(--accent); color: #fff; border-radius: 1rem;
  padding: 1rem 1.25rem; box-shadow: 0 8px 24px rgba(196,113,74,0.3);
}
.rw-hero-stat-num { font-family: 'Playfair Display', serif; font-size: 1.875rem; font-weight: 700; line-height: 1; }
.rw-hero-stat-label { font-size: .75rem; color: rgba(255,255,255,0.8); font-family: 'Noto Sans JP', sans-serif; margin-top: .25rem; }

@media (max-width: 1023px) {
  .rw-hero-inner { grid-template-columns: 1fr; padding: 6rem 0 3rem; }
  .rw-hero-right { order: -1; }
  .rw-hero-img-wrap img { height: 380px; }
  .rw-hero-stat { right: 0; }
}

/* ============================================================
   ABOUT SECTION
   ============================================================ */
.rw-about { padding: 6rem 0; background: #fff; }
.rw-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.rw-about-img-wrap {
  position: relative; border-radius: 2rem; overflow: hidden;
  aspect-ratio: 1/1; max-width: 28rem; margin: 0 auto;
  box-shadow: 0 20px 60px rgba(196,113,74,0.15);
}
.rw-about-img-wrap img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.15) saturate(0.9) brightness(1.05); }
.rw-about-deco1 {
  position: absolute; bottom: -1rem; right: -1rem;
  width: 5rem; height: 5rem; border-radius: 50%;
  background: rgba(196,113,74,0.1); border: 2px solid rgba(196,113,74,0.2);
}
.rw-about-deco2 {
  position: absolute; top: -1rem; left: -1rem;
  width: 3.5rem; height: 3.5rem; border-radius: 50%;
  background: rgba(122,158,142,0.15); border: 1px solid rgba(122,158,142,0.25);
}
.rw-about-text p { font-family: 'Noto Sans JP', sans-serif; font-weight: 300; color: var(--mid); line-height: 1.9; font-size: 1rem; margin-bottom: 1.25rem; }
.rw-about-quote {
  color: rgba(196,113,74,0.8); font-size: .9375rem;
  border-left: 2px solid rgba(196,113,74,0.3); padding: .25rem 0 .25rem 1rem;
  margin-bottom: 2rem;
}
.rw-about-grid4 { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.rw-about-card {
  background: var(--cream); border-radius: 1rem; padding: 1rem;
  border: 1px solid var(--border); transition: border-color .3s, background .3s;
}
.rw-about-card:hover { border-color: rgba(196,113,74,0.3); background: var(--cream2); }
.rw-about-card-icon { font-size: 1.5rem; margin-bottom: .5rem; }
.rw-about-card-title { font-size: .875rem; font-weight: 600; color: var(--dark); font-family: 'Noto Sans JP', sans-serif; }
.rw-about-card-desc { font-size: .75rem; color: var(--light); font-family: 'Noto Sans JP', sans-serif; margin-top: .25rem; }

@media (max-width: 767px) {
  .rw-about-grid { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* ============================================================
   SERVICES SECTION
   ============================================================ */
.rw-services { padding: 6rem 0; background: linear-gradient(180deg, var(--cream2) 0%, var(--cream) 100%); }
.rw-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.rw-service-card {
  background: #fff; border-radius: 2rem; overflow: hidden;
  border: 1px solid rgba(232,213,192,0.5);
  box-shadow: 0 4px 24px rgba(196,113,74,0.08);
  transition: box-shadow .3s, transform .3s, border-color .3s;
}
.rw-service-card:hover {
  box-shadow: 0 12px 40px rgba(196,113,74,0.16);
  transform: translateY(-4px);
  border-color: rgba(196,113,74,0.2);
}
.rw-service-img { position: relative; height: 13rem; overflow: hidden; }
.rw-service-img img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.9) brightness(1.02); transition: transform .7s; }
.rw-service-card:hover .rw-service-img img { transform: scale(1.05); }
.rw-service-img-overlay { position: absolute; inset: 0; }
.rw-service-tag {
  position: absolute; top: 1rem; left: 1rem;
  font-size: .75rem; padding: .25rem .75rem; border-radius: 999px;
  background: rgba(255,255,255,0.92); font-family: 'Noto Sans JP', sans-serif; font-weight: 500;
}
.rw-service-body { padding: 1.5rem; }
.rw-service-domain { font-size: .625rem; letter-spacing: .3em; color: #C0A090; font-family: 'Noto Sans JP', sans-serif; margin-bottom: .25rem; }
.rw-service-name { font-family: 'Playfair Display', serif; font-size: 1.5rem; font-weight: 700; margin-bottom: .25rem; }
.rw-service-name-ja { font-size: .75rem; color: var(--light); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .75rem; }
.rw-service-desc { font-size: .875rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.7; margin-bottom: 1.25rem; }
.rw-service-features { margin-bottom: 1.5rem; }
.rw-service-features li { display: flex; align-items: center; gap: .5rem; font-size: .875rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .5rem; }
.rw-service-dot-wrap { width: 1rem; height: 1rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rw-service-dot { width: .375rem; height: .375rem; border-radius: 50%; }
.rw-service-link { display: inline-flex; align-items: center; gap: .25rem; font-size: .875rem; font-weight: 500; font-family: 'Noto Sans JP', sans-serif; transition: gap .3s; }
.rw-service-link:hover { gap: .5rem; }
.rw-service-link svg { width: .875rem; height: .875rem; }

@media (max-width: 767px) {
  .rw-services-grid { grid-template-columns: 1fr; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .rw-services-grid { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   FEATURES SECTION
   ============================================================ */
.rw-features { padding: 6rem 0; background: #fff; }
.rw-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.rw-feature-card {
  background: var(--cream); border-radius: 1.25rem; padding: 1.5rem;
  border: 1px solid var(--border); transition: border-color .3s, background .3s;
}
.rw-feature-card:hover { border-color: rgba(196,113,74,0.25); background: var(--cream2); }
.rw-feature-icon { font-size: 1.875rem; margin-bottom: 1rem; }
.rw-feature-title { font-family: 'Noto Serif JP', serif; font-size: 1.125rem; font-weight: 700; margin-bottom: .5rem; }
.rw-feature-desc { font-size: .875rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.7; }

@media (max-width: 767px) { .rw-features-grid { grid-template-columns: 1fr; } }
@media (min-width: 768px) and (max-width: 1023px) { .rw-features-grid { grid-template-columns: 1fr 1fr; } }

/* ============================================================
   SCIENCE SECTION
   ============================================================ */
.rw-science { padding: 6rem 0; background: linear-gradient(180deg, var(--cream2) 0%, var(--cream) 100%); }
.rw-science-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 2rem; align-items: start; }
.rw-science-card {
  background: #fff; border-radius: 2rem; padding: 2.5rem;
  border: 1px solid rgba(232,213,192,0.5); box-shadow: 0 8px 32px rgba(196,113,74,0.08);
}
.rw-science-card p { font-family: 'Noto Sans JP', sans-serif; font-weight: 300; color: var(--mid); line-height: 1.9; font-size: 1rem; margin-bottom: 1.25rem; }
.rw-science-badges { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin-top: 2rem; }
.rw-science-badge {
  display: flex; align-items: center; gap: .75rem;
  background: var(--cream); border-radius: .75rem; padding: .75rem;
  border: 1px solid rgba(232,213,192,0.5);
}
.rw-science-badge-icon { font-size: 1.25rem; }
.rw-science-badge-text { font-size: .75rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; }
.rw-science-img-wrap {
  position: relative; border-radius: 2rem; overflow: hidden; min-height: 360px;
  box-shadow: 0 12px 40px rgba(196,113,74,0.15);
}
.rw-science-img-wrap img { width: 100%; height: 100%; object-fit: cover; filter: sepia(0.1) saturate(0.95) brightness(1.05); }
.rw-science-img-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(196,113,74,0.25) 0%, transparent 50%);
}
.rw-science-caption {
  position: absolute; bottom: 1.5rem; left: 1.5rem; right: 1.5rem;
  background: rgba(255,255,255,0.9); backdrop-filter: blur(8px);
  border-radius: .75rem; padding: .75rem;
}
.rw-science-caption-sub { font-size: .75rem; color: var(--light); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .25rem; }
.rw-science-caption-title { font-size: .875rem; font-family: 'Noto Serif JP', serif; font-weight: 700; color: var(--dark); }

@media (max-width: 1023px) { .rw-science-grid { grid-template-columns: 1fr; } }

/* ============================================================
   PRICING SECTION (top page)
   ============================================================ */
.rw-pricing { padding: 6rem 0; background: #fff; }
.rw-pricing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; max-width: 48rem; margin: 0 auto; }
.rw-plan-sub {
  background: var(--cream); border-radius: 2rem; padding: 2rem;
  border: 1px solid var(--border); transition: border-color .3s;
}
.rw-plan-sub:hover { border-color: rgba(196,113,74,0.3); }
.rw-plan-label { font-size: .6875rem; letter-spacing: .3em; color: var(--light); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .75rem; }
.rw-plan-name { font-family: 'Noto Serif JP', serif; font-size: 1.5rem; font-weight: 700; color: var(--dark); margin-bottom: .5rem; }
.rw-plan-price { display: flex; align-items: baseline; gap: .25rem; margin-bottom: .5rem; }
.rw-plan-price-num { font-family: 'Playfair Display', serif; font-size: 3rem; font-weight: 700; color: var(--accent); line-height: 1; }
.rw-plan-price-unit { font-size: .875rem; color: var(--light); font-family: 'Noto Sans JP', sans-serif; }
.rw-plan-note { font-size: .8125rem; color: var(--light); font-family: 'Noto Sans JP', sans-serif; margin-bottom: 1.5rem; }
.rw-plan-features { margin-bottom: 2rem; }
.rw-plan-features li { display: flex; align-items: center; gap: .75rem; font-size: .875rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .75rem; }
.rw-plan-check {
  width: 1.25rem; height: 1.25rem; border-radius: 50%;
  background: var(--accent-bg); display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.rw-plan-check svg { width: .75rem; height: .75rem; color: var(--accent); }
.rw-plan-btn {
  display: block; width: 100%; padding: .875rem; border-radius: 999px;
  text-align: center; font-size: .875rem; font-weight: 500;
  font-family: 'Noto Sans JP', sans-serif; transition: background .3s, opacity .3s;
}
.rw-plan-btn-solid { background: var(--accent); color: #fff; }
.rw-plan-btn-solid:hover { background: var(--accent2); }
/* One-time plan */
.rw-plan-one {
  border-radius: 2rem; padding: 2rem; position: relative; color: #fff;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%);
  box-shadow: 0 20px 60px rgba(196,113,74,0.30);
}
.rw-plan-badge {
  position: absolute; top: -0.875rem; left: 50%; transform: translateX(-50%);
  padding: .375rem 1.25rem; border-radius: 999px; font-size: .75rem;
  background: #B08040; color: #fff; font-family: 'Noto Sans JP', sans-serif;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15); white-space: nowrap;
}
.rw-plan-one .rw-plan-label { color: rgba(255,255,255,0.6); }
.rw-plan-one .rw-plan-name { color: #fff; }
.rw-plan-one .rw-plan-price-num { color: #fff; }
.rw-plan-one .rw-plan-price-unit { color: rgba(255,255,255,0.7); }
.rw-plan-one .rw-plan-note { color: rgba(255,255,255,0.6); }
.rw-plan-one .rw-plan-features li { color: rgba(255,255,255,0.85); }
.rw-plan-one .rw-plan-check { background: rgba(255,255,255,0.2); }
.rw-plan-one .rw-plan-check svg { color: #fff; }
.rw-plan-btn-white { background: #fff; color: var(--accent); }
.rw-plan-btn-white:hover { background: var(--cream); }
.rw-pricing-note { text-align: center; font-size: .8125rem; color: #C0A090; font-family: 'Noto Sans JP', sans-serif; margin-top: 2rem; }

@media (max-width: 767px) { .rw-pricing-grid { grid-template-columns: 1fr; } }

/* ============================================================
   CTA SECTION
   ============================================================ */
.rw-cta-section { padding: 6rem 0; background: linear-gradient(180deg, var(--cream2) 0%, var(--cream) 100%); }
.rw-cta-box {
  border-radius: 2.5rem; padding: 4rem; text-align: center; position: relative; overflow: hidden;
  background: linear-gradient(135deg, #C4714A 0%, #A05030 50%, #8B4020 100%);
  box-shadow: 0 30px 80px rgba(196,113,74,0.30);
}
.rw-cta-glow1 {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 24rem; height: 12rem; border-radius: 50%; opacity: .2;
  background: radial-gradient(circle, #FFD090 0%, transparent 70%);
  pointer-events: none;
}
.rw-cta-glow2 {
  position: absolute; bottom: 0; right: 0;
  width: 16rem; height: 16rem; border-radius: 50%; opacity: .1;
  background: radial-gradient(circle, #FFB070 0%, transparent 70%);
  pointer-events: none;
}
.rw-cta-inner { position: relative; }
.rw-cta-label { font-size: .75rem; letter-spacing: .4em; color: rgba(255,255,255,0.6); font-family: 'Noto Sans JP', sans-serif; }
.rw-cta-h2 { font-family: 'Noto Serif JP', serif; font-size: clamp(2rem,4vw,3rem); font-weight: 700; color: #fff; margin: 1rem 0 1.5rem; line-height: 1.3; }
.rw-cta-desc { color: rgba(255,255,255,0.75); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; font-size: 1.125rem; line-height: 1.9; margin-bottom: 2.5rem; max-width: 36rem; margin-left: auto; margin-right: auto; }
.rw-cta-btns { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.rw-btn-cta-white {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: 1rem 2.5rem; border-radius: 999px; font-size: 1rem; font-weight: 500;
  background: #fff; color: var(--accent); font-family: 'Noto Sans JP', sans-serif;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15); transition: background .3s;
}
.rw-btn-cta-white:hover { background: var(--cream); }
.rw-btn-cta-white svg { width: 1rem; height: 1rem; transition: transform .3s; }
.rw-btn-cta-white:hover svg { transform: translateX(4px); }
.rw-btn-cta-outline {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: 1rem 2.5rem; border-radius: 999px; font-size: 1rem; font-weight: 500;
  border: 2px solid rgba(255,255,255,0.3); color: #fff;
  font-family: 'Noto Sans JP', sans-serif; transition: border-color .3s, background .3s;
}
.rw-btn-cta-outline:hover { border-color: rgba(255,255,255,0.6); background: rgba(255,255,255,0.1); }

/* ============================================================
   FOOTER
   ============================================================ */
.rw-footer { padding: 4rem 0; background: var(--dark-bg); }
.rw-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 3rem; margin-bottom: 3rem; }
.rw-footer-logo { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.25rem; }
.rw-footer-logo-icon {
  width: 2.25rem; height: 2.25rem; border-radius: 50%;
  background: rgba(196,113,74,0.2); border: 1px solid rgba(196,113,74,0.3);
  display: flex; align-items: center; justify-content: center;
}
.rw-footer-logo-icon svg { width: 1rem; height: 1rem; color: var(--accent); }
.rw-footer-logo-text { font-family: 'Playfair Display', serif; font-size: 1.25rem; font-weight: 700; color: rgba(255,255,255,0.9); letter-spacing: .12em; }
.rw-footer-tagline { font-size: .875rem; color: rgba(255,255,255,0.35); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.8; max-width: 18rem; }
.rw-footer-col h4 { font-size: .75rem; letter-spacing: .3em; color: rgba(255,255,255,0.4); font-family: 'Noto Sans JP', sans-serif; text-transform: uppercase; margin-bottom: 1.25rem; }
.rw-footer-col ul li { margin-bottom: .75rem; }
.rw-footer-col ul li a { font-size: .875rem; color: rgba(255,255,255,0.35); font-family: 'Noto Sans JP', sans-serif; transition: color .3s; }
.rw-footer-col ul li a:hover { color: rgba(255,255,255,0.65); }
.rw-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08); padding-top: 2rem;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
}
.rw-footer-bottom p { font-size: .75rem; color: rgba(255,255,255,0.2); font-family: 'Noto Sans JP', sans-serif; }

@media (max-width: 767px) {
  .rw-footer-grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* ============================================================
   PRICING PAGE (standalone)
   ============================================================ */
.rw-pricing-page { padding: 6rem 0; background: #fff; }
.rw-pricing-page-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; max-width: 54rem; margin: 0 auto 2rem; }

@media (max-width: 767px) { .rw-pricing-page-grid { grid-template-columns: 1fr; } }

/* ============================================================
   FAQ PAGE
   ============================================================ */
.rw-faq-section { padding: 6rem 0; background: #fff; }
.rw-faq-list { max-width: 48rem; margin: 0 auto; }
.rw-faq-item {
  background: var(--cream); border-radius: 1rem; margin-bottom: 1rem;
  border: 1px solid var(--border); overflow: hidden;
}
.rw-faq-q {
  display: flex; align-items: flex-start; gap: .75rem; padding: 1.5rem;
  cursor: pointer; user-select: none;
}
.rw-faq-q-badge {
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  background: var(--accent); color: #fff; font-size: .75rem; font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: .1rem;
}
.rw-faq-q-text { font-family: 'Noto Serif JP', serif; font-size: 1rem; font-weight: 700; color: var(--dark); flex: 1; }
.rw-faq-arrow { width: 1.25rem; height: 1.25rem; color: var(--accent); flex-shrink: 0; transition: transform .3s; margin-top: .1rem; }
.rw-faq-item.open .rw-faq-arrow { transform: rotate(180deg); }
.rw-faq-a { display: none; padding: 0 1.5rem 1.5rem 3.75rem; font-size: .9375rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.8; }
.rw-faq-item.open .rw-faq-a { display: block; }
.rw-faq-cta {
  max-width: 48rem; margin: 3rem auto 0;
  background: var(--cream); border-radius: 1.5rem; padding: 2rem; text-align: center;
  border: 1px solid var(--border);
}
.rw-faq-cta p { font-size: .9375rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; margin-bottom: 1.25rem; }

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.rw-contact-section { padding: 6rem 0; background: #fff; }
.rw-contact-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 3rem; max-width: 64rem; margin: 0 auto; }
.rw-contact-info-title { font-family: 'Noto Serif JP', serif; font-size: 1.25rem; font-weight: 700; color: var(--dark); margin-bottom: .75rem; }
.rw-contact-info-desc { font-size: .9375rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.8; margin-bottom: 1.5rem; }
.rw-contact-email-card {
  background: var(--cream); border-radius: 1rem; padding: 1.25rem;
  border: 1px solid var(--border); margin-bottom: 1.5rem;
}
.rw-contact-email-label { font-size: .6875rem; letter-spacing: .3em; color: var(--accent); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .5rem; }
.rw-contact-email-addr { font-family: 'Playfair Display', serif; font-size: 1.125rem; color: var(--dark); }
.rw-contact-links-title { font-size: .75rem; letter-spacing: .2em; color: var(--light); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .75rem; }
.rw-contact-link-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: .875rem 1rem; border-radius: .75rem; margin-bottom: .5rem;
  border: 1px solid var(--border); transition: background .3s;
}
.rw-contact-link-row:hover { background: var(--cream2); }
.rw-contact-link-name { font-size: .875rem; font-weight: 600; font-family: 'Noto Sans JP', sans-serif; }
.rw-contact-link-domain { font-size: .75rem; color: var(--light); font-family: 'Noto Sans JP', sans-serif; }
.rw-contact-link-arrow { font-size: .75rem; color: var(--light); }
/* Form */
.rw-form-card {
  background: var(--cream); border-radius: 1.5rem; padding: 2rem;
  border: 1px solid var(--border);
}
.rw-form-title { font-family: 'Noto Serif JP', serif; font-size: 1.25rem; font-weight: 700; color: var(--dark); margin-bottom: 1.5rem; }
.rw-form-group { margin-bottom: 1.25rem; }
.rw-form-label { display: block; font-size: .875rem; color: var(--dark); font-family: 'Noto Sans JP', sans-serif; font-weight: 500; margin-bottom: .5rem; }
.rw-form-label span { color: var(--accent); margin-left: .25rem; }
.rw-form-input, .rw-form-select, .rw-form-textarea {
  width: 100%; padding: .75rem 1rem; border-radius: .75rem;
  border: 1px solid var(--border); background: #fff;
  font-size: .9375rem; color: var(--dark); font-family: 'Noto Sans JP', sans-serif;
  transition: border-color .3s, box-shadow .3s; outline: none;
}
.rw-form-input:focus, .rw-form-select:focus, .rw-form-textarea:focus {
  border-color: rgba(196,113,74,0.5); box-shadow: 0 0 0 3px rgba(196,113,74,0.1);
}
.rw-form-textarea { resize: vertical; min-height: 8rem; }
.rw-form-privacy { font-size: .8125rem; color: var(--light); font-family: 'Noto Sans JP', sans-serif; margin-bottom: 1.25rem; }
.rw-form-submit {
  width: 100%; padding: 1rem; border-radius: 999px; border: none; cursor: pointer;
  background: var(--accent); color: #fff; font-size: 1rem; font-weight: 500;
  font-family: 'Noto Sans JP', sans-serif; transition: background .3s;
}
.rw-form-submit:hover { background: var(--accent2); }

@media (max-width: 767px) { .rw-contact-grid { grid-template-columns: 1fr; } }

/* ============================================================
   COMPANY PAGE
   ============================================================ */
.rw-company-hero {
  padding: 9rem 0 5rem; position: relative; overflow: hidden;
  background: linear-gradient(160deg, var(--cream) 0%, var(--cream3) 100%);
}
.rw-company-hero-ring {
  position: absolute; border-radius: 50%; border: 1px solid rgba(196,113,74,0.15);
  pointer-events: none;
}
.rw-company-hero-label { font-size: .6875rem; letter-spacing: .4em; color: var(--accent); font-family: 'Noto Sans JP', sans-serif; margin-bottom: 1rem; }
.rw-company-hero h1 { font-family: 'Noto Serif JP', serif; font-size: clamp(2rem,4vw,3rem); font-weight: 700; color: var(--dark); margin-bottom: 1rem; }
.rw-company-hero h1 span { color: var(--accent); }
.rw-company-hero p { font-size: 1rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.9; max-width: 560px; }
.rw-vm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; max-width: 56rem; margin: 0 auto; }
.rw-vm-card { border-radius: 1.5rem; padding: 2rem; border: 1px solid var(--border); }
.rw-vm-card-icon { font-size: 2rem; margin-bottom: 1rem; }
.rw-vm-card-title { font-family: 'Noto Serif JP', serif; font-size: 1.25rem; font-weight: 700; margin-bottom: .75rem; }
.rw-vm-card-text { font-size: .9375rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.8; }
.rw-info-table { width: 100%; max-width: 48rem; margin: 0 auto; border-collapse: collapse; }
.rw-info-table tr { border-bottom: 1px solid var(--border); }
.rw-info-table th {
  width: 10rem; padding: 1.25rem 1rem; text-align: left;
  font-size: .875rem; color: var(--accent); font-family: 'Noto Sans JP', sans-serif; font-weight: 500;
  vertical-align: top;
}
.rw-info-table td { padding: 1.25rem 1rem; font-size: .9375rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.7; }
.rw-team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: 56rem; margin: 0 auto; }
.rw-team-card { background: var(--cream); border-radius: 1.5rem; padding: 1.5rem; border: 1px solid var(--border); text-align: center; }
.rw-team-avatar { width: 5rem; height: 5rem; border-radius: 50%; margin: 0 auto 1rem; display: flex; align-items: center; justify-content: center; font-size: 2rem; }
.rw-team-name { font-family: 'Noto Serif JP', serif; font-size: 1.125rem; font-weight: 700; color: var(--dark); margin-bottom: .25rem; }
.rw-team-role { font-size: .8125rem; color: var(--accent); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .75rem; }
.rw-team-desc { font-size: .8125rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.7; }
.rw-timeline { max-width: 40rem; margin: 0 auto; position: relative; }
.rw-timeline::before { content: ''; position: absolute; left: 1.25rem; top: 0; bottom: 0; width: 2px; background: var(--border); }
.rw-timeline-item { display: flex; gap: 1.5rem; margin-bottom: 2rem; position: relative; }
.rw-timeline-dot { width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; flex-shrink: 0; position: relative; z-index: 1; }
.rw-timeline-content { padding-top: .375rem; }
.rw-timeline-year { font-size: .75rem; letter-spacing: .2em; color: var(--accent); font-family: 'Noto Sans JP', sans-serif; margin-bottom: .25rem; }
.rw-timeline-title { font-family: 'Noto Serif JP', serif; font-size: 1rem; font-weight: 700; color: var(--dark); margin-bottom: .25rem; }
.rw-timeline-desc { font-size: .875rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.7; }
.rw-access-card { background: var(--cream); border-radius: 1.5rem; padding: 2rem; border: 1px solid var(--border); max-width: 36rem; margin: 0 auto; }
.rw-access-title { font-family: 'Noto Serif JP', serif; font-size: 1.125rem; font-weight: 700; color: var(--dark); margin-bottom: 1rem; }
.rw-access-row { display: flex; gap: .75rem; margin-bottom: .75rem; font-size: .9375rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; }
.rw-access-row-label { color: var(--accent); font-weight: 500; flex-shrink: 0; }
.rw-company-cta {
  border-radius: 2rem; padding: 3rem; text-align: center;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%);
  box-shadow: 0 20px 60px rgba(196,113,74,0.25); max-width: 48rem; margin: 0 auto;
}
.rw-company-cta h3 { font-family: 'Noto Serif JP', serif; font-size: 1.5rem; font-weight: 700; color: #fff; margin-bottom: .75rem; }
.rw-company-cta p { font-size: .9375rem; color: rgba(255,255,255,0.8); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; margin-bottom: 1.5rem; }

@media (max-width: 767px) {
  .rw-vm-grid { grid-template-columns: 1fr; }
  .rw-team-grid { grid-template-columns: 1fr; }
  .rw-info-table th { width: 7rem; }
}

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.rw-about-page-card { background: var(--cream); border-radius: 1.5rem; padding: 1.5rem; border: 1px solid var(--border); }
.rw-about-page-card-icon { font-size: 2rem; margin-bottom: .75rem; }
.rw-about-page-card-title { font-family: 'Noto Serif JP', serif; font-size: 1.125rem; font-weight: 700; color: var(--dark); margin-bottom: .5rem; }
.rw-about-page-card-text { font-size: .875rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.7; }
.rw-science-principle-card { background: #fff; border-radius: 1.5rem; padding: 1.5rem; border: 1px solid var(--border); }
.rw-science-principle-num { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 700; color: rgba(196,113,74,0.2); line-height: 1; margin-bottom: .5rem; }
.rw-science-principle-title { font-family: 'Noto Serif JP', serif; font-size: 1rem; font-weight: 700; color: var(--dark); margin-bottom: .5rem; }
.rw-science-principle-text { font-size: .875rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.7; }

/* ============================================================
   CLUB / PET / SALON PAGES
   ============================================================ */
.rw-service-overview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.rw-service-overview-img { border-radius: 2rem; overflow: hidden; box-shadow: 0 20px 60px rgba(196,113,74,0.15); }
.rw-service-overview-img img { width: 100%; height: 24rem; object-fit: cover; }
.rw-chip-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.rw-chip { padding: .375rem .875rem; border-radius: 999px; font-size: .8125rem; font-family: 'Noto Sans JP', sans-serif; font-weight: 500; }
.rw-steps-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.rw-step-card { background: #fff; border-radius: 1.5rem; padding: 1.5rem; border: 1px solid var(--border); text-align: center; }
.rw-step-num { font-family: 'Playfair Display', serif; font-size: 2.5rem; font-weight: 700; color: rgba(196,113,74,0.15); line-height: 1; margin-bottom: .5rem; }
.rw-step-title { font-family: 'Noto Serif JP', serif; font-size: 1rem; font-weight: 700; color: var(--dark); margin-bottom: .5rem; }
.rw-step-desc { font-size: .8125rem; color: var(--mid); font-family: 'Noto Sans JP', sans-serif; font-weight: 300; line-height: 1.7; }

@media (max-width: 767px) {
  .rw-service-overview-grid { grid-template-columns: 1fr; }
  .rw-steps-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .rw-steps-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   UTILITY
   ============================================================ */
.rw-text-center { text-align: center; }
.rw-mt-2 { margin-top: .5rem; }
.rw-mt-4 { margin-top: 1rem; }
.rw-mt-8 { margin-top: 2rem; }
.rw-mt-12 { margin-top: 3rem; }
.rw-mb-4 { margin-bottom: 1rem; }
.rw-mb-8 { margin-bottom: 2rem; }
.rw-mb-16 { margin-bottom: 4rem; }
.rw-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.rw-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.rw-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
@media (max-width: 767px) {
  .rw-grid-2, .rw-grid-3, .rw-grid-4 { grid-template-columns: 1fr; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .rw-grid-3, .rw-grid-4 { grid-template-columns: 1fr 1fr; }
}
.rw-section { padding: 6rem 0; }
.rw-section-white { background: #fff; }
.rw-section-cream { background: linear-gradient(180deg, var(--cream2) 0%, var(--cream) 100%); }
