/* Shared text roles and the Megumi review layouts. Loaded after the legacy theme. */
:root { --yoruya-body-size: 16px; --yoruya-body-leading: 1.95; }
body #main_content .content_area { color: #302b27; }
body #main_content .content_area :is(.c-page_lead > .text, .c-content_text > .text, .c-horizontal_block > .text, .c-article_text > .text, .room_text, .yoruya-planning-lead, .yoruya-dining-options p, .yoruya-stay-stories p, .yoruya-explore p, .yoruya-before-booking dd, .yoruya-access-intro, .yoruya-planning-meals > p, .yoruya-planning-availability p, .yoruya-booking-prompt > p:not(.yoruya-small-note)) { font-size: var(--yoruya-body-size); line-height: var(--yoruya-body-leading); }
body #main_content .content_area .yoruya-breadcrumbs { font-size: 16px; margin-bottom: 20px; }
.yoruya-outline-link { display: inline-flex; align-items: center; justify-content: center; gap: 24px; max-width: 100%; min-height: 48px; box-sizing: border-box; padding: 12px 24px; border: 1px solid #64594d; background: transparent; color: #302b27; font: inherit; font-size: 15px; line-height: 1.6; text-decoration: none; }
.yoruya-outline-link:hover { background: #302b27; border-color: #302b27; color: #fffaf5; }
.yoruya-outline-link:focus-visible { outline: 3px solid #725037; outline-offset: 4px; }
.yoruya-home .wrapper .content_area.__top { padding-top: 0; }
.yoruya-home-section, .yoruya-experience-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: center; gap: clamp(32px, 5vw, 80px); margin: 0 0 clamp(72px, 9vw, 132px); }
.yoruya-home-section > figure, .yoruya-experience-section > figure { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; }
.yoruya-home-section > figure img, .yoruya-experience-section > figure img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.yoruya-section-copy { min-width: 0; grid-column: 1; grid-row: 1; }
.yoruya-section-copy h2 { font: inherit; font-size: clamp(28px, 2.6vw, 38px); line-height: 1.65; margin: 0 0 22px; text-wrap: balance; }
.yoruya-section-copy p, .yoruya-experiences-intro p { font-size: var(--yoruya-body-size); line-height: var(--yoruya-body-leading); margin-bottom: 28px; }
.yoruya-home-section--about { display: block; max-width: 740px; text-align: center; margin: 0 auto; padding: clamp(72px, 9vw, 132px) 0; }
.yoruya-home-section--about h2 { font-size: clamp(26px, 2.6vw, 36px); }
.yoruya-home-section--about p { text-align: left; }
.wrapper .content_area > .yoruya-page-photo { width: 100%; margin-top: 0; }
[data-page="about"] .yoruya-page-heading + .c-content_text { margin-top: 0; }
[data-page="dining"] .yoruya-dining-practical { padding-top: 0; border-top: 0; margin-top: 0; }
[data-page="rooms"] .c-page_lead > .text { width: 100%; max-width: none; }
.content_area > .room_list { margin-top: 56px; }
.content_area > .room_list > .rooms_block, .content_area > .room_list > .rooms_block:nth-child(2n) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 72px); align-items: start; width: 100%; margin: 0 0 96px; scroll-margin-top: calc(var(--yoruya-header-height) + var(--yoruya-admin-offset) + 28px); }
.content_area > .room_list > .rooms_block > .image_swiper { grid-column: 2; grid-row: 1; width: 100%; min-width: 0; }
.content_area > .room_list > .rooms_block > .detail { grid-column: 1; grid-row: 1; width: 100%; min-width: 0; margin: 0; }
.content_area > .room_list > .rooms_block > .detail > .room_category { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.5; font-weight: 400; display: block; }
.content_area > .room_list > .rooms_block > .detail > .room_category > .size { display: block; font-size: 16px; line-height: 1.7; margin-top: 8px; }
.content_area > .room_list > .rooms_block > .detail > .room_text { display: block; overflow: visible; -webkit-line-clamp: unset; -webkit-box-orient: initial; height: auto; max-height: none; font-size: var(--yoruya-body-size); line-height: var(--yoruya-body-leading); margin-top: 22px; }
.rooms_block .swiper-slide img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.yoruya-room-facts-list { margin: 24px 0; border-top: 1px solid #c8bcae; }
.yoruya-room-facts-list > div { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 16px; border-bottom: 1px solid #d7cdc0; padding: 12px 0; font-size: 14px; line-height: 1.8; }
.yoruya-room-facts-list dt { font-weight: 400; color: #63594f; }
.yoruya-room-facts-list dd { margin: 0; }
.yoruya-room-bookings { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 28px; }
.yoruya-room-bookings > div { max-width: 100%; }
.yoruya-room-bookings p { font-size: 14px; line-height: 1.7; margin-bottom: 8px; }
.yoruya-room-bookings .yoruya-outline-link { gap: 12px; }
@media (max-width: 812px) {
  :root { --yoruya-body-size: 15px; }
  body #main_content .content_area .yoruya-breadcrumbs { font-size: 15px; margin-left: 0; margin-right: 0; }
  .yoruya-home-section, .yoruya-experience-section { grid-template-columns: minmax(0, 1fr); gap: 28px; margin-bottom: 64px; }
  .yoruya-home-section > figure, .yoruya-experience-section > figure { grid-column: 1; grid-row: 1; }
  .yoruya-section-copy { grid-column: 1; grid-row: 2; }
  .yoruya-home-section--about { padding: 64px 0; margin-bottom: 0; }
  .yoruya-home-section--about h2 { text-align: left; }
  .yoruya-section-copy h2 { font-size: 28px; margin-bottom: 18px; }
  [data-page="rooms"] .c-page_title { width: 100%; margin: 0; }
  .content_area > .room_list > .rooms_block, .content_area > .room_list > .rooms_block:nth-child(2n) { grid-template-columns: minmax(0, 1fr); gap: 28px; margin-bottom: 64px; }
  .content_area > .room_list > .rooms_block > .image_swiper { grid-column: 1; grid-row: 1; }
  .content_area > .room_list > .rooms_block > .detail { grid-column: 1; grid-row: 2; }
  .yoruya-room-facts-list > div { grid-template-columns: 80px minmax(0,1fr); gap: 14px; }
}
/* Match equivalent reading and form roles across the remaining templates. */
body #main_content .content_area :is(.yoruya-access p:not(.yoruya-access-note), .yoruya-access address, .yoruya-access dd, .yoruya-access-teaser p, .contact_lead, .contact_text, .contact_title, .c-article_link .text, .message_404 > .text) { font-size: var(--yoruya-body-size); line-height: var(--yoruya-body-leading); }
body #main_content .content_area .contact_title > .required { font-size: 14px; }
body #main_content .content_area .contact_form :is(input, textarea, select) { font-size: 16px; }
body #main_content .content_area .article_nav .text { font-size: 15px; line-height: 1.8; }
body #main_content .content_area .yoruya-before-booking dt { font-size: var(--yoruya-body-size); }
footer#footer > .inner > .text_block > .info > .link :is(.address, .tel) { font-size: 14px; line-height: 1.9; }

/* M038–M040: one set of reading roles and gutters across guest pages. */
:root {
  --yoruya-page-title-size: 40px;
  --yoruya-section-title-size: 28px;
  --yoruya-section-gap: 56px;
  --yoruya-page-gutter: 48px;
}
body:not(.yoruya-home) #main_content .content_area {
  width: min(1240px, calc(100% - 2 * var(--yoruya-page-gutter)));
  margin-inline: auto;
  padding-top: 24px;
}
body #main_content .content_area .yoruya-breadcrumbs {
  margin: 0 0 24px;
}
body:not(.yoruya-home) #main_content .content_area h1:not(.yoruya-sr-only) {
  display: block;
  width: auto;
  font: inherit;
  font-size: var(--yoruya-page-title-size);
  line-height: 1.5;
  text-align: left;
  margin: 0 0 24px;
  overflow-wrap: break-word;
}
body:not(.yoruya-home) #main_content .content_area .c-page_title {
  width: 100%;
  margin: 0;
  gap: 24px;
}
body:not(.yoruya-home) #main_content .content_area .c-page_lead {
  width: 100%;
  max-width: none;
  margin: 0;
  font-size: var(--yoruya-body-size);
  line-height: var(--yoruya-body-leading);
}
.yoruya-experiences-intro { width: 100%; max-width: none; margin: 0 0 var(--yoruya-section-gap); }
.yoruya-experiences-intro p { margin: 0; }
body #main_content .content_area > .room_list { margin-top: var(--yoruya-section-gap); }
body #main_content .content_area .yoruya-dining-practical {
  margin: 0 0 var(--yoruya-section-gap);
  padding: 0 0 32px;
  border-top: 0;
}
body #main_content .content_area :is(.yoruya-experience-section h2, .rooms_block .room_category,
  .yoruya-dining-options h2, .yoruya-access-grid h2, .yoruya-stay-info h2) {
  font: inherit;
  font-size: var(--yoruya-section-title-size);
  line-height: 1.5;
  margin: 0 0 22px;
}
body #main_content .content_area .yoruya-access { margin-top: 0; }
body #main_content .content_area .yoruya-page-photo { margin: 0 0 32px; }
body:not(.yoruya-home) #main_content .content_area :is(.c-content_text, .article_content_area) {
  width: min(100%, 860px);
  margin-inline: 0;
}
body[data-page="dining"] #main_content .content_area > .article_content_area { width: 100%; margin-top: 0; }
body[data-page="dining"] #main_content .content_area > .article_content_area > .article_layout { margin-top: 0; }
body #main_content .content_area :is(.c-content_text, .article_layout) :is(p, li),
body #main_content .content_area :is(.article_lead, .c-article_text > .text, .contact_lead) {
  font-size: var(--yoruya-body-size);
  line-height: var(--yoruya-body-leading);
}
body #main_content .content_area > .article_content_area > .article_title > .data {
  display: block; font-size: 14px; line-height: 1.7; margin-top: 12px; width: auto;
}
body[data-page="about"] #main_content .content_area .c-horizontal_block {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  align-items: start; gap: clamp(32px, 5vw, 72px); width: 100%;
  margin: var(--yoruya-section-gap) 0;
}
body[data-page="about"] #main_content .content_area .c-horizontal_block > :is(.image, .text) { width: 100%; min-width: 0; margin: 0; }
body[data-page="about"] #main_content .content_area .c-horizontal_block.__reverse > .image { grid-column: 2; grid-row: 1; }
body[data-page="about"] #main_content .content_area .c-horizontal_block.__reverse > .text { grid-column: 1; grid-row: 1; }
@media (max-width: 812px) {
  :root { --yoruya-page-title-size: 30px; --yoruya-section-title-size: 24px; --yoruya-section-gap: 40px; --yoruya-page-gutter: 20px; }
  body:not(.yoruya-home) #main_content .content_area { padding-top: 20px; }
  body #main_content .content_area .yoruya-page-photo { margin-bottom: 24px; }
  body #main_content .content_area :is(.c-article_text, .c-article_link, .article_nav,
    .news_list, .news_pagination, .contact_lead, .contact_form, .contact_text,
    .c-picup_article > .link > .detail, .c-picup_article > .link > .thumbnail) {
    width: 100%; margin-inline: 0;
  }
  body[data-page="about"] #main_content .content_area .c-horizontal_block { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  body[data-page="about"] #main_content .content_area .c-horizontal_block > .image,
  body[data-page="about"] #main_content .content_area .c-horizontal_block.__reverse > .image { grid-column: 1; grid-row: 2; }
  body[data-page="about"] #main_content .content_area .c-horizontal_block > .text,
  body[data-page="about"] #main_content .content_area .c-horizontal_block.__reverse > .text { grid-column: 1; grid-row: 1; }
}
