/* Romance: Angel reference palette and layout.
   Shared PC/mobile light theme; original image paths preserved.
   Layers: decoration 0, booking 20, header 30, drawer 40, lightbox 50. */
:root {
  color-scheme: light;
  --font-en: "Times New Roman", "Yu Mincho", serif;
  --font-jp: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --font-body: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --paper: #fffefd; --ivory: #fbf1e3; --cream: #f4e7d3; --surface: #fffdfa;
  --ink: #5f3713; --body-ink: #574b3d; --muted: #7c654d;
  --gold: #a27728; --gold-deep: #80591e; --gold-light: #d6b975; --line: #e4d4b9;
  --header-h: 80px; --mobile-nav-h: 64px; --radius: 2px;
  --shadow: 0 8px 24px rgb(95 55 19 / 7%);
}

/* Base */
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 20px); -webkit-text-size-adjust: 100%; }
body { isolation: isolate; background: var(--paper); color: var(--body-ink); font: 14px/1.85 var(--font-body); -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; background: url('../images/main_bg.jpg') center / cover no-repeat; pointer-events: none; }
a { color: inherit; text-decoration: none; text-underline-offset: 4px; }
a:hover { color: var(--gold-deep); }
button { font: inherit; cursor: pointer; color: inherit; }
a, button { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 4px; }
img { display: block; max-width: 100%; height: auto; }
iframe { display: block; width: 100%; max-width: 100%; border: 0; }
dl, figure { margin: 0; }
::selection { background: var(--cream); color: var(--ink); }
.container { width: min(100%, 1160px); padding-inline: 24px; margin-inline: auto; }
.section { padding-block: 56px; position: relative; }
.section > .container { min-width: 0; }
.rc-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.rc-card--tight { overflow: hidden; }
.visibleTS { display: none; }
.scroll-marker { position: absolute; width: 1px; height: 1px; pointer-events: none; }

