@charset "UTF-8";
/* Readability update 2026-10-05. Content, prices, images and native blocks stay untouched. */
:root {
  --hh-muted: #513e30;
  --hh-readable-green: #425134;
  --hh-readable-gold: #795712;
}

#body_wrap { font-size: 16px; font-weight: 400; color: var(--hh-ink); }

/* Clear hierarchy requested by the owner: bold headings, regular body copy. */
#body_wrap .post_content :is(h1,h2,h3,h4,h5,h6),
#body_wrap :is(.c-pageTitle,.c-pageTitle__inner,.l-mainContent__title,.c-widget__title),
#body_wrap .post_content :is(.faq_q,.wp-block-details summary),
#body_wrap .p-postList__title {
  font-weight: 700 !important;
}
#body_wrap .post_content :is(h1,h2,h3,h4,h5,h6) :is(span,strong) { font-weight: inherit !important; }

/* Japanese body copy: readable at every viewport, including imported inline sizes. */
#body_wrap .post_content :is(p, li, td, th) {
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.85;
}
#body_wrap .post_content th { font-weight: 700 !important; }
#body_wrap .post_content :is(strong,b) { font-weight: 700; }
#body_wrap .post_content .hh-store-owner-label { font-weight: 700 !important; }
#body_wrap .post_content :is(.has-small-font-size,.u-fz-s,.u-fz-xs,
  [style*="font-size:13px" i],[style*="font-size: 13px" i],
  [style*="font-size:14px" i],[style*="font-size: 14px" i],
  [style*="font-size:0.8em" i],[style*="font-size: 0.8em" i]) { font-size: 15px !important; }
#body_wrap .post_content :is(span,a,p)[style*="#808080" i],
#body_wrap .post_content :is(span,a,p)[style*="#848287" i],
#body_wrap .post_content :is(span,a,p)[style*="#889c9c" i],
#body_wrap .post_content :is(span,a,p)[style*="#433f3f" i],
#body_wrap .post_content :is(span,a,p)[style*="#7e8f9f" i] { color: var(--hh-muted) !important; }
#body_wrap .post_content :is(p, li, td, th) :is(small, sup, sub),
#body_wrap .post_content small,
#body_wrap .post_content cite {
  font-size: 15px !important;
  line-height: 1.7;
}
#body_wrap .post_content :is(p, li, td, th) span[style*="font-size"],
#body_wrap .post_content :is(p, li, td, th) strong {
  font-size: inherit;
}
#body_wrap .post_content :is(.su-button, .su-button span) {
  color: var(--hh-ink) !important;
  font-size: max(16px, 1em) !important;
  line-height: 1.8 !important;
  white-space: normal;
}
#body_wrap .post_content :is(.wp-block-button__link, .hh-text-link a) {
  font-size: 16px !important;
  line-height: 1.65;
  min-height: 48px;
}
#body_wrap .post_content :is(.hh-eyebrow, .hh-section-heading__en, .hh-card-label,
  .hh-flow-step__number, .hh-owner__name, .hh-pay__watermark, .hh-trial-kicker,
  .hh-trial-course__number, .hh-trial-tax, .hh-trial-step__number) {
  font-size: 15px !important;
  line-height: 1.7;
}
#body_wrap .post_content :is(.hh-eyebrow, .hh-section-heading__en, .hh-card-label,
  .hh-flow-step__number, .hh-trial-kicker, .hh-trial-course__number,
  .hh-trial-step__number, .hh-trial-price__tag) {
  color: var(--hh-readable-gold);
}
#body_wrap .post_content .hh-rating__score { font-size: 76px !important; line-height: 1.15; }
#body_wrap .post_content .hh-quick-card__icon { font-size: 0 !important; line-height: 0; }
#body_wrap .post_content .hh-rating { background: var(--hh-readable-green); color: #fff; }
#body_wrap .post_content .hh-rating__score { color: #fff; }
#body_wrap .post_content .hh-trial-price__tag { font-size: 15px; padding: 4px 12px; }
#body_wrap .post_content .hh-trial-price td strong { color: var(--hh-readable-gold); font-size: 22px; }
#body_wrap .post_content :is(.hh-trial-course h2 span, .hh-trial-course h2 small) {
  color: var(--hh-readable-gold) !important;
}
#body_wrap .hh-trial h2 span { color: var(--hh-readable-gold) !important; }

