@charset "UTF-8";
/*
 * DESIGN PHILOSOPHY: Warm & Trustworthy（デザインコンセプト：温かみと信頼感）
 * ─────────────────────────────────────
 * Color Journey: Off-White (#FAFAF7) → Milky Yellow (#FFF1C1) → Sage Green (#9DB7A5)
 * Typography: Noto Serif JP (headings) + Noto Sans JP (body)
 * Motifs: Soft curves, warm cards, gentle gradients
 * Animation: Smooth fade-in, gentle scroll effects
 */
.pc-only {
  display: block;
}
@media screen and (max-width: 1023px) {
  .pc-only {
    display: none !important;
  }
}

.tab-only {
  display: none;
}
@media screen and (max-width: 1023px) {
  .tab-only {
    display: block;
  }
}
@media screen and (max-width: 599px) {
  .tab-only {
    display: none;
  }
}

.sp-only {
  display: none !important;
}
@media screen and (max-width: 599px) {
  .sp-only {
    display: block;
  }
}

.tab-down {
  display: none;
}
@media screen and (max-width: 1023px) {
  .tab-down {
    display: block;
  }
}

.lsp-down {
  display: none;
}
@media screen and (max-width: 767px) {
  .lsp-down {
    display: block;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
}
@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: "M PLUS 1p", sans-serif;
  background-color: #fafaf7;
  color: #3d3d3d;
  line-height: 1.8;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  line-height: 1.4;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color 0.3s ease, opacity 0.3s ease;
}
@media (hover: hover) {
  a:hover {
    color: #7a9e8a;
  }
}

.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem;
}
@media screen and (min-width: 600px) {
  .container {
    padding: 0 1.5rem;
  }
}
@media screen and (min-width: 1024px) {
  .container {
    padding: 0 2rem;
  }
}

.btn {
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  padding: 0.75rem 1.5rem;
  border-radius: 9999px;
  border: none;
  cursor: pointer;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 600;
  transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}
.btn.btn-primary {
  background: #9db7a5;
  color: #ffffff;
  border: none;
  border-radius: 9999px;
  padding: 0.75rem 1.5rem;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 16px rgba(157, 183, 165, 0.35);
}
@media (hover: hover) {
  .btn.btn-primary:hover {
    background-color: #7a9e8a;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(157, 183, 165, 0.45);
  }
}
.btn.btn-outline {
  background: transparent;
  color: #7a9e8a;
  border: 2px solid #9db7a5;
  border-radius: 9999px;
  padding: 0.75rem 1.5rem;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.3s ease, background-color 0.3s ease;
}
@media (hover: hover) {
  .btn.btn-outline:hover {
    background-color: #d6e7dd;
    transform: translateY(-2px);
  }
}
.btn.btn-lg {
  padding: 1rem 2rem;
  font-size: clamp(1rem, 1.8vw, 1.125rem);
}
.btn.btn-full {
  width: 100%;
}

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 101;
  transition: background-color 0.5s ease, backdrop-filter 0.5s ease, box-shadow 0.5s ease;
  background: transparent;
}
.navbar.scrolled {
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(20px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
}

.logo-link {
  display: flex;
  align-items: center;
  cursor: pointer;
}
@media (hover: hover) {
  .logo-link:hover {
    opacity: 0.7;
  }
}

.navbar-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 4rem;
  padding: 0 1rem;
}
@media screen and (min-width: 768px) {
  .navbar-content {
    height: 5rem;
    padding: 0 2rem;
  }
}

.logo-text {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 700;
  color: #3d3d3d;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.nav-desktop {
  display: none;
  align-items: center;
  gap: clamp(0.5rem, 1.8vw, 1.8rem);
}
@media screen and (min-width: 1024px) {
  .nav-desktop {
    display: flex;
  }
}