/* Fixed ivory navigation */
.l-header { position: fixed; inset: 0 0 auto; z-index: 30; height: var(--header-h); background: rgb(255 253 247 / 93%); border-bottom: 1px solid rgb(162 119 40 / 20%); transition: background .2s, box-shadow .2s; }
.l-header.is-compact { background: var(--surface); box-shadow: var(--shadow); }
.l-header__inner { width: min(100%, 1160px); height: 100%; margin-inline: auto; padding-inline: 24px; display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.l-header__logo { flex-shrink: 0; }
.l-header__logo-link { display: block; }
.l-header__logo-text img { width: 174px; height: auto; }
.l-header__nav-pc { margin-left: auto; }
.l-nav-list { list-style: none; display: flex; align-items: center; gap: 36px; }
.l-nav-list__link { display: flex; flex-direction: column; align-items: center; padding-block: 8px; position: relative; white-space: nowrap; color: var(--ink); }
.l-nav-list__en { font: 16px/1.5 var(--font-en); letter-spacing: .03em; }
.l-nav-list__jp { font-size: 10px; letter-spacing: .02em; color: var(--muted); }
.l-nav-list__link::after { content: ""; position: absolute; bottom: 1px; left: 0; right: 0; height: 1px; background: var(--gold); transform: scaleX(0); transition: transform .2s; }
.l-nav-list__link:hover::after, .l-nav-list__link[aria-current="page"]::after { transform: scaleX(1); }
.l-header__hamburger { display: none; flex-shrink: 0; position: relative; z-index: 41; width: 46px; height: 46px; background: var(--surface); border: 1px solid var(--gold-light); border-radius: var(--radius); }
.l-header__hamburger-line { position: absolute; left: 12px; top: 21px; height: 1px; width: 20px; background: var(--ink); transition: transform .25s, opacity .2s; }
.l-header__hamburger-line:nth-child(1) { transform: translateY(-6px); }
.l-header__hamburger-line:nth-child(3) { transform: translateY(6px); }
.l-header__hamburger.is-active .l-header__hamburger-line:nth-child(1) { transform: rotate(45deg); }
.l-header__hamburger.is-active .l-header__hamburger-line:nth-child(2) { opacity: 0; }
.l-header__hamburger.is-active .l-header__hamburger-line:nth-child(3) { transform: rotate(-45deg); }
.l-header__drawer { position: fixed; inset: 0; z-index: 40; height: 100dvh; display: flex; align-items: center; justify-content: center; padding: 90px 24px; overflow-y: auto; background: var(--ivory); transform: translateX(100%); visibility: hidden; transition: transform .3s ease, visibility .3s; }
.l-header__drawer.is-open { transform: translateX(0); visibility: visible; }
.l-drawer-list { list-style: none; width: min(460px, 100%); border-top: 1px solid var(--gold-light); }
.l-drawer-list a { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 20px 4px; border-bottom: 1px solid var(--line); color: var(--ink); font: 24px var(--font-en); letter-spacing: .04em; }
.l-drawer-list a span { font: 12px var(--font-body); color: var(--muted); }
body.menu-open { overflow: hidden; }

/* Original hero image and separate contact strip */
.hero { position: relative; margin-top: var(--header-h); isolation: isolate; background: var(--ivory); }
.hero__bg { position: absolute; inset: 0 0 82px; z-index: -1; background: url('../images/1920x1080.png') center / cover no-repeat; }
.hero__content { position: relative; width: min(100%, 1440px); min-height: clamp(460px, 47vw, 690px); margin-inline: auto; display: flex; justify-content: flex-end; align-items: center; padding: 60px 8% 70px; }
.hero__logo-box { width: 53%; text-align: center; padding-block: 24px; }
.hero__subtitle { display: block; font-family: var(--font-en); font-size: clamp(15px, 1.4vw, 21px); letter-spacing: .15em; color: var(--ink); }
.hero__title { margin: 20px 0 28px; line-height: 1; }
.hero__title img { width: min(100%, 550px); height: auto; margin-inline: auto; }
.hero__desc { padding: 12px 16px; border-block: 1px solid var(--gold-light); background: rgb(255 249 237 / 87%); color: var(--ink); font-family: var(--font-jp); font-size: clamp(13px, 1.15vw, 17px); letter-spacing: .08em; }
.hero__vertical-text { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); writing-mode: vertical-rl; font-family: var(--font-jp); color: var(--ink); font-size: 17px; letter-spacing: .35em; padding: 20px 8px; border-right: 1px solid var(--gold-light); }
.hero__meta { min-height: 82px; padding: 16px 24px; display: flex; justify-content: center; align-items: center; gap: 30px; border-block: 1px solid var(--gold); background: rgb(255 253 249 / 96%); }
.hero__meta-row { display: flex; align-items: baseline; gap: 10px; font-family: var(--font-jp); color: var(--ink); }
.hero__meta-row:nth-child(2) { order: -1; }
.hero__meta-label { font: 700 12px var(--font-en); letter-spacing: .04em; }
.hero__meta-value { font-size: 15px; font-weight: 600; }
.hero__meta-tel { font: 600 27px var(--font-en); white-space: nowrap; }
.hero__meta-tel:hover { text-decoration: underline; }
.page-inner .hero__content { min-height: 320px; padding-block: 32px; }
.page-inner .hero__title img { max-width: 290px; }
.page-inner .hero__title { margin-block: 14px 18px; }
.page-inner .hero__subtitle { font-size: 16px; }

/* Bilingual serif titles, matching the reference */
.rc-sec-title { text-align: center; margin-bottom: 30px; padding: 12px 18px 18px; position: relative; }
.rc-sec-title__en { font: 700 30px/1.25 var(--font-en); letter-spacing: .035em; text-transform: uppercase; color: var(--ink); }
.rc-sec-title__jp { margin-top: 8px; color: var(--ink); font: 12px var(--font-jp); letter-spacing: .08em; }
.rc-sec-title::after { content: ""; position: absolute; bottom: 0; left: calc(50% - 34px); width: 68px; height: 1px; background: var(--gold-light); }
.rc-sec-title:has(.rc-sec-title__en:empty) { padding: 0; margin-bottom: 20px; }
.rc-sec-title:has(.rc-sec-title__en:empty)::after { content: none; }

