@charset "utf-8";
/* Reference-led native PHP redesign. DESIGN_VARIANCE 5 / MOTION_INTENSITY 4 / VISUAL_DENSITY 4.
   One dark theme, square frames, original image URLs. Layers: header 20, CTA 30, drawer 40, menu 50. */
:root {
  color-scheme: dark;
  --bg: #080403;
  --surface: #19090e;
  --surface-raised: #280e18;
  --wine: #560122;
  --wine-deep: #330017;
  --wine-hover: #710d36;
  --gold: #d6bb83;
  --gold-light: #efdfb5;
  --text: #f8f3ed;
  --muted: #cbbbc0;
  --line: rgba(214,187,131,.34);
  --line-soft: rgba(214,187,131,.16);
  --display: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", Georgia, serif;
  --body: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  --en: "Times New Roman", var(--display);
  --header-height: 74px;
  --section-space: 88px;
  --transition: .25s ease;
}
/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-height) + 20px); }
body { margin: 0; background: var(--bg); color: var(--text); font: 15px/1.9 var(--body); -webkit-text-size-adjust: 100%; }
body.open { overflow: hidden; }
h1,h2,h3,h4,h5,h6,p,figure,dl,dd { margin: 0; }
h1,h2,h3,h4 { font-family: var(--display); font-weight: 500; }
ul,ol { margin: 0; padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; transition: color var(--transition),background-color var(--transition),border-color var(--transition); }
a:hover { color: var(--gold-light); }
a:focus-visible,button:focus-visible,[role="button"]:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 5px; }
button,input,textarea,select { font: inherit; border-radius: 0; }
button { cursor: pointer; }
img { max-width: 100%; height: auto; vertical-align: middle; }
iframe { display: block; width: 100%; max-width: 100%; border: 0; }
table { border-collapse: collapse; border-spacing: 0; max-width: 100%; }
th { font-weight: 500; }
small { font-size: 12px; }
::selection { color: var(--bg); background: var(--gold); }
.inner { width: min(1120px,calc(100% - 64px)); margin-inline: auto; }
main { display: block; }
section { padding-block: var(--section-space); }
.text_center,.center_100 { text-align: center; }
.text_left { text-align: left; }
.text_right { text-align: right; }
.mb_10 { margin-bottom: 10px; }
.mb_20,.mb_20_pc { margin-bottom: 20px; }
.mb_30 { margin-bottom: 30px; }
.mb_40 { margin-bottom: 40px; }
.mt_10 { margin-top: 10px; }
.mt_20 { margin-top: 20px; }
.mt_30 { margin-top: 30px; }
.clearfix::after { content: ""; display: table; clear: both; }
.visibleSP,.loader-wrap { display: none; }
/* Fixed masthead */
header { position: fixed; inset: 0 0 auto; z-index: 20; height: var(--header-height); background: var(--wine); border-bottom: 1px solid var(--line); }
header .inner { width: 100%; max-width: 1600px; height: 100%; padding: 0 98px 0 26px; }
header .area { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
header .logo { flex: 0 0 176px; line-height: 1; }
header .logo a { display: block; }
header .logo img { width: 176px; height: 58px; object-fit: contain; }
.header_nav { display: flex; align-items: stretch; gap: clamp(18px,2.4vw,40px); }
.header_nav a { display: block; padding-block: 12px; font: 14px/1.45 var(--display); text-align: center; letter-spacing: .06em; white-space: nowrap; }
.header_nav span { display: inline-block; margin-top: 4px; color: var(--muted); font: 10px/1.2 var(--en); letter-spacing: .06em; }
.header_nav a.current,.header_nav a:hover { color: var(--gold-light); }
.header_nav a.current { box-shadow: 0 1px var(--gold); }
.btn_menu { position: fixed; top: 0; right: 0; z-index: 50; width: 74px; height: var(--header-height); display: grid; place-items: center; padding: 0; color: var(--gold-light); background: var(--wine); border: 0; border-left: 1px solid var(--line); }
.btn_menu:hover { background: var(--wine-hover); }
.btn_trigger { display: block; position: relative; width: 30px; height: 36px; }
.btn_trigger > span:not(.menu_label) { position: absolute; left: 0; width: 30px; height: 1px; background: currentColor; transition: transform var(--transition),opacity var(--transition); }
.btn_trigger > span:nth-child(1) { top: 3px; }
.btn_trigger > span:nth-child(2) { top: 11px; }
.btn_trigger > span:nth-child(3) { top: 19px; }
.menu_label { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); font: 9px/1 var(--en); letter-spacing: .09em; }
.btn_trigger.active > span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.btn_trigger.active > span:nth-child(2) { opacity: 0; }
.btn_trigger.active > span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
#nav_bg { position: fixed; inset: 0; z-index: 40; display: flex; justify-content: flex-end; visibility: hidden; opacity: 0; background: rgba(8,4,3,.78); transition: opacity var(--transition),visibility var(--transition); }
.open #nav_bg { opacity: 1; visibility: visible; }
#nav_drawer { width: min(460px,100%); height: 100dvh; overflow-y: auto; overscroll-behavior: contain; padding: calc(var(--header-height) + 24px) 40px 32px; background: var(--wine-deep); border-left: 1px solid var(--line); transform: translateX(30px); transition: transform var(--transition); }
.open #nav_drawer { transform: translateX(0); }
#nav_drawer li > a { display: block; padding: 16px 0; border-bottom: 1px solid var(--line); font: 17px/1.5 var(--display); }
#nav_drawer li > a > span { display: block; margin-top: 4px; color: var(--gold); font: 11px/1.4 var(--en); letter-spacing: .12em; }
#nav_drawer a.current { color: var(--gold-light); }
#nav_drawer .info { margin-top: 18px; }
#nav_drawer .info a { font-size: 22px; }
#nav_drawer .info a > span { display: inline; margin-right: 8px; font-family: var(--display); }
#nav_drawer .info_open { padding-top: 14px; color: var(--muted); font-size: 13px; }
#nav_drawer .info_open img { display: block; width: 160px; margin: 8px auto; }
/* Hero. Source photos are retained; CSS lighting adapts them to the reference. */
#mainvisual { position: relative; isolation: isolate; width: 100%; margin-top: var(--header-height); overflow: hidden; background: var(--wine-deep); border-bottom: 1px solid var(--line); }
#mainvisual > ul { display: flex; }
#mainvisual li { position: relative; flex: 0 0 100%; width: 100%; height: clamp(540px,48vw,730px); background: linear-gradient(90deg,rgba(35,0,16,.93),rgba(63,0,28,.76) 33%,rgba(47,0,22,.16) 70%,rgba(25,0,12,.25)),url("../images/mainvisual1.jpg") center 40% / cover no-repeat; }
#mainvisual li::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg,rgba(8,4,3,.48),transparent 35%); }
#mainvisual::after { content: ""; position: absolute; z-index: 2; inset: 24px; pointer-events: none; border: 1px solid var(--line); }
#mainvisual .mainvisual_txt { display: none; }
#mainvisual .main_text { position: absolute; z-index: 2; left: 8%; top: 24%; width: min(43%,570px); height: auto; filter: drop-shadow(0 4px 12px rgba(8,4,3,.28)); }
.hero_cta { position: absolute; z-index: 3; left: 10%; bottom: 16%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: min(40%,500px); gap: 12px; }
.hero_cta a,.recruit_entry_btn,.btn_base a { min-height: 52px; display: flex; align-items: center; justify-content: center; padding: 12px 20px; font: 15px/1.5 var(--display); letter-spacing: .1em; border: 1px solid var(--gold); transition: background var(--transition),color var(--transition),transform var(--transition); }
.hero_cta__primary,.recruit_entry_btn { background: var(--wine); color: var(--text); }
.hero_cta__secondary { background: rgba(8,4,3,.65); color: var(--gold-light); }
.hero_cta a:hover,.recruit_entry_btn:hover,.btn_base a:hover { background: var(--gold); color: var(--bg); }
.hero_cta a:active,.recruit_entry_btn:active { transform: translateY(1px); }
/* Contact strip */
.middle_info { padding: 23px 24px; background: var(--wine-deep); border-bottom: 1px solid var(--line); }
.middle_info_area { width: min(1060px,100%); margin: auto; display: grid; grid-template-columns: 1fr 1.1fr 1fr; align-items: center; font: 12px/1.8 var(--display); text-align: center; color: var(--gold); }
.middle_info_area > p { padding: 0 20px; }
.middle_info_area > p + p { border-left: 1px solid var(--line); }
.middle_info_area span { display: block; color: var(--text); font-size: 22px; letter-spacing: .05em; }
.middle_info_area .tel span { font: 28px/1.5 var(--en); letter-spacing: .05em; }
.middle_info_area .reception { display: none; }
.pankuzu { padding: 15px 0; font: 11px/1.6 var(--en); color: var(--muted); border-bottom: 1px solid var(--line-soft); }
.pankuzu ol { display: flex; gap: 10px; }
.pankuzu li + li::before { content: "/"; margin-right: 10px; color: var(--gold); }
/* Section headings: Japanese first, small English line beneath */
.subtitle,.subtitle_02 { position: relative; display: flex; flex-direction: column; align-items: center; gap: 9px; margin: 0 auto 42px; padding-bottom: 26px; text-align: center; font-family: var(--display); }
.subtitle_02::after { content: ""; position: absolute; bottom: 0; left: calc(50% - 30px); width: 60px; height: 4px; border-top: 1px solid var(--gold); border-bottom: 1px solid var(--line); }
.subtitle_02 .ja { order: -1; font-size: clamp(23px,2.3vw,30px); line-height: 1.6; letter-spacing: .18em; }
.subtitle_02 .en { font: 14px/1.4 var(--en); letter-spacing: .16em; color: var(--gold); text-transform: uppercase; }
.subtitle_02 .en:only-child { font: clamp(23px,2.3vw,30px)/1.6 var(--display); letter-spacing: .18em; color: var(--text); }
.subtitle_03 { margin-bottom: 20px; color: var(--gold); font-size: 20px; }
.template_box,.content_borderbox,.content_colorbox,.content_colorbox_02 { padding: 32px; background: var(--surface); border: 1px solid var(--line); }
.template_box { margin-bottom: 32px; }
.template_box > .content_borderbox { padding: 0; border: 0; background: transparent; }
.template_box > :last-child { margin-bottom: 0; }
.content_borderbox p + p { margin-top: 20px; }
.section_system > .template_box:has(> img:only-child) { width: min(880px,100%); padding: 10px; margin-inline: auto; background: var(--wine-deep); box-shadow: 0 12px 32px rgba(8,4,3,.26); }
.section_system > .template_box > img { display: block; width: 100%; }
/* News: existing PHP data table is preserved */
#section_topics { background: var(--surface); border-block: 1px solid var(--line-soft); }
#section_topics .inner { max-width: 920px; }
#section_topics .info_box > table { width: 100%; }
#section_topics .info_box > table > tbody > tr > td { padding: 0; }
#section_topics .info_box > table > tbody > tr > td:nth-child(1),#section_topics .info_box > table > tbody > tr > td:nth-child(3) { width: 0; font-size: 0; }
#section_topics article { padding: 28px 0; border-top: 1px solid var(--line); }
#section_topics time { display: block; margin-bottom: 10px; font: 14px/1.5 var(--en); letter-spacing: .09em; color: var(--gold); }
#section_topics h3 { margin-bottom: 16px; font-size: 21px; letter-spacing: .05em; }
#section_topics .newslist-desc { line-height: 2.1; color: var(--muted); overflow-wrap: anywhere; }
/* Legacy editor output uses <font color> inside the stored news text. */
#section_topics .newslist-desc font { color: inherit; }
#section_topics .new_mark { display: inline-block; margin-left: 8px; padding: 2px 7px; background: var(--wine); color: var(--gold-light); font: 10px/1.5 var(--en); vertical-align: middle; }
#section_topics .news_photo { margin-top: 24px; }
#section_topics .news_photo img { width: auto; max-height: 600px; object-fit: contain; border: 1px solid var(--line); }
#section_topics .info_box > br { display: none; }
/* Therapist grids and carousel controls */
.todayschedule { background: linear-gradient(rgba(8,4,3,.8),rgba(8,4,3,.88)),url("../素材/bg_ranking.jpg") center / cover; }
.cast_box { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.cast_li { min-width: 0; }
.cast_li .img_box { position: relative; padding: 6px; border: 1px solid var(--line); background: var(--wine-deep); }
.cast_li .img_box > a { display: block; overflow: hidden; }
.cast_li .img_box p { position: relative; }
.cast_li .photo { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; transition: transform .45s ease; }
.cast_li a:hover .photo { transform: scale(1.025); }
.cast_li .txt_box { padding: 18px 4px; text-align: center; font: 17px/1.6 var(--display); letter-spacing: .04em; color: var(--gold-light); }
.icon_new { position: absolute; top: 8px; left: 8px; width: 66px; pointer-events: none; }
.icon_new img { display: block; width: 100%; }
.cast_box.slick-initialized { display: block; position: relative; padding-bottom: 58px; margin-inline: -12px; }
.slick-slider { position: relative; touch-action: pan-y; }
.slick-list { overflow: hidden; }
.slick-track { display: flex; margin-inline: auto; }
.slick-slide { display: none; flex: 0 0 auto; min-height: 1px; }
.slick-initialized .slick-slide { display: block; }
.cast_box .slick-slide { padding-inline: 12px; }
.slick-arrow { position: absolute; bottom: 0; width: 44px; height: 44px; border: 1px solid var(--line); background: var(--wine-deep); color: var(--gold); font-size: 0; }
.slick-arrow::before { font-family: "Font Awesome 5 Free"; font-weight: 900; font-size: 14px; }
.slick-prev { left: calc(50% - 53px); }
.slick-next { right: calc(50% - 53px); }
.slick-prev::before { content: "\f053"; }
.slick-next::before { content: "\f054"; }
.slick-arrow:hover { background: var(--wine); border-color: var(--gold); }
.slick-arrow.slick-hidden { display: none; }
.slick-disabled { opacity: .4; cursor: default; }
.swiper-pagination-bullet { background: var(--gold); }
.swiper-button-next,.swiper-button-prev { color: var(--gold); }
/* Inner-page banners retain inline image paths */
.page_top_outer { position: relative; isolation: isolate; margin-top: var(--header-height); background: var(--wine-deep); }
.page_top { height: 260px; background-size: cover; background-position: center; }
.page_top::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(25,0,12,.9),rgba(51,0,23,.65),rgba(25,0,12,.88)); }
.other_page_title { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; text-align: center; }
.other_page_title .t_top { font: 16px/1.4 var(--en); letter-spacing: .2em; color: var(--gold); }
.other_page_title .t_bottom { order: -1; font-size: 32px; line-height: 1.5; letter-spacing: .2em; }
.other_page_title::after { content: ""; width: 60px; height: 1px; margin-top: 10px; background: var(--gold); }
/* Price, access and recruitment tables */
.table_collum_02,.table_collum_03,.table_collum_recruit,.table_02 { width: 100%; }
.table_collum_02 th,.table_collum_recruit th { width: 24%; padding: 20px 24px; text-align: left; vertical-align: top; background: var(--wine-deep); color: var(--gold-light); font-family: var(--display); }
.table_collum_02 td,.table_collum_recruit td { padding: 20px 24px; background: var(--surface); color: var(--text); overflow-wrap: anywhere; }
.table_collum_02 tr + tr,.table_collum_recruit tr + tr { border-top: 1px solid var(--line-soft); }
.table_collum_02 a,.table_collum_recruit a { color: var(--gold-light); text-decoration: underline; text-underline-offset: 4px; }
.table_collum_03 { text-align: center; }
.table_collum_03 td { padding: 18px 16px; color: var(--gold-light); font: 32px/1.6 var(--display); }
.table_collum_03 tr + tr { border-top: 1px solid var(--line-soft); }
.table_collum_03 tr:nth-child(even) { background: var(--wine-deep); }
.table_collum_03 span { font-size: 17px; }
.table_collum_03 .txt { font-size: 20px; }
.table_collum_03 .sample-tit { display: block; padding: 12px; background: var(--wine); color: var(--text); font-size: 23px; letter-spacing: .12em; }
.table_collum_03 .STYLE1 { display: block; padding-top: 6px; color: var(--muted); font: 14px/1.9 var(--body); }
.table_collum_03:has(td:only-child:empty) { display: none; }
#access { background: var(--bg); }
#access .template_box { padding: 32px; }
#access iframe { height: 390px; margin-bottom: 26px; border: 1px solid var(--line); }
.seo { background: linear-gradient(rgba(8,4,3,.58),rgba(8,4,3,.8)),url("../素材/bg_concept.jpg") center / cover; }
.seo .template_box { max-width: 840px; margin: 0 auto; padding: 50px; background: rgba(25,9,14,.76); }
.seo p { max-width: 650px; margin: auto; text-align: center; font-family: var(--display); line-height: 2.5; letter-spacing: .06em; }
/* Profile and room galleries */
.profile_inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 48px; align-items: start; }
.profile_box_left,.profile_box_right { min-width: 0; }
.profile_box_left .img_box { position: relative; padding: 8px; border: 1px solid var(--line); }
.profile_box_left .photo { display: block; width: 100%; }
.profile_box_left .icon_new { width: 85px; top: 16px; left: 16px; }
.thumbs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 16px; }
.thumbs img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border: 2px solid transparent; cursor: pointer; opacity: .65; }
.thumbs img:hover,.thumbs img.is-active { opacity: 1; border-color: var(--gold); }
.profile_box_right .table_collum_02 th { width: 26%; }
.profile_box_right .table_collum_02 th,.profile_box_right .table_collum_02 td { padding: 18px; }
.profile_box_right .mb_20 + .mb_20 .table_collum_02 tr { display: flex; flex-direction: column; }
.profile_box_right .mb_20 + .mb_20 .table_collum_02 th { width: 100%; }
.profile_box_schedule { margin-top: 36px; padding: 24px; border: 1px solid var(--line); overflow-x: auto; }
.table_02 th,.table_02 td { padding: 14px; border: 1px solid var(--line-soft); }
.table_02 th { color: var(--gold-light); background: var(--wine-deep); }
.room_gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; margin: 40px 0 64px; }
.room_card { margin: 0; padding: 8px; border: 1px solid var(--line); background: var(--surface); }
.room_card > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.room_card h4 { padding: 18px 12px 12px; text-align: center; color: var(--gold-light); font-size: 18px; }
.room_photo_placeholder { aspect-ratio: 4 / 3; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--wine-deep); color: var(--gold); }
.room_photo_placeholder span { font: 20px/1.5 var(--en); letter-spacing: .14em; }
.room_photo_placeholder small { margin-top: 8px; color: var(--muted); }
.recruit_merit { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; margin-bottom: 64px; }
.recruit_merit_card { padding: 12px 20px; border-left: 1px solid var(--line); }
.recruit_merit_card > span { font: 28px/1.5 var(--en); color: var(--gold); }
.recruit_merit_card h4 { margin: 12px 0; font-size: 20px; }
.recruit_merit_card p { font-size: 14px; color: var(--muted); }
.recruit_entry_box { padding: 44px 28px; border: 1px solid var(--line); background: var(--wine-deep); text-align: center; }
.recruit_entry_box h3 { margin-bottom: 16px; font-size: 26px; color: var(--gold-light); }
.recruit_entry_btn { width: min(340px,100%); margin: 24px auto 0; font-size: 24px; }
.recruit_entry_btn i { margin-right: 10px; font-size: 17px; }
/* Footer and persistent booking actions */
.global-footer { background: linear-gradient(rgba(51,0,23,.86),rgba(51,0,23,.9)),url("../素材/bg_footer.jpg") center / cover; border-block: 1px solid var(--line); padding: 50px 0; }
.global-footer .inner { display: grid; grid-template-columns: 280px 1fr; align-items: center; gap: 60px; max-width: 1000px; }
.footerlogo img { width: 260px; }
.global-footer .tit { font-family: var(--display); font-size: 17px; }
.global-footer .txt { margin: 10px 0; color: var(--muted); font-size: 13px; }
.global-footer .tel a { font: 34px/1.6 var(--en); letter-spacing: .05em; color: var(--gold-light); }
footer { padding: 48px 0 35px; text-align: center; background: var(--wine-deep); border-top: 1px solid var(--line-soft); }
.footer_link { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 0; margin-bottom: 36px; }
.footer_link a { padding: 2px 22px; font: 13px/1.8 var(--display); border-right: 1px solid var(--line); }
.footer_link a:last-child { border-right: 0; }
footer small { color: var(--muted); line-height: 2; }
footer .inner > p:has(img) { margin-bottom: 24px; }
footer > table { width: 100%; margin-top: 20px; }
footer table table { width: auto; max-width: 100%; height: auto; }
.footer_nav { position: fixed; z-index: 30; right: 0; top: 45%; display: grid; gap: 6px; }
.footer_nav a { display: flex; align-items: center; justify-content: center; gap: 5px; width: 116px; min-height: 46px; padding: 10px; background: var(--wine); border: 1px solid var(--line); font-size: 13px; }
.footer_nav a:hover { background: var(--wine-hover); border-color: var(--gold); }
.m-cta { display: none; }
/* Responsive adaptations share the exact same tokens */
@media (max-width:1199px) {
  .header_nav { gap: 18px; }
  header .logo { flex-basis: 150px; }
  header .logo img { width: 150px; }
  .header_nav a { font-size: 12px; }
  .footer_nav a { width: 82px; }
}
@media (max-width:1023px) {
  :root { --header-height: 64px; }
  .header_nav { display: none; }
  header .inner { padding-left: 20px; }
  header .logo img { width: 156px; height: 54px; }
  .btn_menu { width: 64px; }
  .middle_info_area > p { padding-inline: 12px; }
  .middle_info_area span { font-size: 19px; }
  .middle_info_area .tel span { font-size: 24px; }
  .cast_box { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
  .profile_inner { gap: 28px; }
  .footer_nav { top: auto; bottom: 24px; }
}
@media (max-width:767px) {
  :root { --header-height: 60px; --section-space: 56px; }
  body { font-size: 14px; padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .inner { width: calc(100% - 36px); }
  header .inner { padding: 0 76px 0 14px; }
  header .logo img { height: 50px; width: 148px; }
  .btn_menu { width: 60px; }
  #nav_drawer { padding: calc(var(--header-height) + 14px) 28px 30px; }
  #nav_drawer li > a { padding-block: 13px; font-size: 16px; }
  #mainvisual li { height: clamp(530px,145vw,720px); background-image: linear-gradient(90deg,rgba(35,0,16,.94),rgba(63,0,28,.7) 44%,rgba(47,0,22,.25)),url("../images/mainvisual_s.jpg"); background-position: center,58% center; }
  #mainvisual::after { inset: 14px; }
  #mainvisual .main_text { left: 3%; top: 26%; width: 73%; }
  .hero_cta { left: 28px; right: 28px; bottom: 32px; width: auto; gap: 10px; }
  .hero_cta a { min-height: 50px; padding: 12px 6px; font-size: 13px; letter-spacing: .03em; }
  .middle_info { padding: 20px 18px; }
  .middle_info_area { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 0; font-size: 11px; }
  .middle_info_area > p { padding-inline: 6px; }
  .middle_info_area span { font-size: 17px; letter-spacing: .01em; }
  .middle_info_area .tel span { font-size: 22px; }
  .middle_info_area > .station { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line); padding-top: 13px; }
  .middle_info_area .station span { display: inline; margin-left: 10px; font-size: 16px; }
  .pankuzu { padding-block: 12px; }
  .subtitle_02 { margin-bottom: 32px; padding-bottom: 24px; gap: 8px; }
  .subtitle_02 .ja { font-size: 24px; letter-spacing: .12em; }
  .subtitle_02 .en { font-size: 12px; letter-spacing: .14em; }
  .subtitle_02 .en:only-child { font-size: 24px; }
  .template_box,.content_borderbox,.content_colorbox,.content_colorbox_02 { padding: 22px 18px; }
  .section_system > .template_box:has(> img:only-child) { padding: 6px; }
  #section_topics h3 { font-size: 19px; }
  #section_topics article { padding-block: 23px; }
  .cast_box { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 14px; }
  .cast_li .img_box { padding: 4px; }
  .cast_li .txt_box { padding: 12px 2px; font-size: 14px; letter-spacing: 0; }
  .cast_li .icon_new { width: 46px; top: 5px; left: 5px; }
  .cast_box.slick-initialized { margin-inline: -7px; }
  .cast_box .slick-slide { padding-inline: 7px; }
  .page_top { height: 210px; }
  .other_page_title .t_bottom { font-size: 28px; }
  .other_page_title .t_top { font-size: 13px; }
  .table_collum_02 th,.table_collum_recruit th { padding: 16px 12px; width: 29%; font-size: 13px; }
  .table_collum_02 td,.table_collum_recruit td { padding: 16px 12px; font-size: 13px; }
  .table_collum_03 td { padding: 14px 8px; font-size: 27px; }
  .table_collum_03 span { font-size: 14px; }
  .table_collum_03 .txt { font-size: 17px; }
  .table_collum_03 .sample-tit { font-size: 20px; }
  #access .template_box { padding: 18px 12px; }
  #access iframe { height: 300px; }
  .seo .template_box { padding: 30px 22px; }
  .seo p { text-align: left; line-height: 2.3; letter-spacing: .03em; }
  .profile_inner { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .profile_box_left { width: min(430px,100%); margin-inline: auto; }
  .thumbs { gap: 8px; }
  .room_gallery { gap: 20px; margin: 28px 0 48px; }
  .room_card { padding: 5px; }
  .room_card h4 { padding: 12px 4px 8px; font-size: 15px; }
  .room_photo_placeholder span { font-size: 14px; }
  .room_photo_placeholder small { font-size: 10px; }
  .recruit_merit { grid-template-columns: minmax(0,1fr); gap: 24px; margin-bottom: 42px; }
  .recruit_entry_box { padding: 30px 20px; }
  .recruit_entry_box h3 { font-size: 23px; }
  .global-footer { padding-block: 36px; }
  .global-footer .inner { grid-template-columns: minmax(0,1fr); gap: 24px; text-align: center; }
  .footerlogo img { width: 210px; }
  .global-footer .tit { font-size: 15px; }
  .global-footer .tel a { font-size: 30px; }
  footer { padding-block: 34px; }
  .footer_link { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; margin-bottom: 26px; }
  .footer_link a { padding: 12px 6px; border: 0; border-bottom: 1px solid var(--line-soft); }
  .footer_link a:nth-child(odd) { border-right: 1px solid var(--line-soft); }
  footer small { font-size: 10px; }
  .footer_nav { display: none; }
  .m-cta { position: fixed; z-index: 30; inset: auto 0 0; display: grid; grid-template-columns: 1.1fr 1fr 1.1fr .8fr; min-height: 68px; padding: 5px 6px calc(5px + env(safe-area-inset-bottom)); gap: 4px; background: var(--wine-deep); border-top: 1px solid var(--line); }
  .m-cta__btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; min-height: 56px; border: 1px solid var(--line); background: var(--wine); color: var(--text); }
  .m-cta__btn::before { font: 900 16px/1 "Font Awesome 5 Free"; color: var(--gold-light); }
  .m-cta__btn.is-tel::before { content: "\f095"; }
  .m-cta__btn.is-web::before { content: "\f007"; }
  .m-cta__btn.is-system::before { content: "\f157"; }
  .m-cta__btn.is-top::before { content: "\f106"; }
  .m-cta__btn.is-tel { background: var(--gold); color: var(--bg); border-color: var(--gold); }
  .m-cta__btn.is-tel::before { color: var(--bg); }
  .m-cta__label { font: 10px/1.3 var(--body); white-space: nowrap; }
  .m-cta__btn:active { background: var(--gold-light); color: var(--bg); }
  .open .m-cta { visibility: hidden; }
  .visibleSP { display: block; }
}
@media (max-width:374px) {
  .inner { width: calc(100% - 28px); }
  .hero_cta { left: 22px; right: 22px; gap: 7px; }
  .middle_info_area .tel span { font-size: 19px; }
  .middle_info_area span { font-size: 15px; }
  .room_gallery { grid-template-columns: minmax(0,1fr); }
  .m-cta__label { font-size: 9px; }
}
/* Content remains visible without JS. Only observed elements animate. */
@media (prefers-reduced-motion:no-preference) {
  .reveal-enter { animation: reveal-entry .6s ease both; }
  @keyframes reveal-entry { from { opacity: .25; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior: auto; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