.nav-link {
  font-size: clamp(0.3rem, 0.8vw, 0.8rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 500;
  color: #9a9a9a;
  letter-spacing: 0.02em;
  white-space: nowrap;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .nav-link:hover {
    color: #9db7a5;
  }
}

.menu-toggle {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  background: none;
  border: none;
  cursor: pointer;
}
@media screen and (min-width: 1024px) {
  .menu-toggle {
    display: none;
  }
}
.menu-toggle span {
  width: 1.5rem;
  height: 0.25rem;
  background: #3d3d3d;
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.menu-toggle.active span:nth-child(1) {
  transform: translateY(0.625rem) rotate(45deg);
}
.menu-toggle.active span:nth-child(2) {
  opacity: 0;
}
.menu-toggle.active span:nth-child(3) {
  transform: translateY(-0.625rem) rotate(-45deg);
}

.nav-mobile {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100vh;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(20px);
  z-index: 100;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0.5rem;
  padding: 5rem 2rem 2rem;
  overflow-y: auto;
}
.nav-mobile.active {
  display: flex;
}
@media screen and (min-width: 1024px) {
  .nav-mobile {
    display: none !important;
  }
}

.nav-mobile__logo {
  margin-bottom: 2rem;
  text-align: center;
}

.nav-mobile__logo-img {
  display: block;
  margin: 0 auto;
  width: auto;
  max-width: 100px;
}

.nav-link-mobile {
  font-size: clamp(0.8rem, 1.8vw, 0.9rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 500;
  color: #3d3d3d;
  cursor: pointer;
  text-align: center;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .nav-link-mobile:hover {
    color: #9db7a5;
  }
}

.nav-link-mobile--top {
  color: #3d3d3d !important;
  font-weight: 700 !important;
  border: none !important;
  margin: 0;
}

.breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
  font-family: "M PLUS 1p", sans-serif;
  color: #3d3d3d;
  margin-bottom: 2rem;
  margin-top: 1em;
  padding-left: 5em;
}
@media screen and (max-width: 767px) {
  .breadcrumb {
    padding-left: 3em;
  }
}
.breadcrumb a {
  color: #9a9a9a;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .breadcrumb a:hover {
    color: #7a9e8a;
  }
}
.breadcrumb span[aria-hidden] {
  color: rgba(157, 183, 165, 0.25);
  font-weight: 600;
  font-size: 15px;
}

.floating-social {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 40;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.social-icon {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #9db7a5, #3d3d3d);
  box-shadow: 0 4px 16px rgba(61, 61, 61, 0.2), 0 1px 0 rgba(255, 255, 255, 0.15) inset;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (hover: hover) {
  .social-icon:hover {
    transform: scale(1.1) translateY(-2px);
    box-shadow: 0 8px 24px rgba(61, 61, 61, 0.3), 0 1px 0 rgba(255, 255, 255, 0.2) inset;
  }
}
.social-icon svg {
  width: 1.1rem;
  height: 1.1rem;
  stroke: white;
  stroke-width: 1.8;
  fill: none;
}

.stats {
  background: #fffaed;
  padding: 4rem 1rem;
}
@media screen and (min-width: 768px) {
  .stats {
    padding: 4rem 2rem;
  }
}

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
}

.stat-card {
  text-align: center;
  padding: 2rem;
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
}

.stat-number {
  font-size: clamp(2rem, 4vw, 2.5rem);
  font-family: "Noto Serif JP", serif;
  color: #3d3d3d;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.stat-label {
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  color: #3d3d3d;
  font-family: "Noto Serif JP", serif;
  margin-bottom: 0.25rem;
}

.stat-sublabel {
  font-size: clamp(0.75rem, 1.5vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.features {
  padding: 4rem 1rem;
  background: #fffaed;
}
@media screen and (min-width: 768px) {
  .features {
    padding: 4rem 2rem;
  }
}

.section-header {
  text-align: center;
  margin-bottom: 4rem;
}

.section-label {
  display: inline-block;
  font-size: clamp(1.75rem, 1.5vw, 1.875rem);
  font-family: "M PLUS 1p", sans-serif;
  color: #9db7a5;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 1.5rem;
}

.section-title {
  font-size: clamp(2rem, 5vw, 2.5rem);
  color: #3d3d3d;
  margin-bottom: 1.5rem;
  line-height: 1.2;
}
@media screen and (min-width: 768px) {
  .section-title {
    font-size: clamp(2.5rem, 5vw, 3rem);
  }
}
.section-title .accent-text {
  background: linear-gradient(135deg, #7a9e8a, #9db7a5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.section-description {
  font-size: clamp(1rem, 2vw, 1.125rem);
  color: #9a9a9a;
  max-width: 40rem;
  margin: 0 auto;
  font-family: "M PLUS 1p", sans-serif;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
}

.feature-card {
  padding: 2rem;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
}
@media (hover: hover) {
  .feature-card:hover {
    transform: translateY(-5px);
  }
}

.feature-image {
  width: 100%;
  height: 200px;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 1rem;
  margin-bottom: 1.5rem;
}

.feature-title {
  font-size: clamp(1.1rem, 2vw, 1.25rem);
  color: #3d3d3d;
  margin-bottom: 1.5rem;
}

.feature-list {
  list-style: none;
  text-align: left;
}
.feature-list li {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: #9a9a9a;
  padding: 0.5rem 0;
  padding-left: 1.5rem;
  position: relative;
}
.feature-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #9db7a5;
  font-weight: bold;
}

.product-teaser {
  background: linear-gradient(180deg, #3d3d3d 0%, #7a9e8a 100%);
  color: white;
  padding: 4rem 1rem;
}
@media screen and (min-width: 768px) {
  .product-teaser {
    padding: 4rem 2rem;
  }
}
.product-teaser .section-label {
  color: #fff1c1;
}
.product-teaser .section-title {
  color: white;
}

.teaser-header {
  text-align: center;
  margin-bottom: 4rem;
}

.teaser-description {
  font-size: clamp(1rem, 2vw, 1.125rem);
  color: rgba(255, 255, 255, 0.8);
  max-width: 40rem;
  margin: 0 auto;
}

.teaser-features {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2rem;
  margin-bottom: 4rem;
}

.teaser-feature {
  text-align: center;
  padding: 2rem;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  border: 1px solid rgba(157, 183, 165, 0.15);
  backdrop-filter: blur(10px);
}
.teaser-feature h3 {
  font-size: clamp(1rem, 2vw, 1.125rem);
  margin-bottom: 0.5rem;
  color: white;
}
.teaser-feature p {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: rgba(255, 255, 255, 0.7);
}

.feature-icon {
  font-size: clamp(1.5rem, 3vw, 2rem);
  margin-bottom: 1.5rem;
}

.app-rating {
  text-align: center;
}

.rating-stars {
  font-size: clamp(1rem, 2vw, 1.25rem);
  color: #f5e090;
  letter-spacing: 0.05em;
}

.testimonials {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fffaed 0%, #fafaf7 100%);
}
@media screen and (min-width: 768px) {
  .testimonials {
    padding: 4rem 2rem;
  }
}

.testimonials-carousel {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.testimonial-card {
  padding: 2rem;
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
}

.testimonial-stars {
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  color: #f5e090;
  letter-spacing: 0.1em;
  margin-bottom: 1.5rem;
}

.testimonial-text {
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  color: #3d3d3d;
  line-height: 1.6;
  margin-bottom: 1.5rem;
  font-style: italic;
}

.testimonial-author {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.contact {
  padding: 4rem 1rem;
  background: #fffaed;
}
@media screen and (min-width: 768px) {
  .contact {
    padding: 4rem 2rem;
  }
}

.contact-header {
  text-align: center;
  margin-bottom: 4rem;
}

.contact-description {
  font-size: clamp(1rem, 2vw, 1.125rem);
  color: #9a9a9a;
  max-width: 40rem;
  margin: 0 auto;
}

.contact-form {
  max-width: 40rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.form-group {
  display: flex;
  flex-direction: column;
}

.form-input,
.form-textarea {
  padding: 1.5rem;
  border: 1px solid rgba(157, 183, 165, 0.25);
  border-radius: 0.75rem;
  font-family: "M PLUS 1p", sans-serif;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  color: #3d3d3d;
  transition: border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}
.form-input::-moz-placeholder, .form-textarea::-moz-placeholder {
  color: rgba(100, 100, 100, 0.4);
}
.form-input::placeholder,
.form-textarea::placeholder {
  color: rgba(100, 100, 100, 0.4);
}
.form-input:focus,
.form-textarea:focus {
  outline: none;
  border-color: #9db7a5;
  background-color: rgba(255, 255, 255, 0.9);
  box-shadow: 0 0 0 3px rgba(157, 183, 165, 0.1);
}

.cf7-name-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.contact-divider {
  text-align: center;
  margin: 2rem 0;
  position: relative;
}
.contact-divider::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(157, 183, 165, 0.25);
}
.contact-divider span {
  background: transparent;
  color: #3d3d3d;
}

.contact-form-wrap {
  max-width: 40rem;
  margin: 0 auto;
}
.contact-form-wrap .wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.contact-form-wrap .cf7-field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  text-align: left;
}
.contact-form-wrap .cf7-field label {
  font-size: clamp(0.85rem, 1.5vw, 0.9rem);
  font-weight: 700;
  color: #3d3d3d;
  font-family: "M PLUS 1p", sans-serif;
  text-align: left;
}
.contact-form-wrap .cf7-field .required {
  color: #e07070;
  margin-left: 0.25rem;
}
.contact-form-wrap input[type=text],
.contact-form-wrap textarea {
  width: 100%;
  padding: 1rem 1.5rem;
  border: 1px solid rgba(157, 183, 165, 0.25);
  border-radius: 0.5rem;
  font-family: "M PLUS 1p", sans-serif;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  color: #3d3d3d;
  background: rgba(255, 255, 255, 0.9);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
  text-align: left;
}
.contact-form-wrap input[type=text]:focus,
.contact-form-wrap textarea:focus {
  outline: none;
  border-color: #9db7a5;
  box-shadow: 0 0 0 3px rgba(157, 183, 165, 0.15);
}
.contact-form-wrap input[type=text]::-moz-placeholder, .contact-form-wrap textarea::-moz-placeholder {
  color: rgba(100, 100, 100, 0.4);
}
.contact-form-wrap input[type=text]::placeholder,
.contact-form-wrap textarea::placeholder {
  color: rgba(100, 100, 100, 0.4);
}
.contact-form-wrap textarea {
  min-height: 8rem;
  resize: vertical;
}
.contact-form-wrap input[type=email] {
  width: 100%;
  padding: 1rem 1.5rem;
  border: 1px solid rgba(157, 183, 165, 0.25);
  border-radius: 0.5rem;
  font-family: "M PLUS 1p", sans-serif;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  color: #3d3d3d;
  background: rgba(255, 255, 255, 0.9);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.contact-form-wrap input[type=email]:focus {
  outline: none;
  border-color: #9db7a5;
  box-shadow: 0 0 0 3px rgba(157, 183, 165, 0.15);
}
.contact-form-wrap input[type=email]::-moz-placeholder {
  color: rgba(100, 100, 100, 0.4);
}
.contact-form-wrap input[type=email]::placeholder {
  color: rgba(100, 100, 100, 0.4);
}
.contact-form-wrap input[type=submit] {
  background: #9db7a5;
  color: #ffffff;
  border: none;
  border-radius: 9999px;
  padding: 0.75rem 1.5rem;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 16px rgba(157, 183, 165, 0.35);
}
@media (hover: hover) {
  .contact-form-wrap input[type=submit]:hover {
    background-color: #7a9e8a;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(157, 183, 165, 0.45);
  }
}
.contact-form-wrap input[type=submit] {
  width: 100%;
  padding: 1.5rem;
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  border-radius: 9999px;
}
.contact-form-wrap .wpcf7-response-output {
  align-items: center !important;
  gap: 1rem !important;
  padding: 1rem 1.25rem !important;
  border-radius: 12px !important;
  margin: 0 0 0 !important;
  font-size: 0.95rem !important;
  border: 0.5px solid rgba(157, 183, 165, 0.25) !important;
  background: #ffffff !important;
  color: #4a7a62 !important;
  font-weight: 700 !important;
}
.contact-form-wrap .wpcf7-response-output.wpcf7-mail-sent-ok {
  display: flex !important;
}
.contact-form-wrap .wpcf7-response-output.wpcf7-validation-errors, .contact-form-wrap .wpcf7-response-output.wpcf7-spam-blocked {
  display: flex !important;
  background: #fdeaea !important;
  color: #e07070 !important;
}

.footer {
  background: #7a9e8a;
  color: white;
}

.footer-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;
  margin-bottom: 4rem;
}

.footer-section {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.footer-title {
  font-size: clamp(1rem, 2vw, 1.125rem);
  font-family: "Noto Serif JP", serif;
  color: white;
}

.footer-description {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: rgba(255, 255, 255, 0.7);
}

.footer-links {
  list-style: none;
}
.footer-links li {
  margin-bottom: 0.5rem;
}
.footer-links li a {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .footer-links li a:hover {
    color: #fff1c1;
  }
}

.footer-social {
  display: flex;
  gap: 1.5rem;
}
.footer-social a {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .footer-social a:hover {
    color: #fff1c1;
  }
}

.footer-bottom {
  border-top: 1px solid rgba(157, 183, 165, 0.15);
  padding-top: 2rem;
  text-align: center;
}
.footer-bottom p {
  font-size: clamp(0.75rem, 1.5vw, 0.875rem);
  color: rgba(255, 255, 255, 0.6);
}

::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: #fffaed;
}

::-webkit-scrollbar-thumb {
  background: #9db7a5;
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: #fff1c1;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.nanny-list {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fafaf7 0%, #fffaed 100%);
}
@media screen and (min-width: 768px) {
  .nanny-list {
    padding: 4rem 2rem;
  }
}

.nanny-slider {
  position: relative;
}
.nanny-slider.slick-slider {
  display: block;
  overflow: visible !important;
}
.nanny-slider .slick-list {
  overflow: hidden;
  border-radius: 1rem;
  margin: 0;
  padding: 0;
}
.nanny-slider .slick-track {
  display: flex !important;
  align-items: stretch !important;
}
.nanny-slider .slick-track::before, .nanny-slider .slick-track::after {
  content: "";
  display: table;
}
.nanny-slider .slick-track::after {
  clear: both;
}
.nanny-slider .slick-slide {
  float: left;
  display: block;
  height: auto !important;
}
.nanny-slider .slick-slide > div {
  height: 55%;
  display: flex;
  flex-direction: column;
}
.nanny-slider .slick-prev,
.nanny-slider .slick-next {
  position: absolute;
  top: calc(50% - 1.5rem);
  z-index: 10;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(157, 183, 165, 0.35);
  box-shadow: 0 4px 16px rgba(61, 61, 61, 0.12);
  cursor: pointer;
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
  font-size: 0;
  color: transparent;
}
.nanny-slider .slick-prev::before,
.nanny-slider .slick-next::before {
  content: "";
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  border-top: 2px solid #9db7a5;
  border-right: 2px solid #9db7a5;
}
@media (hover: hover) {
  .nanny-slider .slick-prev:hover,
  .nanny-slider .slick-next:hover {
    background-color: white;
    box-shadow: 0 6px 20px rgba(61, 61, 61, 0.18);
    transform: scale(1.08);
  }
}
.nanny-slider .slick-prev {
  left: -1rem;
}
@media screen and (min-width: 768px) {
  .nanny-slider .slick-prev {
    left: -1.5rem;
  }
}
.nanny-slider .slick-prev::before {
  transform: rotate(-135deg) translate(1px, -1px);
}
.nanny-slider .slick-next {
  right: -1rem;
}
@media screen and (min-width: 768px) {
  .nanny-slider .slick-next {
    right: -1.5rem;
  }
}
.nanny-slider .slick-next::before {
  transform: rotate(45deg) translate(-1px, 1px);
}
.nanny-slider .slick-dots {
  display: none !important;
}

.nanny-card {
  margin: 0 0.75rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  position: relative;
  overflow: hidden;
  border-radius: 1.5rem;
  background: white;
  border: 2px solid rgba(255, 255, 255, 0.95);
  box-shadow: 0 8px 32px rgba(61, 61, 61, 0.1), 0 2px 8px rgba(61, 61, 61, 0.06), 0 0 0 1px rgba(157, 183, 165, 0.18);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (hover: hover) {
  .nanny-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 56px rgba(61, 61, 61, 0.16), 0 4px 12px rgba(61, 61, 61, 0.08), 0 0 0 2px rgba(157, 183, 165, 0.45);
  }
  .nanny-card:hover .nanny-card__photo img {
    transform: scale(1.06);
  }
}

.nanny-card__photo {
  width: 100%;
  height: 280px;
  min-height: 280px;
  max-height: 280px;
  overflow: hidden;
  border-radius: 1.25rem 1.25rem 0 0;
  position: relative;
}
.nanny-card__photo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
}
.nanny-card__photo img,
.nanny-card__photo .nanny-card__placeholder {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  transition: transform 0.5s ease;
  display: block;
}

.nanny-card__placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(160deg, #fffaed 0%, #9db7a5 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
}

.nanny-card__info {
  padding: 1.5rem 1.5rem 2rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  align-items: center;
  text-align: center;
}

.nanny-card__name {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.1rem, 2vw, 1.3rem);
  font-weight: 700;
  color: #3d3d3d;
  margin: 0;
  line-height: 1.3;
}

.nanny-card__badge {
  font-size: clamp(0.65rem, 1.2vw, 0.75rem);
  font-family: "M PLUS 1p", sans-serif;
  color: #9db7a5;
  background: rgba(157, 183, 165, 0.12);
  border: 1px solid rgba(157, 183, 165, 0.35);
  border-radius: 9999px;
  padding: 0.2rem 0.75rem;
  white-space: nowrap;
}

.nanny-card__details {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding-top: 1rem;
  margin-top: 0.25rem;
  text-align: left;
  flex: 1;
}

.nanny-card__cta {
  margin-top: 1.5rem;
  text-align: center;
  padding-bottom: 1.5rem;
  width: 100%;
  flex-shrink: 0;
}

.nanny-card__detail-item {
  display: flex;
  gap: 0.4rem;
  align-items: flex-start;
  font-family: "M PLUS 1p", sans-serif;
}
.nanny-card__detail-item dt {
  font-size: clamp(0.6rem, 1.2vw, 0.7rem);
  font-weight: 600;
  color: #9db7a5;
  white-space: nowrap;
  padding-top: 0.1rem;
  min-width: 2.5rem;
}
.nanny-card__detail-item dd {
  font-size: clamp(0.7rem, 1.3vw, 0.8rem);
  color: #3d3d3d;
  line-height: 1.5;
  margin: 0;
}

.nanny-card__message {
  font-size: clamp(0.7rem, 1.3vw, 0.8rem);
  color: #9a9a9a;
  font-style: italic;
  font-family: "Noto Serif JP", serif;
  line-height: 1.6;
  margin: 0;
}

.nanny-empty {
  text-align: center;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  padding: 4rem 0;
}

.logo-circle {
  background: #9db7a5;
  box-shadow: 0 2px 8px rgba(157, 183, 165, 0.4);
}

.nav-link {
  color: #9a9a9a;
}
@media (hover: hover) {
  .nav-link:hover {
    color: #7a9e8a;
  }
}

.menu-toggle span {
  background-color: #3d3d3d;
}

.navbar.scrolled {
  background: rgba(250, 250, 247, 0.92);
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
}

.line-fixed-btn {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%) translateY(120px);
  z-index: 100;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 2rem;
  border-radius: 9999px;
  background: #06c755;
  color: #ffffff;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  box-shadow: 0 4px 24px rgba(6, 199, 85, 0.4);
  opacity: 0;
  transition: transform 0.4s ease, opacity 0.4s ease, background-color 0.3s ease;
  white-space: nowrap;
}
.line-fixed-btn.is-visible {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}
@media (hover: hover) {
  .line-fixed-btn:hover {
    background-color: #05b34c;
  }
}
.line-fixed-btn svg {
  flex-shrink: 0;
}

@keyframes heroSlideDown {
  from {
    opacity: 0;
    transform: translateY(-60px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes heroFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}
@keyframes heroLogoFade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  /* iOSのSafari対策 */
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  padding-top: 5rem;
  background: #fffaed;
}
@media screen and (min-width: 768px) {
  .hero {
    padding-top: 7rem;
  }
}

.hero-bg {
  position: absolute;
  inset: 0;
  background: #fffaed;
  z-index: 0;
}

.hero::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 6rem;
  background: linear-gradient(to bottom, transparent, #fafaf7);
  z-index: 3;
  pointer-events: none;
}

.hero-deco {
  position: absolute;
  top: 7rem;
  left: 0;
  right: 0;
  z-index: 1;
  pointer-events: none;
  animation: heroSlideDown 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}
.hero-deco img {
  width: 100%;
  height: auto;
  display: block;
}

.hero-balloon {
  position: absolute;
  z-index: 1;
  pointer-events: none;
}
.hero-balloon img {
  width: 100%;
  height: auto;
}
.hero-balloon--left {
  top: 38%;
  left: 4%;
  width: clamp(80px, 10vw, 250px);
  animation: heroFloat 6s ease-in-out infinite 1s;
}
.hero-balloon--right {
  bottom: 20%;
  right: 5%;
  width: clamp(85px, 15vw, 270px);
  animation: heroFloat 5s ease-in-out infinite 2s;
}
.hero-balloon--right img {
  transform: scale(-1, 1);
}

.hero .container {
  position: relative;
  z-index: 2;
  width: 100%;
}

.hero-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  text-align: center;
  padding: 4rem 0;
}

.hero-logo {
  width: clamp(240px, 35vw, 380px);
  animation: heroLogoFade 1.8s ease 1.2s both;
}
.hero-logo img {
  width: 100%;
  height: auto;
  display: block;
}

.hero-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  max-width: 36rem;
}

.hero .btn-outline {
  background: rgba(255, 255, 255, 0.85);
  border-color: #9db7a5;
  color: #7a9e8a;
}
@media (hover: hover) {
  .hero .btn-outline:hover {
    background-color: #ffffff;
  }
}

.navbar {
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(12px);
}
.navbar.scrolled {
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
}

.section-divider {
  position: absolute;
  left: 50%;
  transform: translateX(-50%) translateY(28px);
  z-index: 2;
  pointer-events: none;
  width: 100%;
  text-align: center;
  top: -5em;
  opacity: 0;
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.section-divider.in-view {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.section-divider img {
  width: clamp(150px, 55%, 200px);
  height: auto;
  display: block;
  margin: 0 auto;
  opacity: 0.88;
}

.btn-line {
  background: #06c755;
  color: #ffffff;
  border: none;
  border-radius: 9999px;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.3s ease, background-color 0.3s ease;
}
@media (hover: hover) {
  .btn-line:hover {
    background-color: #05b34c;
    transform: translateY(-2px);
  }
}
.btn-line {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
}
.btn-line.btn-lg {
  padding: 0.75rem 1.25rem;
  font-size: clamp(0.875rem, 1.8vw, 1.125rem);
  white-space: nowrap;
}
@media screen and (min-width: 1024px) {
  .btn-line.btn-lg {
    padding: 0.75rem 1.25rem;
    font-size: clamp(1rem, 1.8vw, 1.125rem);
  }
}

.section-header {
  text-align: center;
  margin-bottom: 4rem;
}

.section-label {
  display: block;
  font-size: clamp(0.7rem, 1.2vw, 0.8rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  color: #9db7a5;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 0.5rem;
}

.section-title {
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  color: #3d3d3d;
  margin-bottom: 1rem;
  line-height: 1.4;
}
.section-title .accent-text {
  background: linear-gradient(135deg, #7a9e8a, #9db7a5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.section-description {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #9a9a9a;
  max-width: 40rem;
  margin: 0 auto;
  line-height: 1.8;
}

.section-cta {
  text-align: center;
  margin-top: 3rem;
}

.scroll-indicator {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  opacity: 0.5;
}
.scroll-indicator span {
  font-size: clamp(0.65rem, 1.2vw, 0.75rem);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.chevron {
  font-size: 1rem;
  animation: bounce 2s infinite;
  color: #9db7a5;
}

.top-news {
  padding: 4rem 1rem;
  background: #fafaf7;
  position: relative;
  overflow: visible;
}
@media screen and (min-width: 1024px) {
  .top-news {
    padding: 4rem 2rem;
  }
}

.top-news .section-divider {
  top: -5rem;
  bottom: auto;
  z-index: 10;
}

.news-list {
  max-width: 48rem;
  margin: 0 auto 3rem;
  border: 5px solid #7a9e8a;
  border-radius: 1rem;
  overflow: hidden;
}

.news-item {
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
}
.news-item:last-child {
  border-bottom: none;
}

.news-item__link {
  display: flex;
  align-items: baseline;
  gap: 2rem;
  padding: 1.5rem 2rem;
  transition: background-color 0.3s ease;
}
@media (hover: hover) {
  .news-item__link:hover {
    background-color: #fffaed;
  }
}

.news-item__date {
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  white-space: nowrap;
  flex-shrink: 0;
}

.news-item__title {
  font-size: clamp(0.875rem, 1.6vw, 1rem);
  color: #3d3d3d;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.6;
}

.news-empty {
  text-align: center;
  color: #9a9a9a;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  padding: 3rem 0;
}

.news-archive {
  padding: 4rem 1rem;
  background: #fafaf7;
  min-height: 40vh;
}
@media screen and (min-width: 1024px) {
  .news-archive {
    padding: 4rem 2rem;
  }
}

.news-archive__pager {
  text-align: center;
  margin-top: 3rem;
}
.news-archive__pager .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  font-size: clamp(0.85rem, 1.5vw, 0.95rem);
  font-family: "M PLUS 1p", sans-serif;
  color: #9a9a9a;
  border: 1px solid rgba(157, 183, 165, 0.25);
  margin: 0 0.25rem;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.news-archive__pager .page-numbers.current {
  background: #9db7a5;
  color: #ffffff;
  border-color: #9db7a5;
}
@media (hover: hover) {
  .news-archive__pager .page-numbers:hover:not(.current) {
    background: #d6e7dd;
    color: #7a9e8a;
  }
}
.news-archive__pager .prev,
.news-archive__pager .next {
  width: auto;
  padding: 0 1rem;
  border-radius: 9999px;
}

.news-single-hero {
  position: relative;
  background: linear-gradient(to bottom, #fffaed 0%, #fafaf7 100%);
  padding: 8rem 0 4rem;
  overflow: hidden;
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .news-single-hero {
    padding: 15rem 0 4rem;
  }
}

.news-single-hero__deco {
  position: absolute;
  top: 5rem;
  left: 0;
  right: 0;
  z-index: 1;
  pointer-events: none;
  animation: heroSlideDown 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}
.news-single-hero__deco img {
  width: 100%;
  height: auto;
  display: block;
}

.news-single-hero__inner {
  position: relative;
  z-index: 2;
}
.news-single-hero__inner .section-label {
  display: inline-block;
  margin-bottom: 1rem;
}

.news-single-hero__title {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  color: #3d3d3d;
  line-height: 1.3;
}

.news-single {
  padding: 4rem 1rem;
  background: #fffaed;
  min-height: 40vh;
}
@media screen and (min-width: 1024px) {
  .news-single {
    padding: 4rem 2rem;
  }
}

.news-single__article {
  max-width: 48rem;
  margin: 0 auto;
}

.news-single__breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  margin-bottom: 2rem;
}
.news-single__breadcrumb a {
  color: #9a9a9a;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .news-single__breadcrumb a:hover {
    color: #7a9e8a;
  }
}

.news-single__header {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 2rem 3rem;
  margin-bottom: 3rem;
  border-left: 4px solid #9db7a5;
}

.news-single__date {
  display: block;
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  margin-bottom: 1rem;
}

.news-single__title {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  color: #3d3d3d;
  line-height: 1.5;
}

.news-single__body {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 3rem;
  margin-bottom: 3rem;
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #3d3d3d;
  line-height: 1.9;
  font-family: "M PLUS 1p", sans-serif;
}
.news-single__body p {
  margin-bottom: 1.5rem;
}
.news-single__body p:last-child {
  margin-bottom: 0;
}

.news-single__back {
  text-align: center;
}

.top-service {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fafaf7 0%, #d6e7dd 100%);
}
@media screen and (min-width: 768px) {
  .top-service {
    padding: 4rem 2rem;
  }
}

.top-reasons {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #d6e7dd 0%, #fffaed 60%, #fafaf7 100%);
  position: relative;
}
@media screen and (min-width: 768px) {
  .top-reasons {
    padding: 6rem 2rem;
  }
}

.service-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media screen and (min-width: 600px) {
  .service-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.service-card {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  overflow: hidden;
  padding: 0;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (hover: hover) {
  .service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(61, 61, 61, 0.1);
  }
  .service-card:hover .service-card__img img {
    transform: scale(1.05);
  }
}

.service-card__img {
  overflow: hidden;
  aspect-ratio: 1/1;
}
.service-card__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.service-card__body {
  padding: 1.5rem 2rem 2rem;
}

.service-card__title {
  font-size: clamp(1rem, 2vw, 1.125rem);
  color: #3d3d3d;
  margin-bottom: 1rem;
}

.service-card__link {
  font-size: clamp(0.8rem, 1.5vw, 0.875rem);
  color: #7a9e8a;
  font-weight: 700;
  transition: color 0.3s ease, opacity 0.3s ease;
}
@media (hover: hover) {
  .service-card__link:hover {
    opacity: 0.7;
  }
}

.about-intro {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fffaed 0%, #fafaf7 100%);
}
@media screen and (min-width: 1024px) {
  .about-intro {
    padding: 4rem 2rem;
  }
}

.about-intro__inner {
  max-width: 48rem;
  margin: 0 auto;
}

.about-intro__catch {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  color: #3d3d3d;
  line-height: 1.6;
  margin-bottom: 3rem;
}

.about-intro__text {
  font-size: clamp(0.8rem, 1.8vw, 0.9rem);
  color: #9a9a9a;
  line-height: 1.9;
  margin-bottom: 1.5rem;
}
.about-intro__text--quote {
  background: #fffaed;
  border: 1px solid rgba(255, 241, 193, 0.8);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.05);
  padding: 2rem;
  margin-top: 2rem;
  font-style: italic;
  font-family: "Noto Serif JP", serif;
  color: #3d3d3d;
  line-height: 2;
}

.about-features {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fafaf7 0%, #d6e7dd 50%, #fafaf7 100%);
}
@media screen and (min-width: 1024px) {
  .about-features {
    padding: 4rem 2rem;
  }
}

.about-feature {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 3rem;
  margin-bottom: 2rem;
  max-width: 48rem;
  margin-left: auto;
  margin-right: auto;
}
.about-feature:last-child {
  margin-bottom: 0;
}

.about-feature__head {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.about-feature__num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: #9db7a5;
  line-height: 1;
  flex-shrink: 0;
}

.about-feature__title {
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: #3d3d3d;
  line-height: 1.5;
}

.about-feature__text {
  font-size: clamp(0.875rem, 1.6vw, 0.95rem);
  color: #9a9a9a;
  line-height: 1.9;
  margin-bottom: 1.5rem;
}
.about-feature__text:last-child {
  margin-bottom: 0;
}

.about-feature__list {
  list-style: none;
  margin-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.about-feature__list li {
  font-size: clamp(0.875rem, 1.6vw, 0.95rem);
  color: #9a9a9a;
  padding-left: 1.25rem;
  position: relative;
}
.about-feature__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #9db7a5;
  font-weight: 700;
}

.about-comparison {
  padding: 4rem 1rem;
  background: #fffaed;
}
@media screen and (min-width: 1024px) {
  .about-comparison {
    padding: 4rem 2rem;
  }
}

.about-comparison__table-wrap {
  max-width: 48rem;
  margin: 0 auto;
  overflow-x: auto;
}

.about-comparison__table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(0.8rem, 1.6vw, 0.95rem);
  font-family: "M PLUS 1p", sans-serif;
}
.about-comparison__table thead tr th:first-child {
  background: transparent !important;
  border: none !important;
  width: 35%;
}
.about-comparison__table thead tr th {
  background: #3d3d3d;
  color: #ffffff;
  font-weight: 700;
  font-size: clamp(0.8rem, 1.5vw, 0.9rem);
  width: 28.5%;
}
.about-comparison__table thead tr th.about-comparison__th--highlight {
  background: #9db7a5 !important;
  color: #ffffff !important;
  font-size: clamp(0.9rem, 1.6vw, 1rem);
  border: 3px solid #9db7a5;
}
.about-comparison__table th,
.about-comparison__table td {
  background: #ffffff;
  padding: clamp(0.4rem, 1.5vw, 1rem);
  text-align: center;
  border: 0.5px solid rgba(157, 183, 165, 0.25);
}
.about-comparison__table tbody tr:nth-child(even) td:not(.about-comparison__td--highlight) {
  background: #ffffff;
}

.about-comparison__th--highlight {
  background: #4a7a62 !important;
  color: #ffffff !important;
  font-size: clamp(0.9rem, 1.6vw, 1rem);
  border: 3px solid #3a5e4a !important;
  border-bottom: none !important;
}

.about-comparison__td--highlight {
  background: rgba(157, 183, 165, 0.15);
  color: #2d5a42;
  font-weight: 700;
  border-left: 3px solid #3a5e4a !important;
  border-right: 3px solid #3a5e4a !important;
  width: 40%;
}

tbody tr:last-child td.about-comparison__td--highlight {
  border-bottom: 3px solid #3a5e4a !important;
}

.about-comparison {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fafaf7 0%, #fffaed 100%);
}
@media screen and (min-width: 1024px) {
  .about-comparison {
    padding: 4rem 2rem;
  }
}
.about-comparison__label {
  font-size: clamp(0.75rem, 1.6vw, 1.15rem);
  text-align: left !important;
  font-weight: 700;
  color: #3d3d3d;
  background: #ffffff !important;
  width: 35%;
}

.about-cta {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fffaed 0%, #fafaf7 100%);
}
@media screen and (min-width: 1024px) {
  .about-cta {
    padding: 4rem 2rem;
  }
}

.about-cta__inner {
  padding: 0 3rem;
  text-align: center;
  max-width: 40rem;
  margin: 0 auto;
}

.about-cta__text {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1rem, 2.5vw, 1.25rem);
  color: #3d3d3d;
  margin-bottom: 2rem;
}

.service-intro {
  padding: 4rem 1rem;
}
@media screen and (min-width: 1024px) {
  .service-intro {
    padding: 4rem 2rem;
  }
}

.service-intro__inner {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  max-width: 48rem;
  margin: 0 auto;
  padding: 3rem;
  text-align: center;
}

.service-intro__title {
  font-size: clamp(1.1rem, 2.5vw, 1.4rem);
  color: #3d3d3d;
  margin-bottom: 1.5rem;
}

.service-intro__lead {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #9a9a9a;
  margin-bottom: 1.5rem;
}

.service-intro__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.service-intro__list li {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #3d3d3d;
  font-weight: 700;
  padding: 1rem 2rem;
  background: #d6e7dd;
  border-radius: 9999px;
  display: inline-block;
}

.service-detail {
  padding: 4rem 1rem;
  background: #fafaf7;
}
@media screen and (min-width: 1024px) {
  .service-detail {
    padding: 4rem 2rem;
  }
}

.service-cards {
  max-width: 48rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.service-card-detail {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 3rem;
}
.service-card-detail[data-direction=left] {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.service-card-detail[data-direction=right] {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.service-card-detail.in-view {
  opacity: 1;
  transform: translateX(0);
}

.service-card-detail__head {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 2px solid #fff1c1;
}

.service-card-detail__num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: #9db7a5;
  line-height: 1;
  flex-shrink: 0;
}

.service-card-detail__title {
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: #3d3d3d;
  line-height: 1.4;
}

.service-card-detail__lead {
  font-size: clamp(0.875rem, 1.6vw, 0.95rem);
  color: #9a9a9a;
  line-height: 1.9;
  margin-bottom: 1.5rem;
}
.service-card-detail__lead:last-child {
  margin-bottom: 0;
}

.service-card-detail__list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.service-card-detail__list li {
  font-size: clamp(0.8rem, 1.5vw, 0.875rem);
  color: #7a9e8a;
  background: #d6e7dd;
  border-radius: 9999px;
  padding: 0.25rem 0.875rem;
  font-weight: 700;
}

.service-card-detail__notes {
  list-style: none;
  margin-top: 1.5rem;
}
.service-card-detail__notes li {
  font-size: clamp(0.75rem, 1.3vw, 0.8rem);
  color: #9a9a9a;
  line-height: 1.7;
}

.price-free-banner {
  background: linear-gradient(135deg, #4a7a62, #7a9e8a);
  padding: 1.5rem 1rem;
  text-align: center;
  border-radius: 0;
}
.price-free-banner__text {
  font-size: clamp(0.9rem, 1.8vw, 1.1rem);
  color: #ffffff;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.6;
}
.price-free-banner__text strong {
  font-size: clamp(1rem, 2vw, 1.2rem);
}

.price-formula {
  padding: 4rem 1rem;
  background: #fafaf7;
}
@media screen and (min-width: 1024px) {
  .price-formula {
    padding: 4rem 2rem;
  }
}

.price-formula__inner {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 1rem;
  margin: 0 auto 2rem;
  max-width: 56rem;
}

.price-formula__inner--pc {
  display: flex !important;
}
@media screen and (max-width: 1023px) {
  .price-formula__inner--pc {
    display: none !important;
  }
}

.price-formula__inner--sp {
  display: none !important;
}
@media screen and (max-width: 1023px) {
  .price-formula__inner--sp {
    display: flex !important;
    flex-direction: column;
    align-items: center;
  }
}

.price-formula__inner.tab-down {
  flex-direction: column;
  align-items: center;
}

.price-formula__grid {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  max-width: 28rem;
}

.price-formula__grid-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.price-formula__item {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 0.5rem;
  text-align: center;
  flex: 1;
  max-width: 11rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 10rem;
}
.price-formula__item--total {
  background: #fffaed;
  border: 3px solid #4a7a62;
  border-radius: 1rem;
  box-shadow: 0 4px 16px rgba(74, 122, 98, 0.15);
  max-width: 28rem;
  width: 100%;
  min-height: auto;
}
.price-formula__item--total .price-formula__num {
  color: #7a9e8a;
  font-size: clamp(1.75rem, 3.5vw, 2.25rem);
}

.price-formula__plus {
  font-size: clamp(1rem, 2vw, 1.5rem);
  font-weight: 700;
  color: #9db7a5;
  flex-shrink: 0;
  align-self: center;
}

.price-formula__equal {
  font-size: clamp(1rem, 2vw, 1.5rem);
  font-weight: 700;
  color: #3d3d3d;
  flex-shrink: 0;
  align-self: center;
}

.price-formula__label {
  display: inline-block;
  font-size: clamp(0.7rem, 1.2vw, 0.8rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  color: #ffffff;
  background: #9db7a5;
  border-radius: 9999px;
  padding: 0.2rem 0.75rem;
  margin-bottom: 1rem;
}

.price-formula__num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: #3d3d3d;
  line-height: 1.2;
  margin-bottom: 0.25rem;
}
.price-formula__num span {
  font-size: clamp(0.8rem, 1.5vw, 0.9rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 400;
  color: #9a9a9a;
}
.price-formula__num--sm {
  font-size: clamp(0.65rem, 1.8vw, 0.95rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  line-height: 1.6;
}

.price-formula__sub {
  font-size: clamp(0.6rem, 1vw, 0.75rem);
  color: #4a7a62;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: bold;
}

.price-formula__note {
  max-width: 48rem;
  margin: 0 auto;
  font-size: clamp(0.65rem, 1.3vw, 0.85rem);
  color: #3d3d3d;
  font-weight: 800;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.8;
  text-align: center;
}

.price-options {
  padding: 4rem 1rem;
  background: #fffaed;
}
@media screen and (min-width: 1024px) {
  .price-options {
    padding: 4rem 2rem;
  }
}

.price-option-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  max-width: 48rem;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
  .price-option-cards {
    grid-template-columns: repeat(3, 1fr);
  }
}

.price-option-card {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 2rem;
  text-align: center;
}
.price-option-card__icon {
  font-size: 1.75rem;
  margin-bottom: 1rem;
}
.price-option-card__title {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #3d3d3d;
  font-family: "Noto Serif JP", serif;
  margin-bottom: 1rem;
  line-height: 1.5;
}
.price-option-card__title span {
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
  color: #9a9a9a;
  font-weight: 400;
}
.price-option-card__price {
  font-size: clamp(0.85rem, 1.6vw, 0.95rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.7;
}
.price-option-card__price strong {
  color: #7a9e8a;
  font-size: clamp(1rem, 2vw, 1.125rem);
}
.price-option-card__price span {
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
}

.price-cancel {
  padding: 4rem 1rem;
  background: #fafaf7;
}
@media screen and (min-width: 1024px) {
  .price-cancel {
    padding: 4rem 2rem;
  }
}

.price-cancel__lead {
  max-width: 48rem;
  margin: 0 auto 3rem;
  font-size: clamp(0.875rem, 1.6vw, 0.95rem);
  color: #3d3d3d;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.8;
  text-align: center;
}

.price-cancel__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  max-width: 48rem;
  margin: 0 auto 2rem;
}
@media screen and (min-width: 768px) {
  .price-cancel__list {
    grid-template-columns: repeat(3, 1fr);
  }
}

.price-cancel__item {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 2rem;
  text-align: center;
  border-top: 4px solid rgba(157, 183, 165, 0.25);
}
.price-cancel__item--free {
  border-top-color: #9db7a5;
}
.price-cancel__item--half {
  border-top-color: #f5e090;
}
.price-cancel__item--full {
  border-top-color: #e07070;
}

.price-cancel__timing {
  font-size: clamp(0.8rem, 1.5vw, 0.9rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.price-cancel__fee {
  font-family: "M PLUS 1p", sans-serif;
  font-size: clamp(1.1rem, 2.5vw, 1.5rem);
  color: #3d3d3d;
}
.price-cancel__fee strong {
  color: #7a9e8a;
}

.price-cancel__note {
  max-width: 48rem;
  margin: 0 auto;
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.8;
  text-align: center;
}

.price-payment {
  padding: 4rem 1rem;
  background: #fffaed;
}
@media screen and (min-width: 1024px) {
  .price-payment {
    padding: 4rem 2rem;
  }
}

.price-payment__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  flex-wrap: wrap;
}
@media screen and (max-width: 1023px) {
  .price-payment__inner {
    flex-direction: column;
  }
}

.price-payment__method {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 2rem 4rem;
  text-align: center;
}
.price-payment__method__icon {
  font-size: 2rem;
  margin-bottom: 1rem;
}
.price-payment__method p {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #3d3d3d;
  font-weight: 700;
  font-family: "M PLUS 1p", sans-serif;
}

.price-payment__icon {
  font-size: 2rem;
  display: block;
  margin-bottom: 1rem;
}

.price-payment__or {
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 700;
  color: #9a9a9a;
  font-family: "Noto Serif JP", serif;
}

.top-flow {
  padding: 4rem 1rem;
  background: #fffaed;
}
@media screen and (min-width: 768px) {
  .top-flow {
    padding: 4rem 2rem;
  }
}

.testimonials {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fffaed 0%, #fafaf7 100%);
}
@media screen and (min-width: 768px) {
  .testimonials {
    padding: 4rem 2rem;
  }
}

.testimonials-carousel {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media screen and (min-width: 600px) {
  .testimonials-carousel {
    grid-template-columns: repeat(3, 1fr);
  }
}

.testimonial-card {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 2rem;
}

.testimonial-stars {
  font-size: 1rem;
  color: #f5e090;
  margin-bottom: 1rem;
  letter-spacing: 0.05em;
}

.testimonial-text {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: #3d3d3d;
  line-height: 1.8;
  margin-bottom: 1rem;
  font-style: italic;
}

.testimonial-author {
  font-size: clamp(0.75rem, 1.5vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.top-blog {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fffaed 0%, #d6e7dd 100%);
}
@media screen and (min-width: 768px) {
  .top-blog {
    padding: 4rem 2rem;
  }
}

.blog-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media screen and (min-width: 600px) {
  .blog-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.blog-card {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (hover: hover) {
  .blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(61, 61, 61, 0.1);
  }
}

.blog-card__thumb {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
}
.blog-card__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.4s ease;
}
@media (hover: hover) {
  .blog-card:hover .blog-card__thumb img {
    transform: scale(1.04);
  }
}

.blog-card__no-image {
  width: 100%;
  height: 100%;
  background: #fffaed;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  color: #9a9a9a;
}

.blog-card__info {
  padding: 1.5rem;
}

.blog-card__meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.blog-card__date {
  font-size: clamp(0.7rem, 1.2vw, 0.8rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.blog-card__cat {
  font-size: clamp(0.65rem, 1.2vw, 0.75rem);
  color: #7a9e8a;
  background: #d6e7dd;
  border-radius: 9999px;
  padding: 0.15rem 0.6rem;
  font-weight: 700;
}

.blog-card__title {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  line-height: 1.6;
}
.blog-card__title a {
  color: #3d3d3d;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .blog-card__title a:hover {
    color: #7a9e8a;
  }
}

.blog-empty {
  text-align: center;
  color: #9a9a9a;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  padding: 4rem 0;
}

.top-contact {
  padding: 4rem 1rem;
  background: #ffffff;
  text-align: center;
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .top-contact {
    padding: 4rem 2rem;
  }
}

.contact-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.contact-bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  display: block;
}
.contact-bg__overlay {
  position: absolute;
  inset: 0;
  background: rgba(250, 250, 247, 0.82);
}

.top-contact .container {
  position: relative;
  z-index: 1;
}

.contact-buttons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 2rem;
}
@media screen and (min-width: 600px) {
  .contact-buttons {
    flex-direction: row;
    justify-content: center;
  }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.top-price {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fafaf7 0%, #fffaed 100%);
}
@media screen and (min-width: 768px) {
  .top-price {
    padding: 4rem 2rem;
  }
}

.price-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  max-width: 56rem;
  margin: 0 auto;
}
@media screen and (min-width: 600px) {
  .price-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.price-card {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (hover: hover) {
  .price-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(61, 61, 61, 0.1);
  }
}
.price-card--featured {
  background: #fff1c1;
  border-color: rgba(255, 241, 193, 0.8);
  box-shadow: 0 6px 24px rgba(61, 61, 61, 0.1), 0 0 0 2px #f5e090;
}

.price-card__badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: clamp(0.65rem, 1.2vw, 0.75rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  color: #3d3d3d;
  background: #f5e090;
  border-radius: 9999px;
  padding: 0.2rem 0.75rem;
}

.price-card__head {
  padding: 1.5rem 1.5rem 1rem;
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
}

.price-card__plan {
  font-size: clamp(1rem, 2vw, 1.125rem);
  color: #3d3d3d;
  margin-bottom: 0.25rem;
}

.price-card__desc {
  font-size: clamp(0.75rem, 1.2vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.price-card__body {
  padding: 1.5rem;
  flex: 1;
}

.price-card__price {
  display: flex;
  align-items: baseline;
  gap: 0.3rem;
  margin-bottom: 1.5rem;
}

.price-card__num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  color: #7a9e8a;
  line-height: 1;
}

.price-card__unit {
  font-size: clamp(0.75rem, 1.2vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.price-card__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.price-card__list li {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: #9a9a9a;
  padding-left: 1.25rem;
  position: relative;
}
.price-card__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #9db7a5;
  font-weight: 700;
}

.price-card__foot {
  padding: 0 1.5rem 1.5rem;
  text-align: center;
}

.top-faq {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #d6e7dd 0%, #d6e7dd 30%, #fafaf7 60%);
}
@media screen and (min-width: 768px) {
  .top-faq {
    padding: 4rem 2rem;
  }
}

.faq-list {
  max-width: 48rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.faq-item {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  overflow: hidden;
}

.faq-item__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.5rem 2rem;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: "M PLUS 1p", sans-serif;
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  font-weight: 700;
  color: #3d3d3d;
  transition: background-color 0.3s ease;
}
@media (hover: hover) {
  .faq-item__q:hover {
    background-color: rgba(157, 183, 165, 0.06);
  }
}

.faq-item__icon {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  position: relative;
}
.faq-item__icon::before, .faq-item__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.75rem;
  height: 1.5px;
  background-color: #7a9e8a;
  transform: translate(-50%, -50%);
  transition: transform 0.3s ease;
}
.faq-item__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item__q[aria-expanded=true] .faq-item__icon::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.faq-item__q[aria-expanded=true] .faq-item__icon::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.faq-item__a[hidden] {
  display: none;
}
.faq-item__a p {
  padding: 0 2rem 1.5rem;
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: #9a9a9a;
  line-height: 1.8;
  border-top: 1px solid rgba(157, 183, 165, 0.25);
  padding-top: 1.5rem;
  margin: 0 2rem 1.5rem;
}

.faq-page {
  padding: 4rem 1rem;
  background: #fafaf7;
  min-height: 40vh;
}
@media screen and (min-width: 1024px) {
  .faq-page {
    padding: 4rem 2rem;
  }
}

.faq-page__group {
  max-width: 48rem;
  margin: 0 auto 4rem;
}
.faq-page__group:last-of-type {
  margin-bottom: 0;
}

.faq-page__group-title {
  font-size: clamp(1rem, 2vw, 1.2rem);
  color: #7a9e8a;
  font-family: "Noto Serif JP", serif;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #d6e7dd;
}

.faq-item__list {
  list-style: none;
  margin: 1rem 0;
  padding: 0 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.faq-item__list li {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: #9a9a9a;
  padding-left: 1rem;
  position: relative;
}
.faq-item__list li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #9db7a5;
}

.faq-page__cta {
  max-width: 48rem;
  margin: 4rem auto 0;
  text-align: center;
}

.faq-page__cta-text {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #9a9a9a;
  margin-bottom: 2rem;
  font-family: "M PLUS 1p", sans-serif;
}

.sns-float {
  position: fixed;
  right: 1.25rem;
  bottom: 50rem;
  z-index: 100;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
}
.sns-float.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.sns-float__btn {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  box-shadow: 0 4px 16px rgba(61, 61, 61, 0.2);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  text-decoration: none;
}
@media (hover: hover) {
  .sns-float__btn:hover {
    transform: scale(1.1) translateY(-2px);
    box-shadow: 0 8px 24px rgba(61, 61, 61, 0.25);
  }
}
.sns-float__btn--line {
  background: #06c755;
}
.sns-float__btn--instagram {
  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
}

.sns-float__label {
  font-size: 0.45rem;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  color: white;
  line-height: 1;
  letter-spacing: 0.02em;
}

.nanny-single {
  padding: 6rem 1rem 4rem;
  background: #fafaf7;
}
@media screen and (min-width: 768px) {
  .nanny-single {
    padding: 7rem 2rem 4rem;
  }
}

.nanny-single__back {
  margin-bottom: 2rem;
}

.nanny-single__back-link {
  font-size: clamp(0.8rem, 1.5vw, 0.9rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .nanny-single__back-link:hover {
    color: #7a9e8a;
  }
}

.nanny-single__inner {
  max-width: 720px;
  margin: 0 auto;
}

.nanny-single__top {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  overflow: hidden;
  margin-bottom: 2rem;
}

.nanny-single__photo {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
  position: relative;
}
.nanny-single__photo img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  display: block;
}

.nanny-single__photo-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(160deg, #fffaed, #d6e7dd);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Serif JP", serif;
  font-size: 4rem;
  font-weight: 700;
  color: #7a9e8a;
}

.nanny-single__basic {
  padding: 2rem;
}

.nanny-single__name {
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: #3d3d3d;
  margin-bottom: 1rem;
}

.nanny-single__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.nanny-single__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: clamp(0.7rem, 1.2vw, 0.8rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  color: #7a9e8a;
  background: #d6e7dd;
  border-radius: 9999px;
  padding: 0.25rem 0.75rem;
}
.nanny-single__tag svg {
  flex-shrink: 0;
}

.nanny-single__rate {
  display: flex;
  align-items: baseline;
  gap: 0.3rem;
  margin-bottom: 2rem;
}

.nanny-single__rate-label {
  font-size: clamp(0.75rem, 1.2vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.nanny-single__rate-num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  color: #7a9e8a;
  line-height: 1;
}

.nanny-single__rate-unit {
  font-size: clamp(0.75rem, 1.2vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.nanny-single__cta .btn-line {
  width: 100%;
  justify-content: center;
}

.nanny-single__section {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 2rem;
  margin-bottom: 1.5rem;
}

.nanny-single__section-title {
  font-size: clamp(1rem, 2vw, 1.125rem);
  color: #3d3d3d;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #fff1c1;
}

.nanny-single__appeal {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #3d3d3d;
  line-height: 1.9;
  font-family: "M PLUS 1p", sans-serif;
}

.nanny-single__profile {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.nanny-single__profile-item {
  display: grid;
  grid-template-columns: 6rem 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
}
.nanny-single__profile-item:last-child {
  border-bottom: none;
}
.nanny-single__profile-item dt {
  font-size: clamp(0.75rem, 1.2vw, 0.875rem);
  font-weight: 700;
  color: #7a9e8a;
  font-family: "M PLUS 1p", sans-serif;
  padding-top: 0.1rem;
}
.nanny-single__profile-item dd {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: #3d3d3d;
  line-height: 1.7;
  font-family: "M PLUS 1p", sans-serif;
}

.nanny-single__rating-avg {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  padding: 1.5rem;
  background: #fffaed;
  border-radius: 0.75rem;
}

.nanny-single__rating-num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  color: #3d3d3d;
  line-height: 1;
}

.nanny-single__rating-stars {
  font-size: 1.25rem;
  letter-spacing: 0.05em;
}
.nanny-single__rating-stars span {
  color: rgba(157, 183, 165, 0.25);
}
.nanny-single__rating-stars span.is-filled {
  color: #f5e090;
}

.nanny-single__rating-count {
  font-size: clamp(0.75rem, 1.2vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.nanny-single__reviews {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.nanny-review {
  padding: 1.5rem;
  background: #fafaf7;
  border-radius: 0.75rem;
  border: 1px solid rgba(157, 183, 165, 0.25);
}

.nanny-review__head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.nanny-review__stars {
  font-size: 1rem;
  letter-spacing: 0.05em;
}
.nanny-review__stars span {
  color: rgba(157, 183, 165, 0.25);
}
.nanny-review__stars span.is-filled {
  color: #f5e090;
}

.nanny-review__name {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.nanny-review__text {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: #3d3d3d;
  line-height: 1.8;
  font-family: "M PLUS 1p", sans-serif;
}

.nanny-archive {
  padding: 2rem 1rem 4rem;
  background: #fafaf7;
}
@media screen and (max-width: 767px) {
  .nanny-archive {
    padding: 1rem 2rem 2rem;
  }
}

.nanny-archive__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media screen and (min-width: 600px) {
  .nanny-archive__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media screen and (min-width: 1024px) {
  .nanny-archive__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media screen and (max-width: 767px) {
  .nanny-archive__grid {
    grid-template-columns: 1fr;
  }
}

.nanny-archive__card {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  overflow: hidden;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  margin: 0 auto;
}
@media screen and (max-width: 1023px) {
  .nanny-archive__card {
    flex: 0 0 75vw;
    max-width: 280px;
    scroll-snap-align: start;
  }
}

.nanny-archive__photo {
  width: 100%;
  max-width: 180px;
  margin: 20px auto 0;
  aspect-ratio: 1/1;
  overflow: hidden;
  position: relative;
  border-radius: 1rem;
}
.nanny-archive__photo img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  display: block;
  transition: transform 0.5s ease;
}

.nanny-archive__info {
  padding: 1rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
}

.nanny-archive__dl {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  flex: 1;
}

.nanny-archive__dl-item {
  display: flex;
  gap: 0.5rem;
  font-size: clamp(0.7rem, 1.5vw, 0.85rem);
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.6;
}
.nanny-archive__dl-item dt {
  color: #7a9e8a;
  font-weight: 700;
  white-space: nowrap;
  flex-shrink: 0;
}
.nanny-archive__dl-item dd {
  color: #9a9a9a;
}

.nanny-archive__cta {
  margin-top: 1rem;
  text-align: center;
}
.nanny-archive__cta .btn {
  font-size: clamp(0.75rem, 1.5vw, 0.875rem);
  padding: 0.5rem 1rem;
}

.footer-cta {
  background: #9db7a5;
  padding: 3rem 1rem;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .footer-cta {
    padding: 3rem 2rem;
  }
}
.footer-cta .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
@media screen and (min-width: 600px) {
  .footer-cta .container {
    flex-direction: row;
    justify-content: center;
    gap: 3rem;
  }
}

.footer-cta__text {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 700;
  color: #ffffff;
}

.footer-main {
  background: #4a7a62;
  padding: 4rem 1rem;
}
@media screen and (min-width: 768px) {
  .footer-main {
    padding: 4rem 2rem;
  }
}

.footer-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media screen and (min-width: 1024px) {
  .footer-inner {
    grid-template-columns: 1fr 2fr;
    gap: 4rem;
  }
}

.footer-brand {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.footer-logo {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
}
@media (hover: hover) {
  .footer-logo:hover {
    opacity: 0.8;
  }
}

.footer-logo__icon-img {
  height: 2.5rem;
  width: auto;
  display: block;
}

.footer-logo__font-img {
  height: 1.5rem;
  width: auto;
  display: block;
  max-width: 150px;
}

.footer-brand__desc {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.8;
  font-family: "M PLUS 1p", sans-serif;
}

.footer-sns {
  display: flex;
  gap: 1rem;
}

.footer-sns__btn {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.footer-sns__btn--line {
  background: #06c755;
  color: #ffffff;
}
.footer-sns__btn--instagram {
  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
  color: #ffffff;
}
@media (hover: hover) {
  .footer-sns__btn:hover {
    opacity: 0.85;
    transform: translateY(-2px);
  }
}

.footer-nav {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}
@media screen and (min-width: 600px) {
  .footer-nav {
    grid-template-columns: repeat(3, 1fr);
  }
}

.footer-nav__title {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  color: #ffffff;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-nav__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.footer-nav__list li a {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: rgba(255, 255, 255, 0.7);
  font-family: "M PLUS 1p", sans-serif;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .footer-nav__list li a:hover {
    color: #fff1c1;
  }
}

.footer-bottom {
  background: #3a5e4a;
  padding: 1.5rem 1rem;
}
@media screen and (min-width: 768px) {
  .footer-bottom {
    padding: 1.5rem 2rem;
  }
}

.footer-bottom__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  text-align: center;
}
@media screen and (min-width: 600px) {
  .footer-bottom__inner {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
  }
}

.footer-copyright {
  font-size: clamp(0.7rem, 1.2vw, 0.75rem);
  color: rgba(255, 255, 255, 0.5);
  font-family: "M PLUS 1p", sans-serif;
}

.footer-bottom__links {
  list-style: none;
  display: flex;
  gap: 1.5rem;
}
.footer-bottom__links li a {
  font-size: clamp(0.7rem, 1.2vw, 0.75rem);
  color: rgba(255, 255, 255, 0.5);
  font-family: "M PLUS 1p", sans-serif;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .footer-bottom__links li a:hover {
    color: rgba(255, 255, 255, 0.8);
  }
}

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes float404 {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes floatQ1 {
  0%, 100% {
    transform: translateY(0px) rotate(-5deg);
    opacity: 0.4;
  }
  50% {
    transform: translateY(-8px) rotate(5deg);
    opacity: 0.8;
  }
}
@keyframes floatQ2 {
  0%, 100% {
    transform: translateY(0px);
    opacity: 0.3;
  }
  50% {
    transform: translateY(-6px);
    opacity: 0.6;
  }
}
@keyframes scaleIn404 {
  from {
    opacity: 0;
    transform: scale(0.7);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes dotBounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}
.page-404 {
  padding: 8rem 1rem 4rem;
  background: #fafaf7;
  min-height: 80vh;
  display: flex;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .page-404 {
    padding: 10rem 2rem 4rem;
  }
}

.page-404__inner {
  max-width: 36rem;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}

.page-404__illust {
  width: clamp(180px, 40vw, 280px);
  height: auto;
  animation: float404 4s ease-in-out infinite;
}
.page-404__illust svg {
  width: 100%;
  height: auto;
  display: block;
}

.page-404__q1 {
  animation: floatQ1 3s ease-in-out infinite;
  transform-origin: center;
}

.page-404__q2 {
  animation: floatQ2 3.5s ease-in-out infinite 0.5s;
  transform-origin: center;
}

.page-404__q3 {
  animation: floatQ2 2.8s ease-in-out infinite 1s;
  transform-origin: center;
}

.page-404__dot {
  animation: dotBounce 1.2s ease-in-out infinite;
}
.page-404__dot:nth-child(2) {
  animation-delay: 0.15s;
}
.page-404__dot:nth-child(3) {
  animation-delay: 0.3s;
}
.page-404__dot:nth-child(4) {
  animation-delay: 0.45s;
}
.page-404__dot:nth-child(5) {
  animation-delay: 0.6s;
}

.page-404__num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(6rem, 20vw, 10rem);
  font-weight: 700;
  line-height: 1;
  color: #9db7a5;
  letter-spacing: -0.05em;
  margin: 0;
  animation: scaleIn404 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) 0.1s both;
}
.page-404__num span {
  display: inline-block;
  color: transparent;
  background: linear-gradient(180deg, #fff1c1 60%, #f5e090 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-stroke: 1px #f5e090;
}

.page-404__title {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  color: #3d3d3d;
  line-height: 1.4;
  margin: 0;
  animation: fadeUp 0.5s ease 0.3s both;
}

.page-404__text {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #9a9a9a;
  line-height: 1.8;
  font-family: "M PLUS 1p", sans-serif;
  margin: 0;
  animation: fadeUp 0.5s ease 0.4s both;
}

.page-404__buttons {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  animation: fadeUp 0.5s ease 0.5s both;
}
@media screen and (min-width: 600px) {
  .page-404__buttons {
    flex-direction: row;
    justify-content: center;
  }
}

.page-404__links {
  width: 100%;
  padding: 2rem;
  background: #ffffff;
  border-radius: 1rem;
  border: 1px solid rgba(157, 183, 165, 0.25);
  animation: fadeUp 0.5s ease 0.6s both;
}

.page-404__links-title {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  font-weight: 700;
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  margin-bottom: 1rem;
}

.page-404__links-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}
.page-404__links-list li a {
  display: inline-block;
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: #7a9e8a;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  padding: 0.3rem 0.875rem;
  background: #d6e7dd;
  border-radius: 9999px;
  transition: background-color 0.3s ease, transform 0.3s ease;
}
@media (hover: hover) {
  .page-404__links-list li a:hover {
    background-color: rgb(197.9153846154, 221.5846153846, 207.6615384615);
    transform: translateY(-2px);
  }
}

.page-hero {
  position: relative;
  padding: 8rem 1rem 4rem;
  text-align: center;
  overflow: hidden;
  min-height: 40vh;
  display: flex;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .page-hero {
    padding: 10rem 2rem 4rem;
    min-height: 25vh;
  }
}

.page-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.page-hero__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  display: block;
}

.page-hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(201, 225, 217, 0.65);
}

.page-hero .container {
  position: relative;
  z-index: 1;
  width: 100%;
}

.page-hero__title {
  font-size: clamp(2rem, 5vw, 3rem);
  color: #3d3d3d;
  margin: 1rem 0;
  line-height: 1.3;
}

.page-hero__desc {
  font-size: clamp(0.9rem, 1.8vw, 1.1rem);
  color: #9a9a9a;
  line-height: 1.8;
  font-family: "M PLUS 1p", sans-serif;
  margin-top: 2rem;
}

.flow-detail {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fffaed 0%, #d6e7dd 50%, #fafaf7 100%);
}
@media screen and (min-width: 768px) {
  .flow-detail {
    padding: 4rem 2rem;
  }
}

.flow-detail__list {
  max-width: 48rem;
  margin: 0 auto;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.flow-detail__item {
  display: flex;
  gap: 2rem;
  position: relative;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.flow-detail__item.in-view {
  opacity: 1;
  transform: translateY(0);
}
.flow-detail__item.in-view .flow-detail__num {
  transform: scale(1);
}

.flow-detail__num-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 3.5rem;
}

.flow-detail__num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  font-weight: 700;
  color: #ffffff;
  background: #9db7a5;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(157, 183, 165, 0.35);
  position: relative;
  z-index: 1;
  transform: scale(0);
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.flow-detail__line {
  width: 2px;
  flex: 1;
  min-height: 2rem;
  background: #d6e7dd;
  margin: 0.5rem 0;
}

.flow-detail__body {
  padding: 2rem 0 3rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.flow-detail__title {
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  color: #3d3d3d;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  padding-top: 0.4rem;
}

.flow-detail__text {
  font-size: clamp(0.875rem, 1.5vw, 0.95rem);
  color: #9a9a9a;
  line-height: 1.9;
  font-family: "M PLUS 1p", sans-serif;
}

.flow-detail__link {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: #7a9e8a;
  font-weight: 700;
  font-family: "M PLUS 1p", sans-serif;
  transition: color 0.3s ease, opacity 0.3s ease;
  align-self: flex-start;
}
@media (hover: hover) {
  .flow-detail__link:hover {
    opacity: 0.7;
  }
}

.flow-intro {
  padding: 3rem 1rem;
  background: linear-gradient(to bottom, #fafaf7 0%, #fffaed 100%);
  text-align: center;
}
@media screen and (min-width: 1024px) {
  .flow-intro {
    padding: 3rem 2rem;
  }
}

.flow-intro__text {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #9a9a9a;
  line-height: 1.9;
  font-family: "M PLUS 1p", sans-serif;
  text-align: center;
}

.flow-cta {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #fafaf7 0%, #fffaed 100%);
}
@media screen and (min-width: 768px) {
  .flow-cta {
    padding: 4rem 2rem;
  }
}

.flow-cta__inner {
  max-width: 40rem;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.flow-cta__title {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  color: #3d3d3d;
  line-height: 1.4;
}

.flow-cta__text {
  font-size: clamp(0.875rem, 1.5vw, 1rem);
  color: #9a9a9a;
  line-height: 1.8;
  font-family: "M PLUS 1p", sans-serif;
}

.flow-cta__buttons {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}
@media screen and (min-width: 600px) {
  .flow-cta__buttons {
    flex-direction: row;
    justify-content: center;
  }
}

.flow-detail__item:nth-child(1) {
  transition-delay: 0s;
}
.flow-detail__item:nth-child(1) .flow-detail__num {
  transition-delay: 0.2s;
}

.flow-detail__item:nth-child(2) {
  transition-delay: 0.1s;
}
.flow-detail__item:nth-child(2) .flow-detail__num {
  transition-delay: 0.3s;
}

.flow-detail__item:nth-child(3) {
  transition-delay: 0.15s;
}
.flow-detail__item:nth-child(3) .flow-detail__num {
  transition-delay: 0.35s;
}

.flow-detail__item:nth-child(4) {
  transition-delay: 0.2s;
}
.flow-detail__item:nth-child(4) .flow-detail__num {
  transition-delay: 0.4s;
}

.flow-detail__item:nth-child(5) {
  transition-delay: 0.25s;
}
.flow-detail__item:nth-child(5) .flow-detail__num {
  transition-delay: 0.45s;
}

.flow-detail__item:nth-child(6) {
  transition-delay: 0.3s;
}
.flow-detail__item:nth-child(6) .flow-detail__num {
  transition-delay: 0.5s;
}

.page-hero .section-label {
  opacity: 0;
  animation: fadeInUp 0.6s ease 0.1s forwards;
}
.page-hero .page-hero__title {
  opacity: 0;
  animation: fadeInUp 0.7s ease 0.25s forwards;
}
.page-hero .page-hero__desc {
  opacity: 0;
  animation: fadeInUp 0.6s ease 0.45s forwards;
}

.js-fade-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.js-fade-up.in-view {
  opacity: 1;
  transform: translateY(0);
}

.js-fade-up[data-delay="1"] {
  transition-delay: 0.1s;
}

.js-fade-up[data-delay="2"] {
  transition-delay: 0.2s;
}

.js-fade-up[data-delay="3"] {
  transition-delay: 0.3s;
}

.top-reasons {
  padding: 4rem 1rem;
  background: linear-gradient(to bottom, #d6e7dd 0%, #fffaed 60%, #fafaf7 100%);
  position: relative;
}
@media screen and (min-width: 1024px) {
  .top-reasons {
    padding: 4rem 2rem;
  }
}

.reasons-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media screen and (min-width: 768px) {
  .reasons-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media screen and (min-width: 768px) {
  .reason-card--featured {
    grid-column: 1/-1;
  }
}
.reason-card--featured {
  background: #4a7a62;
  border: none;
  border-radius: 6px;
  padding: 3rem 2rem;
  margin-bottom: 2.5rem;
}
.reason-card--featured .reason-card__head {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1rem;
}
.reason-card--featured .reason-card__icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}
.reason-card--featured .reason-card__title {
  font-size: clamp(1rem, 2vw, 1.1rem);
  color: #ffffff;
  margin-bottom: 0;
}
.reason-card--featured .reason-card__text {
  color: rgba(255, 255, 255, 0.9);
}
.reason-card--featured .reason-card__text span {
  font-weight: bold;
}

.reason-card-tab {
  display: flex;
  flex-direction: column;
}
.reason-card-tab__label {
  display: inline-block;
  align-self: flex-start;
  background: #4a7a62;
  color: #ffffff;
  font-size: clamp(0.85rem, 1.5vw, 1.5rem);
  font-weight: 700;
  font-family: "Noto Serif JP", serif;
  padding: 0.35rem 1rem;
  border-radius: 6px 6px 0 0;
}
.reason-card-tab__body {
  background: #ffffff;
  border: 0.5px solid rgba(157, 183, 165, 0.25);
  border-top: 2px solid #4a7a62;
  border-radius: 0 6px 6px 6px;
  padding: 2.5rem 1.5rem;
  flex: 1;
}
.reason-card-tab__head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.reason-card-tab__icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}
.reason-card-tab__title {
  font-size: clamp(0.8rem, 1.6vw, 0.95rem);
  color: #3d3d3d;
  font-family: "Noto Serif JP", serif;
  line-height: 1.5;
  margin: 0;
}
.reason-card-tab__text {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: #9a9a9a;
  line-height: 1.8;
  font-family: "M PLUS 1p", sans-serif;
  margin: 0;
}

.reason-card-tab__icon {
  color: #9db7a5;
}
.reason-card-tab__icon svg {
  fill: #9db7a5;
}
.reason-card-tab__icon i {
  color: #9db7a5;
}

.price-table {
  max-width: 42rem;
  margin: 0 auto;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(157, 183, 165, 0.25);
}

.price-table__row {
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
}
.price-table__row:last-child {
  border-bottom: none;
}

.price-table__head {
  background: #7a9e8a;
  padding: 1rem 2rem;
}
.price-table__head h3 {
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
  color: #ffffff;
  text-align: center;
}

.price-table__body {
  padding: 1.5rem 2rem;
  text-align: center;
  background: #ffffff;
}

.price-table__num {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: #3d3d3d;
}
.price-table__num span {
  font-size: clamp(0.85rem, 1.5vw, 0.95rem);
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 400;
  color: #9a9a9a;
  margin-left: 0.25rem;
}

.price-table__sub {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  margin-top: 0.25rem;
}

.price-table__note {
  max-width: 42rem;
  margin: 1.5rem auto 0;
  font-size: clamp(0.78rem, 1.3vw, 0.85rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.8;
}

.nanny-archive__dl {
  margin-top: 1rem;
}

.nanny-archive__cta {
  text-align: center;
}

.nanny-archive__dl-item {
  display: flex;
  gap: 0.5rem;
  align-items: baseline;
  padding: 0.3rem 0;
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
  font-family: "M PLUS 1p", sans-serif;
}
.nanny-archive__dl-item:last-child {
  border-bottom: none;
}
.nanny-archive__dl-item dt {
  font-size: clamp(0.75rem, 1.3vw, 0.8rem);
  color: #7a9e8a !important;
  font-weight: 700 !important;
  white-space: nowrap;
  flex-shrink: 0;
}
.nanny-archive__dl-item dt::after {
  content: "：";
}
.nanny-archive__dl-item dd {
  font-size: clamp(0.78rem, 1.3vw, 0.85rem);
  color: #3d3d3d;
}

.page-flow .page-hero .section-label {
  color: #7a9e8a;
  text-shadow: 0 1px 4px rgba(255, 255, 255, 0.6);
}
.page-flow .page-hero .page-hero__desc {
  color: #3d3d3d;
}

.blog-archive__list {
  padding: 4rem 1rem;
  background: #fafaf7;
}
@media screen and (min-width: 768px) {
  .blog-archive__list {
    padding: 4rem 2rem;
  }
}

.blog-archive__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media screen and (min-width: 600px) {
  .blog-archive__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 1024px) {
  .blog-archive__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.blog-archive__card {
  background: #ffffff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(157, 183, 165, 0.25);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
@media (hover: hover) {
  .blog-archive__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(61, 61, 61, 0.1);
  }
  .blog-archive__card:hover .blog-archive__thumb img {
    transform: scale(1.05);
  }
}

.blog-archive__card-link {
  display: block;
  color: #3d3d3d;
}

.blog-archive__thumb {
  overflow: hidden;
  aspect-ratio: 1/1;
}
.blog-archive__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.blog-archive__no-img {
  width: 100%;
  height: 100%;
  background: #fffaed;
  display: flex;
  align-items: center;
  justify-content: center;
}
.blog-archive__no-img img {
  width: 5rem;
  height: 5rem;
  -o-object-fit: contain;
     object-fit: contain;
  opacity: 0.5;
}
.blog-archive__no-img span {
  font-size: clamp(0.75rem, 1.3vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.blog-archive__body {
  padding: 1.5rem 2rem;
}

.blog-archive__meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.blog-archive__date {
  font-size: clamp(0.75rem, 1.3vw, 0.8rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.blog-archive__cat {
  font-size: clamp(0.7rem, 1.2vw, 0.75rem);
  color: #7a9e8a;
  background: #d6e7dd;
  padding: 0.15rem 0.6rem;
  border-radius: 9999px;
  font-family: "M PLUS 1p", sans-serif;
  font-weight: 700;
}

.blog-archive__title {
  font-size: clamp(0.95rem, 1.8vw, 1.05rem);
  color: #3d3d3d;
  line-height: 1.5;
  margin-bottom: 1rem;
  font-family: "Noto Serif JP", serif;
}

.blog-archive__excerpt {
  font-size: clamp(0.82rem, 1.4vw, 0.875rem);
  color: #9a9a9a;
  line-height: 1.7;
  font-family: "M PLUS 1p", sans-serif;
}

.blog-archive__pager {
  margin-top: 4rem;
  text-align: center;
}
.blog-archive__pager .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.blog-archive__pager .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  font-size: clamp(0.85rem, 1.5vw, 0.95rem);
  font-family: "M PLUS 1p", sans-serif;
  color: #9a9a9a;
  border: 1px solid rgba(157, 183, 165, 0.25);
  transition: background-color 0.3s ease, color 0.3s ease;
}
.blog-archive__pager .page-numbers.current {
  background: #9db7a5;
  color: #ffffff;
  border-color: #9db7a5;
}
@media (hover: hover) {
  .blog-archive__pager .page-numbers:hover:not(.current) {
    background: #d6e7dd;
    color: #7a9e8a;
  }
}
.blog-archive__pager .prev,
.blog-archive__pager .next {
  width: auto;
  padding: 0 1rem;
  border-radius: 9999px;
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
}

.page-hero--simple {
  background: #fffaed;
  min-height: auto;
}
.page-hero--simple .page-hero__bg {
  display: none;
}
.page-hero--simple .container {
  text-align: center;
}

.hero .hero-title {
  transition-delay: 2s !important;
  animation-delay: 2s !important;
}

.hero .hero-subtitle {
  transition-delay: 2.2s !important;
  animation-delay: 2.2s !important;
  font-size: clamp(0.75rem, 3vw, 1rem);
  line-height: 1.8;
  text-align: center;
  padding: 0 1rem;
}

.hero .hero-buttons {
  transition-delay: 2.4s !important;
  animation-delay: 2.4s !important;
  margin-top: 3em;
  gap: 1.5em;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.hero .hero-buttons .btn {
  flex: 1;
  min-width: 10rem;
  max-width: 14rem;
  text-align: center;
  justify-content: center;
}

.btn-line.btn-lg {
  padding: 0.75rem 1.25rem !important;
  font-size: clamp(0.875rem, 1.8vw, 1.125rem) !important;
}
@media screen and (min-width: 1024px) {
  .btn-line.btn-lg {
    padding: 0.75rem 1.25rem !important;
    font-size: clamp(0.875rem, 1.8vw, 1.125rem) !important;
  }
}

.hero,
.top-service,
.top-reasons,
.nanny-list,
.testimonials,
.top-price,
.top-blog,
.top-faq {
  position: relative;
  overflow: visible;
}

.page-hero--recruit {
  background: linear-gradient(to bottom, #fffaed 0%, #fafaf7 100%);
  padding: 6rem 0 4rem;
}
@media screen and (min-width: 1024px) {
  .page-hero--recruit {
    padding: 8rem 0 5rem;
  }
}
.page-hero--recruit .page-hero__deco {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 900px;
  opacity: 0.35;
  pointer-events: none;
}
.page-hero--recruit .page-hero__deco img {
  width: 100%;
  height: auto;
}
.page-hero--recruit .page-hero__inner {
  position: relative;
  z-index: 1;
}
.page-hero--recruit .page-hero__inner .section-label {
  display: inline-block;
  margin-bottom: 1rem;
}
.page-hero--recruit .page-hero__title {
  font-size: clamp(28px, 5vw, 44px);
  margin-bottom: 1rem;
}
.page-hero--recruit .page-hero__sub {
  font-size: clamp(14px, 2vw, 16px);
  color: #9a9a9a;
  margin-top: 1rem;
}

.recruit-message {
  padding: 4rem 0;
  background: linear-gradient(to bottom, #fafaf7 0%, #d6e7dd 100%);
  position: relative;
}
.recruit-message__inner {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  margin-top: 3rem;
}
@media screen and (min-width: 1024px) {
  .recruit-message__inner {
    flex-direction: row;
    align-items: center;
  }
}
.recruit-message__img {
  flex: 1;
  border-radius: 1rem;
  overflow: hidden;
}
.recruit-message__img img {
  width: 100%;
  height: auto;
  display: block;
}
.recruit-message__text {
  flex: 1;
}
.recruit-message__text p {
  font-size: clamp(14px, 2vw, 16px);
  color: #9a9a9a;
  line-height: 1.9;
  margin-bottom: 1.5rem;
}
.recruit-message__text p:last-child {
  margin-bottom: 0;
}
.recruit-message__text p span {
  font-weight: bold;
  color: #3d3d3d;
}
.recruit-message__catch {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(18px, 3vw, 24px) !important;
  color: #3d3d3d !important;
  line-height: 1.7;
  margin-bottom: 2rem;
}

.recruit-job {
  padding: 4rem 0;
  background: linear-gradient(to bottom, #d6e7dd 0%, #fffaed 100%);
  position: relative;
}
.recruit-job__cards {
  margin-top: 3rem;
}
.recruit-job__card {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: clamp(0.5rem, 3vw, 3rem);
  margin-bottom: 2rem;
}
.recruit-job__card:last-child {
  margin-bottom: 0;
}
.recruit-job__card-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}
.recruit-job__badge {
  background: #9db7a5;
  color: #ffffff;
  font-size: clamp(11px, 1.5vw, 13px);
  font-weight: 700;
  padding: 0.3rem 0.9rem;
  border-radius: 9999px;
}
.recruit-job__card-title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(16px, 2.5vw, 20px);
  color: #3d3d3d;
  justify-content: center;
}

.recruit-table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(13px, 1.8vw, 15px);
}
.recruit-table th,
.recruit-table td {
  padding: 1.5rem;
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
  text-align: left;
  line-height: 1.8;
  vertical-align: top;
}
.recruit-table th {
  width: 8em;
  color: #7a9e8a;
  font-weight: 700;
  white-space: nowrap;
}
@media screen and (min-width: 600px) {
  .recruit-table th {
    width: 10em;
  }
}
.recruit-table td {
  color: #9a9a9a;
}
.recruit-table tr:last-child th,
.recruit-table tr:last-child td {
  border-bottom: none;
}

.recruit-benefits {
  padding: 4rem 0;
  background: linear-gradient(to bottom, #fafaf7 0%, #fffaed 50%, #d6e7dd 100%);
}
.recruit-benefits__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-top: 3rem;
}
@media screen and (min-width: 768px) {
  .recruit-benefits__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 1024px) {
  .recruit-benefits__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.recruit-benefit-card {
  background: #fffaed;
  border: 1px solid rgba(255, 241, 193, 0.8);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.05);
  padding: 3rem 2rem;
  text-align: center;
}
.recruit-benefit-card__icon {
  font-size: 2rem;
  margin-bottom: 1rem;
}
.recruit-benefit-card__title {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(15px, 2vw, 17px);
  color: #3d3d3d;
  margin-bottom: 1rem;
}
.recruit-benefit-card__text {
  font-size: clamp(13px, 1.8vw, 14px);
  color: #9a9a9a;
  line-height: 1.8;
}

.recruit-flow {
  padding: 4rem 0;
  background: linear-gradient(to bottom, #fffaed 0%, #fafaf7 100%);
  position: relative;
}
.recruit-flow__list {
  list-style: none;
  margin-top: 3rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media screen and (min-width: 1024px) {
  .recruit-flow__list {
    flex-direction: row;
    align-items: flex-start;
  }
}
.recruit-flow__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
}
@media screen and (min-width: 1024px) {
  .recruit-flow__item:not(:last-child)::after {
    content: "›";
    position: absolute;
    right: -0.8rem;
    top: 1.5rem;
    font-size: 2rem;
    color: #9db7a5;
  }
}
.recruit-flow__step {
  background: #9db7a5;
  color: #ffffff;
  border-radius: 9999px;
  width: 4.5rem;
  height: 4.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: clamp(9px, 1.2vw, 11px);
  font-weight: 700;
  margin-bottom: 1.5rem;
  letter-spacing: 0.05em;
}
.recruit-flow__step span {
  font-size: clamp(18px, 2.5vw, 22px);
  line-height: 1;
}
.recruit-flow__content h3 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(14px, 2vw, 16px);
  color: #3d3d3d;
  margin-bottom: 0.5rem;
}
.recruit-flow__content p {
  font-size: clamp(12px, 1.6vw, 14px);
  color: #9a9a9a;
  line-height: 1.8;
}

.recruit-cta {
  padding: 4rem 0;
  background: linear-gradient(to bottom, #d6e7dd 0%, #fffaed 100%);
}
.recruit-cta__inner {
  background: #fffaed;
  border: 1px solid rgba(255, 241, 193, 0.8);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.05);
  padding: 4rem 3rem;
  text-align: center;
}
.recruit-cta__text {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(16px, 2.5vw, 20px);
  color: #3d3d3d;
  line-height: 1.8;
  margin-bottom: 3rem;
}
.recruit-cta__buttons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

.terms-group-title {
  font-size: clamp(1.1rem, 2.5vw, 1.4rem);
  color: #3d3d3d;
  font-family: "Noto Serif JP", serif;
  margin-top: 3rem;
  margin-bottom: 3rem;
  padding: 1.5rem 2rem;
  background: #d6e7dd;
  border-left: 4px solid #9db7a5;
  border-radius: 0 0.5rem 0.5rem 0;
}

.terms-ul {
  list-style: disc;
  padding-left: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.terms-ul li {
  font-size: clamp(0.875rem, 1.6vw, 0.95rem);
  color: #9a9a9a;
  line-height: 1.9;
  font-family: "M PLUS 1p", sans-serif;
}

.terms-section {
  margin-bottom: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
}
.terms-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.terms-text--bold {
  font-weight: 700;
  color: #3d3d3d;
  margin-top: 1.5rem;
}

.terms-table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(0.875rem, 1.6vw, 0.95rem);
  font-family: "M PLUS 1p", sans-serif;
}
.terms-table th,
.terms-table td {
  padding: 1.5rem;
  border: 1px solid rgba(157, 183, 165, 0.25);
  text-align: left;
  line-height: 1.8;
  vertical-align: top;
}
.terms-table th {
  background: #d6e7dd;
  color: #7a9e8a;
  font-weight: 700;
  width: 10rem;
  white-space: nowrap;
}
@media screen and (min-width: 600px) {
  .terms-table th {
    width: 12rem;
  }
}
.terms-table td {
  color: #3d3d3d;
}
.terms-table td a {
  color: #7a9e8a;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .terms-table td a:hover {
    color: #9db7a5;
  }
}
.terms-table td small {
  font-size: clamp(0.75rem, 1.3vw, 0.8rem);
  color: #9a9a9a;
}

.terms-date {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  line-height: 1.8;
  margin-top: 3rem;
  text-align: right;
}

.terms-contact__item {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 1.5rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(157, 183, 165, 0.25);
  font-family: "M PLUS 1p", sans-serif;
}
.terms-contact__item:last-child {
  border-bottom: none;
}
.terms-contact__item dt {
  font-size: clamp(0.8rem, 1.4vw, 0.875rem);
  font-weight: 700;
  color: #7a9e8a;
}
.terms-contact__item dd {
  font-size: clamp(0.875rem, 1.6vw, 0.95rem);
  color: #3d3d3d;
  line-height: 1.7;
}
.terms-contact__item dd a {
  color: #7a9e8a;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .terms-contact__item dd a:hover {
    color: #9db7a5;
  }
}

.blog-single {
  padding: 0 1.5rem 3rem;
  background: #fafaf7;
  min-height: 40vh;
}
@media screen and (min-width: 1024px) {
  .blog-single {
    padding: 1.5rem 2rem;
  }
}

.blog-single__article {
  max-width: 48rem;
  margin: 0 auto;
}

.blog-single__breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
  margin-bottom: 2rem;
}
.blog-single__breadcrumb a {
  color: #9a9a9a;
  transition: color 0.3s ease;
}
@media (hover: hover) {
  .blog-single__breadcrumb a:hover {
    color: #7a9e8a;
  }
}

.blog-single__thumb {
  width: clamp(100px, 60%, 200px);
  margin: 0 auto 3rem;
  border-radius: 1rem;
  overflow: hidden;
}
.blog-single__thumb img {
  width: 100%;
  height: auto;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}

.blog-single__thumb-default {
  width: 8rem !important;
  height: 8rem !important;
  -o-object-fit: contain !important;
     object-fit: contain !important;
  margin: 3rem auto;
  display: block !important;
  opacity: 0.5;
}

.blog-single__header {
  margin-bottom: 3rem;
}

.blog-single__meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.blog-single__date {
  font-size: clamp(0.75rem, 1.3vw, 0.85rem);
  color: #9a9a9a;
  font-family: "M PLUS 1p", sans-serif;
}

.blog-single__cat {
  font-size: clamp(0.7rem, 1.2vw, 0.8rem);
  color: #7a9e8a;
  background: #d6e7dd;
  border-radius: 9999px;
  padding: 0.15rem 0.75rem;
  font-weight: 700;
  font-family: "M PLUS 1p", sans-serif;
}

.blog-single__title {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  color: #3d3d3d;
  line-height: 1.5;
}

.blog-single__body {
  background: #ffffff;
  border: 1px solid rgba(157, 183, 165, 0.2);
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(61, 61, 61, 0.06), 0 1px 4px rgba(61, 61, 61, 0.04);
  padding: 3rem;
  margin-bottom: 3rem;
  font-size: clamp(0.9rem, 1.8vw, 1rem);
  color: #3d3d3d;
  line-height: 1.9;
  font-family: "M PLUS 1p", sans-serif;
}
.blog-single__body p {
  margin-bottom: 1.5rem;
}
.blog-single__body h2 {
  font-size: clamp(1.1rem, 2vw, 1.3rem);
  margin: 2rem 0 1rem;
}
.blog-single__body h3 {
  font-size: clamp(1rem, 1.8vw, 1.1rem);
  margin: 1.5rem 0 1rem;
}
.blog-single__body img {
  width: 100%;
  height: auto;
  border-radius: 0.5rem;
  margin: 1.5rem 0;
}
.blog-single__body ul,
.blog-single__body ol {
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
}
.blog-single__body li {
  margin-bottom: 0.4rem;
}

.blog-single__back {
  text-align: center;
}/*# sourceMappingURL=styles.css.map */