/* Homepage featured pair; other sections use independent full-width rows. */
.home-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 32px; padding-block: 48px 36px; }
.home-feature > .section { min-width: 0; padding: 0; }
.home-feature > .section > .container { width: 100%; padding-inline: 0; }
.home-feature .rc-sec-title { background: linear-gradient(100deg, var(--paper), var(--ivory), var(--paper)); }
.service__item { display: flex; justify-content: center; }
.service__img { width: 100%; padding: 6px; border: 1px solid var(--gold-light); background: var(--surface); box-shadow: inset 0 0 0 3px var(--cream); }
.service__img img { width: 100%; height: auto; }
.intro { background: var(--ivory); margin-block: 20px; }
.rc-lead-card { max-width: 820px; margin-inline: auto; }
.rc-lead-card__text { font: 14px/2.15 var(--font-jp); color: var(--body-ink); }

/* Featured carousel */
.pickup-slider { min-width: 0; padding: 0; border: 0; background: transparent; }
.pickup-swiper { overflow: hidden; position: relative; padding-bottom: 38px; --swiper-theme-color: var(--gold-deep); --swiper-navigation-size: 16px; }
.pickup-card { overflow: hidden; background: var(--surface); border: 1px solid var(--gold-light); border-radius: var(--radius); }
.pickup-card__thumb { overflow: hidden; background: var(--ivory); }
.pickup-card__thumb a { display: block; }
.pickup-card__thumb img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; transition: transform .35s; }
.pickup-card__body { padding: 14px 12px; text-align: center; }
.pickup-card__name { font-family: var(--font-jp); color: var(--ink); font-size: 19px; }
.pickup-card__age { margin-left: 5px; font-size: 12px; font-weight: 400; }
.pickup-card__size { margin-top: 4px; font: 13px var(--font-en); color: var(--muted); }
.pickup-pagination { position: absolute; bottom: 5px; left: 0; right: 0; text-align: center; }
.pickup-pagination .swiper-pagination-bullet { width: 24px; height: 24px; margin-inline: 1px; background: transparent; opacity: .35; }
.pickup-pagination .swiper-pagination-bullet::after { content: ""; display: block; width: 7px; height: 7px; margin: 8px auto; border-radius: 50%; background: var(--gold); }
.pickup-pagination .swiper-pagination-bullet-active { opacity: 1; }
.pickup-prev, .pickup-next { width: 36px; height: 44px; top: 45%; margin-top: -22px; border: 1px solid var(--gold-light); background: rgb(255 253 249 / 94%); color: var(--ink); }
.pickup-prev { left: 0; } .pickup-next { right: 0; }
.pickup-prev svg, .pickup-next svg { width: 12px; height: 18px; }
.pickup-prev::after, .pickup-next::after { font-size: 16px; }
.swiper-button-lock, .swiper-pagination-lock { display: none; }
.pickup-swiper:not(.swiper-initialized) .swiper-wrapper { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
.pickup-swiper:not(.swiper-initialized) .swiper-slide { flex: 0 0 100%; scroll-snap-align: start; }
.pickup-swiper:not(.swiper-initialized) .pickup-prev, .pickup-swiper:not(.swiper-initialized) .pickup-next { display: none; }
.slider-toggle { display: block; margin: 4px auto 0; min-height: 32px; padding: 4px 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font-size: 12px; }
.slider-toggle[hidden] { display: none; }

/* Gold portrait frames */
.cast__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.cast__item { min-width: 0; padding: 4px; border: 1px solid var(--gold-light); background: var(--surface); box-shadow: inset 0 0 0 2px var(--ivory); }
.cast__img-box { position: relative; overflow: hidden; }
.cast__img-box > a { display: block; }
.cast__img-box > a > img, .cast__img-box > img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; transition: transform .35s; }
.cast__status { position: absolute; left: 0; top: 0; pointer-events: none; width: 72px; }
.cast__status img { width: 50%; height: auto; }
.cast__name { padding: 15px 8px 12px; font: 700 16px var(--font-jp); text-align: center; color: var(--ink); }
.cast__name::after { content: ""; display: block; margin: 8px auto 0; width: 60%; height: 1px; background: var(--line); }