/* Header: retain all English/Japanese labels and the standard SWELL submenu. */
#body_wrap .l-header__inner {
  max-width: 1432px !important;
  width: 100%;
  height: auto !important;
  min-height: 88px !important;
  padding: 14px 32px !important;
  gap: 24px;
}
#body_wrap .l-header__logo { flex-shrink: 0; }
#body_wrap .l-fixHeader__inner { max-width: 1432px; padding: 14px 32px; gap: 24px; }
#body_wrap .l-fixHeader__logo { flex-shrink: 0; margin-right: 0; padding: 0; }
#body_wrap :is(.c-gnav, .c-spnav) a {
  box-sizing: border-box;
  font-size: 16px !important;
  line-height: 1.5;
  color: var(--hh-ink);
}
#body_wrap .c-gnav > li > a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: auto !important;
  min-height: 68px !important;
  padding: 12px 10px !important;
  gap: 4px;
}
#body_wrap .c-gnav .ttl { font-size: 16px; line-height: 1.5; }
#body_wrap :is(.c-gnav, .c-spnav) .c-smallNavTitle {
  display: block !important;
  font-size: 12px !important;
  line-height: 1.6 !important;
  color: var(--hh-muted) !important;
  margin: 0 !important;
  opacity: 1;
  font-weight: 400 !important;
  white-space: normal;
}
#body_wrap .c-gnav > li:last-child > a { margin: 0 !important; padding-inline: 16px !important; }
#body_wrap .c-gnav .sub-menu a { min-height: 68px; padding: 12px 18px; }
#body_wrap .c-gnav .sub-menu .c-smallNavTitle { margin-top: 6px !important; }
#body_wrap .c-spnav > li > a { min-height: 64px; padding: 14px 20px; }
#body_wrap .c-spnav .c-smallNavTitle { margin-top: 4px !important; }
#body_wrap .c-spnav .c-smallNavTitle { font-size: 13px !important; }
#body_wrap .c-spnav .sub-menu a { min-height: 60px; padding: 12px 20px 12px 32px; }
#body_wrap .p-spMenu__title { font-size: 18px; color: var(--hh-ink); }
#body_wrap .p-spMenu__inner { color: var(--hh-ink); }
#body_wrap :is(.c-gnav, .c-spnav, .l-footer__nav) a:focus-visible {
  outline: 2px solid var(--hh-readable-green);
  outline-offset: 3px;
}

/* Dates, categories, breadcrumbs and article utility text are not miniature text. */
#body_wrap :is(.p-breadcrumb, .p-breadcrumb__text, .p-breadcrumb .__home,
  .c-postTimes, .c-postTimes time, .c-postThumb__cat, .c-categoryList__link,
  .p-postList__meta, .wp-block-post-date, .p-pnLinks__title, .p-authorBox__name,
  .copyright, .p-articleFoot .__text, .post_content figcaption) {
  font-size: 15px !important;
  line-height: 1.7;
}
#body_wrap :is(.p-breadcrumb, .c-postTimes, .c-postTimes time, .p-postList__meta,
  .wp-block-post-date, .p-pnLinks__title, .copyright, .post_content figcaption) {
  color: var(--hh-muted);
  opacity: 1;
}
#body_wrap :is(.p-postList__excerpt, .p-toc__link) { font-size: 16px !important; line-height: 1.75; }
#body_wrap .p-postList__title { font-size: max(16px,1em); line-height: 1.75; }
#body_wrap .hh-posts .p-postList__title { font-size: 20px; line-height: 1.6; }
#body_wrap .c-postThumb__cat { background: var(--hh-readable-green); color: #fff; padding: 5px 10px; }
#body_wrap .c-categoryList__link { background: var(--hh-readable-green); color: #fff; padding: 6px 12px; }
#body_wrap .page-numbers { font-size: 16px; min-width: 44px; min-height: 44px; line-height: 44px; color: var(--hh-ink); background: var(--hh-cream); border: 1px solid var(--hh-line); }
#body_wrap .page-numbers.current { background: var(--hh-readable-green); color: #fff; border-color: var(--hh-readable-green); }
#body_wrap .page-numbers:hover { background: var(--hh-yellow); color: var(--hh-ink); }
#body_wrap .p-breadcrumb { padding-block: 14px; }

