/* ==========================================================================
   Oshiro massage - WordPress layer
   Makes the original stylesheet work on block-editor markup.
   ========================================================================== */

@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 300 700; font-display: swap; src: url("fonts/cormorant-garamond.woff") format("woff"); }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 300 700; font-display: swap; src: url("fonts/cormorant-garamond-italic.woff") format("woff"); }
@font-face { font-family: "Zen Kaku Gothic New"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/zen-kaku-gothic-new-400.woff") format("woff"); }
@font-face { font-family: "Zen Kaku Gothic New"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/zen-kaku-gothic-new-500.woff") format("woff"); }
@font-face { font-family: "Zen Kaku Gothic New"; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/zen-kaku-gothic-new-700.woff") format("woff"); }

/* ---- spacing comes from the flex gaps of the design, not block margins ---- */
.wp-block-group > *,
.wp-block-group > * + * { margin-block: var(--s-0); }
.wp-block-group p,
.wp-block-group h1, .wp-block-group h2, .wp-block-group h3, .wp-block-group h4,
.wp-block-group ul { margin: var(--s-0); }

/* ---- images --------------------------------------------------------------- */
.wp-block-image { margin: var(--s-0); width: var(--w-full); }
.wp-block-image img { display: block; width: var(--w-full); }
.hero-img img, .svc-img img, .cert-img img { height: auto; }

/* ---- buttons -------------------------------------------------------------- */
.wp-block-buttons.btn-row { display: flex; flex-wrap: wrap; gap: var(--s-3); }
.btn-row .wp-block-button { margin: var(--s-0); }
.btn-row .wp-block-button__link {
  font-family: var(--f-body);
  line-height: var(--lh-nav);
  text-decoration: none;
  box-shadow: none;
}
@media (max-width: 560px) {
  .btn-row .wp-block-button { width: var(--w-full); }
  .btn-row .wp-block-button__link { width: var(--w-full); }
}

/* ---- divider --------------------------------------------------------------- */
.wp-block-separator.divider {
  width: var(--w-rule);
  height: var(--h-line);
  margin: var(--s-0);
  border: none;
  background: var(--c-line);
  opacity: 1;
}

/* ---- decorative dots and rules (were empty spans) ------------------------ */
.card-meta::before,
.tag::before {
  content: "";
  width: var(--w-dot);
  height: var(--w-dot);
  border-radius: var(--r-full);
  background: var(--c-sage);
  flex: 0 0 auto;
}

.price-row .price-dur,
.hours-row .hours-day {
  display: flex;
  align-items: baseline;
  gap: var(--s-3);
  flex: 1 1 auto;
}
.price-row .price-dur::after,
.hours-row .hours-day::after {
  content: "";
  flex: 1 1 auto;
  min-width: var(--s-5);
  border-bottom: var(--bw) dashed var(--c-line);
}
.price-row .price-name { flex: 0 1 auto; }

/* ---- central price block ------------------------------------------------ */
.price-all { display: flex; flex-direction: column; gap: var(--s-5); }

/* ---- bullet list ---------------------------------------------------------- */
.wp-block-list.list { list-style: none; padding: var(--s-0); margin: var(--s-0); }
.wp-block-list.list li {
  position: relative;
  margin: var(--s-0);
  padding-left: calc(var(--w-dot) + var(--s-3));
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--c-ink-soft);
}
.wp-block-list.list li::before {
  content: "";
  position: absolute;
  left: var(--s-0);
  top: calc(var(--s-3) + var(--bw-2));
  width: var(--w-dot);
  height: var(--w-dot);
  border-radius: var(--r-full);
  background: var(--c-rose);
}

/* ---- contact info ---------------------------------------------------------- */
.info-val a { color: inherit; }
.info-val a:hover { color: var(--c-rose); }
.card-link a { color: var(--c-rose); }

/* ---- ordinary pages (privacy statement, new text pages) ------------------- */
.entry { display: flex; flex-direction: column; gap: var(--s-4); }
.entry > * { margin: var(--s-0); }
.entry p, .entry li { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--c-ink-soft); }
.entry h2 { font-family: var(--f-display); font-size: var(--fs-h2); font-weight: var(--fw-book); line-height: var(--lh-head); color: var(--c-ink); margin-top: var(--s-5); }
.entry h3 { font-family: var(--f-display); font-size: var(--fs-h3); font-weight: var(--fw-medium); line-height: var(--lh-head); color: var(--c-ink); margin-top: var(--s-4); }
.entry a { text-decoration: underline; text-underline-offset: 3px; }
.entry ul, .entry ol { padding-left: var(--s-5); }
.entry img { height: auto; border-radius: var(--r-md); }

/* ---- accessibility ------------------------------------------------------- */
.skip-link { position: absolute; left: -9999px; top: var(--s-2); z-index: 100; padding: var(--s-2) var(--s-4); background: var(--c-ink); color: var(--c-on-dark); border-radius: var(--r-full); }
.skip-link:focus { left: var(--s-4); }
a:focus-visible, .wp-block-button__link:focus-visible { outline: var(--bw-2) solid var(--c-rose); outline-offset: var(--bw-4); }

/* ---- flags in the language switcher ------------------------------------- */
.lang-flag { display: flex; align-items: center; }
.lang-flag svg { display: block; width: 20px; height: 14px; border-radius: 2px; box-shadow: 0 0 0 var(--bw) var(--c-shadow); }

/* ---- online booking (Cal.com) -------------------------------------------- */
.booking-embed { width: var(--w-full); display: flex; flex-direction: column; gap: var(--s-5); }
.booking-step { margin: var(--s-0); font-family: var(--f-display); font-size: var(--fs-h3); font-weight: var(--fw-medium); line-height: var(--lh-head); color: var(--c-ink); }
.booking-step-2 { margin-top: var(--s-5); scroll-margin-top: 120px; }
.booking-choose { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--s-3); }
.booking-option {
  display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-1);
  padding: var(--s-4) var(--s-5);
  background: var(--c-card); color: var(--c-ink);
  border: var(--bw) solid var(--c-line); border-radius: var(--r-md);
  font-family: var(--f-body); text-align: left; cursor: pointer;
  transition: border-color .15s, background .15s;
}
.booking-option:hover { border-color: var(--c-rose-pale); }
.booking-option[aria-pressed="true"] { border-color: var(--c-rose); background: var(--c-field); box-shadow: 0 0 0 var(--bw) var(--c-rose); }
.booking-option:focus-visible { outline: var(--bw-2) solid var(--c-rose); outline-offset: var(--bw-4); }
.booking-option-name { font-size: var(--fs-price); line-height: var(--lh-head); }
.booking-option-meta { font-size: var(--fs-small); color: var(--c-ink-faint); }
.booking-frame { width: var(--w-full); min-height: 640px; overflow: auto; border-radius: var(--r-md); }
.booking-frame[hidden], .booking-step[hidden] { display: none; }
.section-tight .wp-block-shortcode, .section-tight > .wrap > p { margin: var(--s-0); }