/* News */
.news__box { padding: 22px; border-color: var(--gold-light); }
.news__box + .news__box { margin-top: 18px; }
.news__head { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 14px; }
.news__title { font: 700 17px/1.6 var(--font-jp); color: var(--ink); }
.news__date { font: 12px var(--font-en); color: var(--muted); }
.news__message { font-size: 13px; line-height: 1.95; overflow-wrap: anywhere; }
.new_mark { font-size: 11px; color: var(--gold-deep); white-space: nowrap; }
.news__photos { display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 10px; }
.news__photos:has(img) { margin-top: 16px; }
.news_photo { padding: 3px; border: 1px solid var(--line); }
.news_photo img { max-width: 120px; height: auto; }

/* Access: no blank map space when PHP has no map configured */
.access__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.access__info { padding: 24px; }
.access__dl { display: grid; gap: 18px; }
.access__row { display: grid; grid-template-columns: 85px minmax(0, 1fr); gap: 14px; }
.access__row dt { color: var(--ink); font-size: 12px; font-weight: 700; }
.access__row dd { font-size: 13px; overflow-wrap: anywhere; }
.access__row dd a { font: 700 20px var(--font-en); color: var(--ink); }
.access__note { padding-top: 16px; margin-top: 20px; border-top: 1px solid var(--line); font-size: 12px; color: var(--muted); }
.access__map { min-width: 0; overflow: hidden; }
.access__map-placeholder:has(iframe) { min-height: 300px; background: var(--ivory); }
.access__map-placeholder iframe { min-height: 300px; }
.access__map-placeholder:not(:has(*)) { display: none; }
.access__map > .access__info { border: 0; }
.access__map > .access__info .access__note { margin: 0; padding: 0; border: 0; }
.access__grid:not(:has(iframe, .access__map img)) { grid-template-columns: 1fr; }
.access__grid:not(:has(iframe, .access__map img)) > .access__map { border-top: 2px solid var(--gold-light); }
.page-home .access__grid { grid-template-columns: 1fr; gap: 16px; }

/* Booking and links */
.reserve { background: var(--ivory); margin-top: 32px; }
.reserve__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.reserve__cta { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 156px; padding: 24px 16px; border: 1px solid var(--gold-light); border-radius: var(--radius); background: linear-gradient(rgb(255 252 245 / 89%), rgb(255 252 245 / 92%)), url('../images/reserve_bg.jpg') center / cover; color: var(--ink); transition: transform .2s, border-color .2s, box-shadow .2s; }
.reserve__cta-ico { display: grid; place-items: center; width: 36px; height: 36px; color: var(--gold-deep); font-size: 22px; }
.reserve__cta-label { font: 25px/1.3 var(--font-en); letter-spacing: .03em; }
.reserve__cta-sub { font-size: 12px; color: var(--ink); }
.reserve__cta:active, .footer__cta-btn:active { transform: translateY(1px); }
.link { padding-block: 34px; }
.link .rc-sec-title { margin-bottom: 22px; }
.link__grid { display: flex; align-items: start; justify-content: center; flex-wrap: wrap; gap: 24px 36px; }
.link__item { text-align: center; font-size: 11px; line-height: 1.6; }
.link__item img { margin-inline: auto; }

/* Ivory footer */
.footer { padding-block: 40px 28px; background: var(--ivory); border-top: 1px solid var(--line); color: var(--ink); }
.footer > .container { display: flex; flex-direction: column; align-items: center; }
.footer__top { display: flex; flex-direction: column; align-items: center; gap: 22px; }
.footer__brand { text-align: center; }
.footer__logo img { width: 160px; height: auto; margin-inline: auto; }
.footer__meta { margin-top: 14px; font-size: 12px; line-height: 2; }
.footer__meta a { font: 20px var(--font-en); }
.footer__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.footer__cta-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 8px 15px; border: 1px solid var(--gold-light); border-radius: var(--radius); background: var(--surface); color: var(--ink); font-size: 12px; white-space: nowrap; }
.footer__nav { order: -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 30px; margin-bottom: 30px; font: 12px var(--font-en); letter-spacing: .04em; }
.footer__nav a { padding-block: 5px; }
.footer__copy { margin-top: 24px; text-align: center; font-size: 11px; color: var(--muted); line-height: 1.9; }