/* Give larger text its own space instead of clipping it in the old fixed heights. */
#body_wrap .hh-home .hh-section { padding-block: 96px; }
#body_wrap .hh-home .hh-section-heading { margin-bottom: 52px; }
#body_wrap .hh-home .hh-quick-nav { height: auto; }
#body_wrap .hh-home .hh-quick-card { padding: 24px 20px; }
#body_wrap .hh-home .hh-quick-card :is(strong,small) { white-space: normal; }
#body_wrap .hh-home .hh-quick-card strong { font-size: 16px; line-height: 1.7; }
#body_wrap .hh-home .hh-quick-card small { margin-top: 6px; font-size: 15px; line-height: 1.7; }
#body_wrap .hh-home .hh-campaign { height: auto; min-height: 76px; padding-block: 18px; }
#body_wrap .hh-home .hh-campaign strong { font-size: 16px; color: var(--hh-readable-gold); }
#body_wrap .hh-home .hh-faq-card { padding: 30px; }
#body_wrap .hh-home .hh-faq-card .faq_q span { font-size: 15px; background: var(--hh-readable-gold); padding: 4px 12px; }
#body_wrap .hh-home .hh-faq-card .faq_a { line-height: 1.85; }
#body_wrap .hh-home :is(.hh-reason,.hh-flow-step) { padding: 32px 24px; }
#body_wrap .hh-home .hh-voice { height: auto; padding: 28px; }
#body_wrap .hh-home .hh-posts .p-postList__item { height: auto; min-height: 394px; }
#body_wrap .hh-home .hh-posts .p-postList__body { height: auto; min-height: 148px; padding: 20px; }
#body_wrap .hh-home .hh-access__card { height: auto; min-height: 540px; }
#body_wrap .hh-home .hh-access__info { padding: 48px; }
#body_wrap .hh-home .hh-access__info :is(th,td) { padding-block: 12px; }
#body_wrap .hh-home .hh-reservation__panel { padding: 52px; }
#body_wrap .hh-inner-page > .wp-block-group__inner-container > p { margin-bottom: 24px; }
#body_wrap .hh-inner-page .wp-block-table :is(td,th) { padding: 16px 18px; vertical-align: middle; }
#body_wrap .hh-trial .hh-trial-concerns { gap: 12px; }
#body_wrap .hh-trial .hh-trial-concerns p { padding: 14px 12px; }
#body_wrap .hh-trial .hh-trial-notice { padding: 24px 28px; }
#body_wrap .hh-trial :is(.hh-trial-step,.hh-trial-care,.hh-trial-reason) { padding: 28px; }

/* Footer: natural flow prevents larger menus from colliding with the shop details. */
#body_wrap .l-footer__inner {
  max-width: 1220px;
  min-height: 0 !important;
  padding: 56px 32px 32px;
  margin-inline: auto;
}
#body_wrap .l-footer__widgetArea { padding: 0 !important; }
#body_wrap .l-footer .w-footer { padding: 0; }
#body_wrap .l-footer .w-footer__box { padding: 0; }
#body_wrap .l-footer .textwidget { font-size: 16px !important; line-height: 1.9; }
#body_wrap .l-footer .textwidget p { font-size: 16px !important; line-height: 1.9; margin-block: 0; }
#body_wrap .l-footer .textwidget { font-weight: 400; }
#body_wrap .l-footer .c-widget__title { line-height: 1.6; margin-bottom: 20px; text-wrap: balance; }
#body_wrap .l-footer__foot { position: static !important; padding: 32px 0 0 !important; }
#body_wrap .l-footer__foot .l-container { width: 100% !important; padding: 0; }
#body_wrap .l-footer__nav { justify-content: flex-start !important; flex-wrap: wrap; gap: 8px 16px; padding: 0; }
#body_wrap .l-footer__nav li { margin: 0; }
#body_wrap .l-footer__nav a { display: flex; align-items: center; font-size: 16px !important; line-height: 1.7; min-height: 48px; padding: 8px 12px !important; color: var(--hh-ink); }
#body_wrap .l-footer .copyright { position: static !important; width: auto !important; margin-top: 24px; text-align: left; }