/* ---- header with five menu items ----------------------------------------- */
.nav-link, .brand-kanji { white-space: nowrap; }
@media (max-width: 1240px) { .nav-links { gap: var(--s-5); } }
@media (max-width: 1100px) { .nav-links { gap: var(--s-4); } .nav-link { letter-spacing: var(--ls-none); } }
@media (max-width: 1200px) { .brand-name { display: none; } }
@media (max-width: 400px) {
  .brand-words { display: none; }
  .nav-inner { gap: var(--s-2); }
  .nav-tel { padding: var(--s-0) var(--s-3); }
  .nav-row2 { gap: var(--s-1); padding-left: var(--s-3); padding-right: var(--s-3); }
}
@media (max-width: 900px) and (min-width: 561px) {
  .nav-links { gap: var(--s-3); }
  .nav-link { font-size: var(--fs-micro); }
  .lang-btn { padding: var(--s-0) var(--s-1); }
}
@media (max-width: 760px) {
  .nav-links { display: none; }
  .nav-row2 {
    display: flex;
    justify-content: space-between;
    gap: var(--s-2);
    padding: var(--s-0) var(--s-4) var(--s-2);
    border-top: var(--bw) solid var(--c-line-soft);
  }
  .nav-row2 .nav-link { font-size: var(--fs-micro); letter-spacing: var(--ls-none); padding-top: var(--s-3); }
}