/* Fixed booking and page-top */
.mobile-nav { display: none; position: fixed; inset: auto 0 0; z-index: 20; min-height: calc(var(--mobile-nav-h) + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: var(--ivory); border-top: 1px solid var(--gold-light); box-shadow: 0 -4px 20px rgb(95 55 19 / 6%); }
.mobile-nav__link { flex: 1; min-height: var(--mobile-nav-h); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border-right: 1px solid var(--line); color: var(--ink); background: var(--surface); font-size: 11px; }
.mobile-nav__link:last-child { border: 0; }
.mobile-nav__link i { font-size: 19px; }
.mobile-nav__link.is-tel { background: var(--gold-deep); color: var(--paper); }
.mobile-nav__link.is-line { background: var(--ivory); }
.mobile-nav__link:active { filter: brightness(.95); }
.pageTop { position: fixed; right: 20px; bottom: 22px; z-index: 20; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; }
.pageTop.is-show { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
.pageTop__link { display: grid; place-items: center; width: 46px; height: 46px; background: var(--surface);  border-radius: var(--radius); box-shadow: var(--shadow); }
.pageTop__link img { width: 38px; height: 38px; filter: grayscale(1) sepia(1) saturate(1.4) brightness(.86); }

/* Pricing, recruitment and legal copy */
.page-system .pagebody, .recruit__box, .attention__box { max-width: 900px; margin-inline: auto; }
.system-cost-box { padding: 32px; }
.system-cost + .system-cost { margin-top: 36px; }
.block-system-title { text-align: center; padding: 20px 16px; margin-bottom: 14px; background: var(--ivory); border-block: 1px solid var(--line); }
.systemtitle-head { font: 700 20px var(--font-jp); color: var(--ink); }
.systemtitle-desc { font-size: 12px; color: var(--muted); margin-top: 6px; }
.cost-data-bundle { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 12px; }
.cost-data-bundle + .cost-data-bundle { border-top: 1px solid var(--line); }
.cost-data-label { font: 16px var(--font-jp); color: var(--ink); }
.cost-data-price { text-align: right; white-space: nowrap; }
.price-1-con { font: 700 21px var(--font-jp); color: var(--ink); }
.system-fee_remark1-box { margin-top: 24px; padding: 15px; text-align: center; font-size: 13px; background: var(--ivory); }
.system__table-wrapper { max-width: 900px; padding: 24px; margin-inline: auto; }
.system__table { width: 100%; border-collapse: collapse; }
.system__table th, .system__table td { padding: 16px; border-bottom: 1px solid var(--line); text-align: left; }
.system__table th { color: var(--ink); }
.recruit__box, .attention__box { padding: 28px 32px; }
.recruit-item { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 22px; padding: 20px 0; }
.recruit-item + .recruit-item { border-top: 1px solid var(--line); }
.recruit-label { color: var(--ink); font-family: var(--font-jp); font-weight: 700; }
.recruit-context { font-size: 13px; line-height: 1.95; }
.attention__box p { font-size: 13px; line-height: 2; }
.attention__box p + p { margin-top: 12px; }

/* Profile and thumbnails */
.profile__card { padding: 24px; }
.profile__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.profile__imgbox { position: relative; overflow: hidden; border: 1px solid var(--gold-light); background: var(--ivory); }
.profile__mainimg { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; transition: opacity .18s; }
.profile__icon-new { position: absolute; left: 0; top: 0; width: 72px; pointer-events: none; }
.profile__icon-new img { width: 50%; height: auto; }
.profile__thumbs { list-style: none; margin-top: 12px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.profile__thumbs img { width: 100%; aspect-ratio: 1; object-fit: cover; border: 2px solid transparent; cursor: pointer; opacity: .75; }
.profile__thumbs img.is-active, .profile__thumbs img:hover { border-color: var(--gold); opacity: 1; }
.profile__block + .profile__block { margin-top: 24px; }
.profile__table { width: 100%; border-collapse: collapse; }
.profile__table th, .profile__table td { padding: 16px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.9; }
.profile__table th { width: 88px; font-family: var(--font-jp); color: var(--ink); background: var(--ivory); }
.profile__table td { overflow-wrap: anywhere; }

/* Room gallery / lightbox */
.room__card { padding: 20px; }
.interior-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.interior-item .figure { border: 1px solid var(--gold-light); padding: 4px; background: var(--surface); overflow: hidden; }
.interior-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; cursor: zoom-in; transition: opacity .2s; }
.interior-item:hover img { opacity: .88; }
.room-lightbox { position: fixed; inset: 0; z-index: 50; display: none; }
.room-lightbox.is-open { display: block; }
.room-lightbox__backdrop { position: absolute; inset: 0; background: rgb(38 29 21 / 84%); }
.room-lightbox__dialog { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(92vw, 1000px); padding: 12px; background: var(--surface); border: 1px solid var(--gold-light); }
.room-lightbox__img { width: 100%; max-height: 85dvh; aspect-ratio: 16 / 10; object-fit: contain; background: var(--ivory); }
.room-lightbox__close, .room-lightbox__nav { position: absolute; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--gold-light); background: var(--surface); color: var(--ink); font-size: 26px; line-height: 1; }
.room-lightbox__close { right: 12px; top: 12px; }
.room-lightbox__nav { top: 50%; transform: translateY(-50%); }
.room-lightbox__prev { left: 12px; } .room-lightbox__next { right: 12px; }

/* Existing decorative image animation, now composited and reduced-motion aware */
.soda { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.bubble { position: absolute; bottom: -50px; left: var(--bubble-x); width: var(--bubble-size); height: var(--bubble-size); background: url('../images/menu1sp01.png') center / contain no-repeat; opacity: .12; animation: bubble-drift var(--bubble-duration) linear infinite; animation-delay: var(--bubble-delay); }
@keyframes bubble-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(28px, calc(-100dvh - 90px), 0); } }
.reveal { transition: opacity .55s ease, transform .55s ease; }
.reveal.is-pending { opacity: 0; transform: translateY(14px); }