@media (min-width: 960px) and (max-width: 1199px) {
  #body_wrap .l-header__inner { flex-direction: column; padding: 16px 24px !important; gap: 12px; }
  #body_wrap .l-fixHeader__inner { flex-direction: column; align-items: center; padding: 12px 24px; gap: 8px; }
  #body_wrap :is(.l-header__gnav,.l-fixHeader__gnav) { width: 100%; }
  #body_wrap .c-gnav { display: grid; grid-template-columns: repeat(8,minmax(0,1fr)); width: 100%; }
  #body_wrap .c-gnav > li { min-width: 0; }
  #body_wrap .c-gnav > li > a { min-height: 88px !important; padding: 10px 6px !important; }
  #body_wrap .c-gnav > li:last-child > a { padding-inline: 8px !important; }
  #body_wrap .c-gnav .c-smallNavTitle { width: 100%; }
}
@media (max-width: 959px) {
  #body_wrap .l-header__inner { min-height: 76px !important; padding: 12px 20px !important; gap: 0; }
  #body_wrap .l-header :is(.c-iconBtn, .c-plainBtn) { min-width: 44px; min-height: 44px; }
  #body_wrap .l-footer__inner { padding: 44px 24px 28px; }
}
@media (max-width: 767px) {
  #body_wrap .hh-home .hh-section { padding: 76px 20px; }
  #body_wrap .hh-home .hh-section-heading { margin-bottom: 36px; }
  #body_wrap .hh-home .hh-quick-nav { grid-template-columns: 1fr; width: calc(100% - 40px); margin-top: 20px !important; }
  #body_wrap .hh-home .hh-quick-card { padding: 20px; gap: 16px; border-left: 0; }
  #body_wrap .hh-home .hh-quick-card + .hh-quick-card { border-top: 1px solid var(--hh-line); }
  #body_wrap .hh-home .hh-faq-card { padding: 26px 24px; }
  #body_wrap .hh-home :is(.hh-reason,.hh-flow-step) { padding: 28px 24px; }
  #body_wrap .hh-home .hh-access__card { min-height: 0; }
  #body_wrap .hh-home .hh-access__info { padding: 32px 24px 16px; }
  #body_wrap .hh-home .hh-access__info :is(th,td) { padding-block: 10px; }
  #body_wrap .hh-home .hh-reservation__panel { padding: 36px 24px; }
  #body_wrap .hh-inner-page .wp-block-table :is(td,th) { min-width: 0; padding: 14px 10px !important; overflow-wrap: anywhere; }
  #body_wrap .hh-inner-page .wp-block-table :is(.small,.price_b,.ribbon1) { font-size: 15px; }
  #body_wrap .hh-trial .hh-trial-concerns { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #body_wrap .hh-trial .hh-trial-notice { padding: 22px 20px; }
  #body_wrap .hh-trial :is(.hh-trial-step,.hh-trial-care,.hh-trial-reason) { padding: 24px; }
  #body_wrap .l-footer__inner { padding-inline: 20px; }
  #body_wrap .l-footer__nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  #body_wrap .l-footer__nav a { padding: 12px 8px !important; }
  #body_wrap .l-footer__nav > li:last-child { grid-column: 1 / -1; }
  #body_wrap .l-footer .copyright { padding-right: 56px; }
  #body_wrap .l-footer .c-widget__title { font-size: clamp(18px,5.2vw,22px) !important; text-wrap: pretty; }
}
