:root {
  --rsd-ink: #12242f;
  --rsd-muted: #667780;
  --rsd-line: #dce5e8;
  --rsd-bg: #f4f8f8;
  --rsd-white: #ffffff;
  --rsd-teal: #087f78;
  --rsd-teal-dark: #05645f;
  --rsd-gold: #bf9658;
  --rsd-radius: 18px;
  --rsd-shadow: 0 18px 46px rgba(19, 45, 56, 0.08);
}

.rsd-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:28px 0}
.rsd-plan-card{position:relative;padding:30px;border:1px solid #dfe8e5;border-radius:20px;background:#fff;box-shadow:0 12px 35px rgba(15,45,57,.07)}
.rsd-plan-card.is-featured{border:2px solid #0aa68f;transform:translateY(-8px)}
.rsd-plan-card h2{margin:0 0 8px;font-size:1.35rem}
.rsd-plan-price{color:#073b63;font-size:1.45rem;font-weight:800}
.rsd-plan-card ul{padding-left:1.2em;min-height:190px}
.rsd-plan-card li{margin:.65em 0}
.rsd-plan-badge{position:absolute;right:18px;top:-13px;padding:5px 13px;border-radius:999px;background:#0aa68f;color:#fff;font-size:.75rem;font-weight:700}
.rsd-plan-button,.rsd-submit-button{display:inline-flex;justify-content:center;align-items:center;width:100%;min-height:50px;padding:12px 20px;border:0;border-radius:12px;background:#073b63;color:#fff!important;font-weight:700;text-decoration:none;cursor:pointer}
.rsd-claim-form{padding:30px;border:1px solid #dfe8e5;border-radius:20px;background:#fff;box-shadow:0 12px 35px rgba(15,45,57,.07)}
.rsd-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.rsd-form-grid label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#17323c}
.rsd-form-grid label.is-wide{grid-column:1/-1}
.rsd-form-grid input,.rsd-form-grid select,.rsd-form-grid textarea{width:100%;padding:13px 14px;border:1px solid #cbdad7;border-radius:10px;background:#fff;font:inherit}
.rsd-form-grid input:focus,.rsd-form-grid select:focus,.rsd-form-grid textarea:focus{outline:3px solid rgba(10,166,143,.16);border-color:#0aa68f}
.rsd-consent{display:flex;gap:8px;margin:20px 0;font-size:.9rem}
.rsd-consent input{margin-top:.25em}
.rsd-form-notice,.rsd-dashboard-empty{padding:26px;border-radius:18px;background:#eef8f5}
.rsd-form-notice.is-error{background:#fff0ee;color:#8b2e22}
.rsd-dashboard-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.rsd-dashboard-list article{padding:22px;border:1px solid #dfe8e5;border-radius:16px;background:#fff}
.rsd-status-pill{display:inline-block;margin:0 0 10px;padding:5px 11px;border-radius:999px;background:#e8f5f2;color:#087764;font-size:.78rem;font-weight:700}

@media (max-width:800px){
  .rsd-plan-grid,.rsd-form-grid,.rsd-dashboard-list{grid-template-columns:1fr}
  .rsd-plan-card.is-featured{transform:none}
  .rsd-form-grid label.is-wide{grid-column:auto}
  .rsd-plan-card ul{min-height:0}
}

.rsd-directory,
.rsd-stats,
.rsd-index-grid {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  color: var(--rsd-ink);
}

.rsd-search-form {
  padding: clamp(24px, 4vw, 48px);
  border: 1px solid rgba(8, 127, 120, 0.14);
  border-radius: 24px;
  background:
    radial-gradient(circle at 100% 0, rgba(191, 150, 88, 0.15), transparent 34%),
    linear-gradient(145deg, #ffffff 0%, #f3f9f8 100%);
  box-shadow: var(--rsd-shadow);
}

.rsd-eyebrow {
  display: block;
  margin-bottom: 10px;
  color: var(--rsd-teal);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.rsd-search-heading h2 {
  margin: 0 0 12px;
  font-family: "Noto Serif JP", "Yu Mincho", serif;
  font-size: clamp(27px, 4vw, 42px);
  line-height: 1.35;
}

.rsd-search-heading p {
  margin: 0;
  color: var(--rsd-muted);
  line-height: 1.8;
}

.rsd-search-grid {
  display: grid;
  grid-template-columns: minmax(220px, 1.45fr) minmax(170px, 0.8fr) minmax(170px, 0.8fr) auto;
  gap: 14px;
  align-items: end;
  margin-top: 28px;
}

.rsd-field {
  display: grid;
  gap: 8px;
}

.rsd-field > span {
  font-size: 13px;
  font-weight: 700;
}

.rsd-field input,
.rsd-field select {
  width: 100%;
  min-height: 52px;
  padding: 0 15px;
  border: 1px solid var(--rsd-line);
  border-radius: 12px;
  background: var(--rsd-white);
  color: var(--rsd-ink);
  font: inherit;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.rsd-field input:focus,
.rsd-field select:focus {
  border-color: var(--rsd-teal);
  box-shadow: 0 0 0 4px rgba(8, 127, 120, 0.12);
}

.rsd-search-button {
  min-height: 52px;
  padding: 0 24px;
  border: 0;
  border-radius: 12px;
  background: var(--rsd-teal);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease;
}

.rsd-search-button:hover {
  background: var(--rsd-teal-dark);
  transform: translateY(-1px);
}

.rsd-status {
  scroll-margin-top: 100px;
  min-height: 28px;
  margin: 28px 2px 14px;
  color: var(--rsd-muted);
  font-size: 14px;
  font-weight: 700;
}

.rsd-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  opacity: 1;
  transition: opacity 0.2s ease;
}

.rsd-directory.is-loading .rsd-results {
  opacity: 0.45;
  pointer-events: none;
}

.rsd-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid var(--rsd-line);
  border-radius: var(--rsd-radius);
  background: var(--rsd-white);
  box-shadow: 0 10px 30px rgba(19, 45, 56, 0.05);
}

.rsd-card-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.rsd-prefecture {
  display: inline-flex;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(8, 127, 120, 0.1);
  color: var(--rsd-teal-dark);
  font-size: 12px;
  font-weight: 800;
}

.rsd-registration {
  color: var(--rsd-muted);
  font-size: 11px;
  letter-spacing: 0.04em;
}

.rsd-card h3 {
  margin: 18px 0;
  font-size: clamp(18px, 2.4vw, 23px);
  line-height: 1.55;
}

.rsd-meta {
  display: grid;
  gap: 9px;
  margin: 0;
}

.rsd-meta-row {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 10px;
  font-size: 13px;
  line-height: 1.7;
}

.rsd-meta-row dt {
  color: var(--rsd-muted);
  font-weight: 700;
}

.rsd-meta-row dd {
  margin: 0;
}

.rsd-language-block {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px dashed var(--rsd-line);
}

.rsd-language-block > span {
  display: block;
  margin-bottom: 9px;
  color: var(--rsd-muted);
  font-size: 12px;
  font-weight: 700;
}

.rsd-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.rsd-tag {
  padding: 5px 9px;
  border: 1px solid rgba(191, 150, 88, 0.35);
  border-radius: 999px;
  background: rgba(191, 150, 88, 0.07);
  color: #7c5c2d;
  font-size: 11px;
  font-weight: 700;
}

.rsd-card-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 22px;
}

.rsd-phone {
  color: var(--rsd-ink);
  font-weight: 800;
  text-decoration: none;
}

.rsd-source {
  color: var(--rsd-teal);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.rsd-empty {
  grid-column: 1 / -1;
  padding: 50px 24px;
  border: 1px dashed var(--rsd-line);
  border-radius: var(--rsd-radius);
  text-align: center;
}

.rsd-empty strong {
  display: block;
  margin-bottom: 10px;
}

.rsd-empty p {
  margin: 0;
  color: var(--rsd-muted);
}

.rsd-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 30px;
}

.rsd-pagination button {
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  border: 1px solid var(--rsd-line);
  border-radius: 10px;
  background: var(--rsd-white);
  color: var(--rsd-ink);
  font-weight: 700;
  cursor: pointer;
}

.rsd-pagination button[aria-current="page"] {
  border-color: var(--rsd-teal);
  background: var(--rsd-teal);
  color: #fff;
}

.rsd-stats {
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 0 12px;
}

.rsd-stats strong {
  color: var(--rsd-teal);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(38px, 7vw, 72px);
  line-height: 1;
}

.rsd-stats span {
  font-weight: 800;
}

.rsd-stats small {
  grid-column: 1 / -1;
  margin-top: 8px;
  color: var(--rsd-muted);
}

.rsd-index-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.rsd-index-grid a {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 15px 16px;
  border: 1px solid var(--rsd-line);
  border-radius: 12px;
  background: var(--rsd-white);
  color: var(--rsd-ink);
  font-weight: 700;
  text-decoration: none;
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.rsd-index-grid a:hover {
  border-color: var(--rsd-teal);
  transform: translateY(-1px);
}

.rsd-index-grid small {
  color: var(--rsd-muted);
  font-weight: 600;
  white-space: nowrap;
}

@media (max-width: 980px) {
  .rsd-search-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rsd-field-keyword {
    grid-column: 1 / -1;
  }

  .rsd-results {
    grid-template-columns: 1fr;
  }

  .rsd-index-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .rsd-search-form {
    padding: 22px 18px;
    border-radius: 18px;
  }

  .rsd-search-grid,
  .rsd-index-grid {
    grid-template-columns: 1fr;
  }

  .rsd-field-keyword {
    grid-column: auto;
  }

  .rsd-search-button {
    width: 100%;
  }

  .rsd-card {
    padding: 20px 18px;
  }

  .rsd-meta-row {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .rsd-card-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}