/* Tablet */
@media (max-width: 1023px) {
  .l-header__nav-pc { display: none; } .l-header__hamburger { display: block; }
  .hero__meta { gap: 16px; } .hero__meta-value { font-size: 13px; } .hero__meta-tel { font-size: 23px; }
  .home-feature { gap: 24px; } .cast__grid { gap: 16px; }
  .access__grid { grid-template-columns: 1fr; } .reserve__grid { gap: 16px; }
}

/* Mobile: the same visual system with readable stacked information */
@media (max-width: 767px) {
  :root { --header-h: 64px; }
  body { padding-bottom: calc(var(--mobile-nav-h) + env(safe-area-inset-bottom)); font-size: 13px; }
  .container { padding-inline: 18px; } .section { padding-block: 34px; }
  .l-header__inner { padding-inline: 18px; gap: 20px; } .l-header__logo-text img { width: 135px; }
  .hero__bg { inset: 0 0 141px; background-image: url('../images/header_bg_sm.png'); background-position: center 22%; }
  .hero__content { min-height: clamp(430px, 134vw, 650px); padding: 28px 18px 24px; align-items: flex-end; justify-content: center; }
  .hero__logo-box { width: 100%; padding: 20px 12px 0; background: linear-gradient(transparent, rgb(255 252 245 / 92%)); }
  .hero__subtitle { font-size: 12px; letter-spacing: .1em; } .hero__title { margin: 10px 0 12px; }
  .hero__title img { width: 78%; max-width: 300px; }
  .hero__desc { padding: 9px 4px; font-size: 11px; letter-spacing: .02em; }
  .hero__vertical-text { top: 35px; right: 16px; transform: none; padding: 12px 6px; font-size: 13px; background: rgb(255 253 247 / 75%); letter-spacing: .26em; }
  .hero__meta { min-height: 141px; padding: 14px 18px; flex-direction: column; gap: 3px; }
  .hero__meta-label { font-size: 11px; } .hero__meta-value { font-size: 12px; }
  .hero__meta-tel { font-size: 28px; line-height: 1.5; } .hero__meta-row { gap: 9px; text-align: center; }
  .page-inner .hero__content { min-height: 690px; padding: 24px 18px; }
  .page-inner .hero__title img { width: 84%; max-width: 300px; }
  .page-inner .hero__subtitle { font-size: 12px; } .page-inner .hero__title { margin-block: 8px 12px; }
  .rc-sec-title { padding: 8px 12px 15px; margin-bottom: 24px; }
  .rc-sec-title__en { font-size: 27px; } .rc-sec-title__jp { font-size: 11px; margin-top: 7px; }
  .visibleTS { display: block; } .spnav-mid { padding-block: 18px 4px; }
  .spnav-mid__card { border: 0; background: transparent; }
  .spnav-mid__grid { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
  .spnav-mid__link { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 66px; padding: 10px 4px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface); color: var(--ink); font: 12px var(--font-en); white-space: nowrap; }
  .spnav-mid__link span { margin-bottom: 3px; font: 10px var(--font-body); color: var(--muted); }
  .home-feature { grid-template-columns: 1fr; gap: 32px; padding-block: 30px 12px; }
  .home-feature .pickup-slider { max-width: 440px; margin-inline: auto; }
  .pickup-card__thumb img { aspect-ratio: 4 / 5; } .pickup-card__name { font-size: 18px; }
  .cast__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 14px; }
  .cast__item { padding: 3px; } .cast__name { padding: 12px 3px 8px; font-size: 13px; } .cast__status { width: 55px; }
  .intro { margin-block: 10px; } .rc-lead-card__text { font-size: 13px; line-height: 2.1; }
  .news__box { padding: 18px; } .news__title { font-size: 16px; }
  .access__info { padding: 20px; }
  .page-home .access__row { grid-template-columns: 80px minmax(0, 1fr); gap: 12px; }
  .reserve { margin-top: 0; } .reserve__grid { grid-template-columns: 1fr; gap: 12px; }
  .reserve__cta { display: grid; grid-template-columns: 38px 1fr; min-height: 88px; text-align: left; padding: 14px 24px; gap: 0 18px; }
  .reserve__cta-ico { grid-row: span 2; } .reserve__cta-label { font-size: 23px; } .reserve__cta-sub { margin-top: 2px; font-size: 11px; }
  .link__grid { gap: 20px; } .footer { padding-top: 30px; } .footer__nav { gap: 8px 20px; }
  .footer__cta { gap: 7px; } .footer__cta-btn { padding-inline: 10px; font-size: 11px; } .footer__copy { font-size: 10px; }
  .mobile-nav { display: flex; } .pageTop { right: 12px; bottom: calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 12px); }
  .pageTop__link { width: 42px; height: 42px; }
  .system-cost-box { padding: 18px; } .systemtitle-head { font-size: 18px; } .systemtitle-desc { font-size: 11px; }
  .block-system-title { padding-inline: 8px; } .cost-data-bundle { padding-inline: 4px; gap: 10px; }
  .cost-data-label { font-size: 14px; } .price-1-con { font-size: 18px; }
  .recruit__box, .attention__box { padding: 18px; }
  .recruit-item { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; padding-block: 16px; }
  .recruit-label, .recruit-context { font-size: 12px; }
  .profile__card { padding: 14px; } .profile__grid { grid-template-columns: 1fr; gap: 24px; }
  .profile__thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .profile__table th { width: 76px; } .profile__table th, .profile__table td { padding: 12px 10px; }
  .room__card { padding: 12px; } .interior-gallery { grid-template-columns: 1fr; gap: 16px; }
  .room-lightbox__dialog { padding: 6px; } .room-lightbox__img { aspect-ratio: 4 / 3; }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .cast__item:hover .cast__img-box > a > img, .pickup-card:hover .pickup-card__thumb img { transform: scale(1.025); }
  .reserve__cta:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--gold); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal.is-pending { opacity: 1; transform: none; } .soda { display: none; }
}
