/* Rev.10 rates, dispatch areas, and contact refinements. */
.page-site .booking-launch-note {
  display: block;
  margin-top: .8rem;
  color: #efe5f2;
  font-weight: 600;
  line-height: 1.9;
}

.page-site .inquiry-panel {
  max-width: 72rem;
  margin: 1rem auto 0;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid #6c5276;
  background: #100b13;
}

.page-site .inquiry-panel fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

.page-site .contact-form-grid {
  display: grid;
  gap: 1.25rem;
}

.page-site .contact-form-grid label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: .55rem;
  color: #e8ddea;
  font-size: .8125rem;
}

.page-site .contact-field-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.page-site .contact-field-title em {
  flex: none;
  padding: .08rem .5rem;
  color: #f1e8f4;
  background: #62436b;
  font-size: .625rem;
  font-style: normal;
}

.page-site .contact-form-grid :is(input, select, textarea) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: .75rem;
  border: 1px solid #5e4a64;
  border-radius: 0;
  color: #e8ddea;
  background: #18111c;
  font: inherit;
  -webkit-text-fill-color: #e8ddea;
}

.page-site .contact-form-grid textarea {
  resize: vertical;
}

.page-site .inquiry-panel button {
  width: 100%;
  min-height: 54px;
  margin-top: 1.5rem;
  border: 1px solid #9c78a6;
  color: #f4edf6;
  background: #2b1931;
  font: inherit;
}

.rate-catalog {
  padding: var(--page-space) var(--page-gutter);
  color: #eee7f0;
  background: #0f0a12;
}

.rate-heading {
  max-width: 52rem;
  margin-bottom: 2.5rem;
}

.rate-heading > p,
.rate-block > p,
.dispatch-area > p {
  margin: 0 0 .75rem;
  color: #c39acb;
  font-size: .6875rem;
  letter-spacing: .18em;
}

.rate-heading h2,
.dispatch-area h2,
.booking-flow h2 {
  margin: 0 0 .75rem;
  font: 400 clamp(1.8rem, 1.45rem + 1.4vw, 3rem)/1.5 var(--font-serif-jp);
}

.rate-heading span {
  color: #c8bccd;
  font-size: .9375rem;
}

.rate-table-scroller {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid #5e4964;
  background: #151019;
  scrollbar-color: #86618f #151019;
}

.rate-table-scroller:focus-visible {
  outline: 2px solid #d6b3df;
  outline-offset: 4px;
}

.rate-table {
  width: 100%;
  min-width: 710px;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}

.rate-table :is(th, td) {
  padding: 1rem .85rem;
  border-right: 1px solid #4a394f;
  border-bottom: 1px solid #4a394f;
  text-align: center;
  white-space: nowrap;
}

.rate-table :is(th, td):last-child {
  border-right: 0;
}

.rate-table tbody tr:last-child :is(th, td) {
  border-bottom: 0;
}

.rate-table thead th {
  color: #d9c4df;
  background: #25172a;
  font-size: .75rem;
  letter-spacing: .08em;
}

.rate-table tbody th {
  min-width: 158px;
  color: #f3edf4;
  background: #1c1420;
  font-family: var(--font-serif-jp);
  font-weight: 400;
  text-align: left;
}

.rate-table td {
  color: #eee5f0;
  font-family: Georgia, var(--font-serif-jp);
  font-size: .9375rem;
}

.rate-scroll-note {
  display: block;
  margin-top: .75rem;
  color: #a99fad;
  font-size: .6875rem;
}

.rate-summary {
  display: grid;
  gap: .75rem;
  margin-top: 1.25rem;
}

.rate-summary article {
  padding: 1.25rem;
  border: 1px solid #5e4964;
  background: #17101a;
}

.rate-summary span {
  display: block;
  margin-bottom: .45rem;
  color: #b996c2;
  font-size: .625rem;
  letter-spacing: .15em;
}

.rate-summary h3 {
  margin: 0 0 .4rem;
  font: 400 1.05rem/1.6 var(--font-serif-jp);
}

.rate-summary strong {
  font: 400 1.2rem/1.5 Georgia, var(--font-serif-jp);
}

.rate-summary small {
  display: block;
  margin-top: .45rem;
  color: #b9afbd;
  line-height: 1.7;
}

.dispatch-area,
.booking-flow {
  margin-top: clamp(3.5rem, 7vw, 6rem);
}

.area-list {
  display: grid;
  gap: .75rem;
  margin-top: 1.75rem;
}

.area-list article {
  display: grid;
  grid-template-columns: minmax(92px, .32fr) 1fr;
  gap: .35rem 1.25rem;
  padding: 1.15rem 1.25rem;
  border-top: 1px solid #5e4964;
}

.area-list strong {
  grid-row: 1 / 3;
  align-self: center;
  color: #d9b8df;
  font: 400 1.05rem/1.5 Georgia, var(--font-serif-jp);
}

.area-list h3 {
  margin: 0;
  font: 400 1rem/1.6 var(--font-serif-jp);
}

.area-list p {
  margin: 0;
  color: #bfb3c3;
  font-size: .8125rem;
}

.dispatch-note {
  margin: 1rem 0 0;
  color: #aba0af;
  font-size: .75rem;
}

@media (min-width: 640px) {
  .page-site .contact-form-grid,
  .rate-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-site .contact-form-message {
    grid-column: 1 / -1;
  }

  .rate-summary article:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 639px) {
  .rate-table {
    min-width: 650px;
  }

  .rate-table :is(th, td) {
    padding: .85rem .7rem;
  }

  .area-list article {
    grid-template-columns: 1fr;
  }

  .area-list strong {
    grid-row: auto;
  }
}
