@charset "utf-8";
/* Angeaile-inspired visual adaptation, retaining PHP, media and routes.
   DESIGN_VARIANCE: 6; MOTION_INTENSITY: 3; VISUAL_DENSITY: 3.
   Reference explicitly defines light theme, serif type and pastel colors.
   Shapes: photos 2px, panels 4px, menu circle; hero uses a larger curved frame.
   Layers: decoration 0, content 1, reservation 20, header 30, menu 40/41. */
:root {
  color-scheme: light;
  --paper: #fcfaff;
  --surface: #fff;
  --lavender: #f0eafa;
  --blush: #faedf7;
  --ice: #e9f4fc;
  --ink: #494052;
  --muted: #74667e;
  --accent: #86619f;
  --accent-deep: #70488d;
  --line: #dfd2e9;
  --heading-gradient: linear-gradient(100deg, #7884cb, #a074bd 55%, #c177ba);
  --ribbon-gradient: linear-gradient(110deg, #d9edf8, #ded8f1 55%, #edcfea);
  --shadow: 0 14px 45px rgb(117 83 145 / 8%);
  --serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "MS PMincho", Georgia, serif;
  --roman: "Times New Roman", "Yu Mincho", serif;
  --sans: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --content: 1120px;
  --header-height: 80px;
  --border: var(--line);
  --sakura: var(--accent);
}
/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-height) + 24px); }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--paper); font: 15px/1.9 var(--serif); letter-spacing: .045em; -webkit-text-size-adjust: 100%; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
h1, h2, h3, h4, th { font-weight: 500; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; text-underline-offset: 5px; }
img, video { display: block; max-width: 100%; height: auto; }
iframe { display: block; max-width: 100%; border: 0; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--accent-deep); outline-offset: 5px; }
::selection { background: var(--line); color: var(--ink); }
[hidden] { display: none !important; }
.inner { width: min(var(--content), calc(100% - 160px)); margin-inline: auto; }
.outer { padding-block: 80px; }
.mb_10 { margin-bottom: 10px; }
.mb_20 { margin-bottom: 20px; }
.mb_30 { margin-bottom: 30px; }
.mb_40 { margin-bottom: 40px; }
.mt-2 { margin-top: 16px; }
.center { text-align: center; }
.left { text-align: left; }
.right { text-align: right; }
.pink, .blue { color: var(--accent-deep); }
.clearfix::after { content: ""; display: table; clear: both; }
.link_act_01, .link_act_02 { transition: opacity .25s ease, transform .35s ease; }
.link_act_01:hover { opacity: .75; }
.link_act_02:hover { transform: scale(1.025); }
/* Header */
header { position: sticky; top: 0; z-index: 30; height: var(--header-height); border-bottom: 1px solid rgb(223 210 233 / 65%); background: rgb(252 250 255 / 95%); }
header > .inner { width: min(1440px, calc(100% - 64px)); height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 32px; padding-right: 72px; }
header .site-brand { width: 220px; flex: 0 0 auto; line-height: 1; }
header .site-brand a { display: block; }
header .site-brand img { width: 100%; height: auto; }
.header_info { display: flex; align-items: center; gap: 34px; }
.info_box { order: 2; flex-shrink: 0; line-height: 1.6; text-align: right; }
.info_box li:first-child { color: var(--accent-deep); font: 23px/1.3 var(--roman); letter-spacing: .025em; }
.info_box li:last-child { font-size: 11px; color: var(--muted); }
.info_box span { margin-right: 8px; font-size: 10px; letter-spacing: .1em; }
.nav ul { display: flex; gap: 28px; align-items: center; }
.nav a { display: block; padding-block: 8px; color: var(--accent-deep); font: 15px/1.4 var(--roman); text-align: center; white-space: nowrap; }
.nav a span { display: block; margin-top: 4px; color: var(--muted); font: 10px/1.5 var(--sans); letter-spacing: .03em; }
.nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 9px; }
.nav_btn { position: absolute; z-index: 41; top: 16px; right: 28px; width: 48px; height: 48px; padding: 0; border: 1px solid var(--accent); border-radius: 50%; background: var(--paper); color: var(--accent); display: grid; place-items: center; }
.nav_line { width: 23px; display: grid; gap: 6px; }
.nav_line span { display: block; width: 100%; height: 1px; background: currentColor; transition: transform .25s ease, opacity .25s ease; }
.nav_btn.on .nav_line span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav_btn.on .nav_line span:nth-child(2) { opacity: 0; }
.nav_btn.on .nav_line span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav_btn:hover { background: var(--lavender); }
body.fixed { position: fixed; width: 100%; overflow: hidden; }
.nav_wrap { position: fixed; inset: 0; z-index: 40; overflow-y: auto; overscroll-behavior: contain; background: linear-gradient(125deg, var(--ice), var(--paper) 40%, var(--blush)); }
.nav_content { min-height: 100%; padding: 100px 32px 48px; display: grid; place-items: center; }
.nav_box { width: min(760px, 100%); }
.nav_box nav ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.nav_box nav a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 23px 0; border-bottom: 1px solid var(--line); font: 24px/1.4 var(--roman); color: var(--accent-deep); }
.nav_box nav a span { font: 12px/1.6 var(--serif); color: var(--muted); }
.nav_bottom { margin-top: 48px; text-align: center; }
.nav_bottom .name { color: var(--muted); font-size: 13px; }
.nav_info { margin-top: 20px; font-size: 19px; color: var(--accent-deep); }
.nav_info span { font-size: 12px; margin-right: 10px; }
/* Original desktop artwork / mobile film */
#wrapper.top { width: 100%; max-width: none; margin: 0; padding: 30px 40px 48px; background: radial-gradient(ellipse at 10% 25%, var(--ice), transparent 55%), linear-gradient(125deg, var(--paper), var(--lavender) 70%, var(--blush)); }
.hero-media { display: block; max-width: 1320px; margin: 0 auto; overflow: hidden; border-radius: 100px 2px 100px 2px; box-shadow: var(--shadow); }
.hero-media--mobile { display: none; }
#myVideo { width: 100%; height: auto; aspect-ratio: 1200 / 662; }
#myVideo2 { width: 100%; height: auto; background: var(--lavender); }
.campaign { padding: 48px 32px 20px; background: linear-gradient(var(--blush), var(--paper)); }
.campaign img, .campaign-image { width: min(750px, 100%); height: auto; margin-inline: auto; border: 6px solid var(--surface); box-shadow: var(--shadow); }
.campaign .mb_10 { margin: 0; }
/* Section titles and surfaces */
.h2 { position: relative; margin: 0 auto 42px; padding-top: 35px; text-align: center; line-height: 1.4; }
.h2::before { content: ""; position: absolute; top: 0; left: calc(50% - 22px); width: 44px; height: 25px; background: url(../images/title/bg.png) center / contain no-repeat; opacity: .65; }
.h2 .en { display: block; width: fit-content; max-width: 100%; margin-inline: auto; color: var(--accent); font: 42px/1.15 var(--roman); letter-spacing: .065em; background: var(--heading-gradient); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.h2 small { display: block; margin-top: 9px; font: 11px/1.6 var(--roman); color: var(--muted); letter-spacing: .14em; }
.h2 .ja { display: block; margin-top: 9px; font-size: 13px; color: var(--accent-deep); letter-spacing: .1em; }
.title { text-align: center; font-size: 25px; color: var(--accent-deep); line-height: 1.6; }
.title span, .title p { display: block; font-size: 13px; }
.sub_mainvisual { position: relative; overflow: hidden; padding: 60px 24px 44px; background: linear-gradient(120deg, rgb(233 244 252 / 90%), rgb(250 237 247 / 90%)), url(../images/title/h2.jpg) center / cover; }
.sub_mainvisual .h2 { margin-bottom: 0; }
.bg_animation { position: absolute; inset: 0; z-index: 0; pointer-events: none; background-size: cover; background-position: center; opacity: .07; }
.section_today_schedule, .section_system, .section_access, .section_topics { position: relative; isolation: isolate; }
.outer > .inner, .outer > .h2, .outer > section { position: relative; z-index: 1; }
.section_today_schedule { background: linear-gradient(135deg, var(--ice), var(--lavender) 55%, var(--blush)); }
.section_today_schedule .bg_animation { background-image: url(../images/bg_today_schedule.jpg); }
.section_system { background: var(--paper); }
.section_system .bg_animation { background-image: url(../images/bg_system.jpg); }
.section_access { background: linear-gradient(115deg, var(--ice), var(--paper) 60%, var(--blush)); }
.section_access .bg_animation { background-image: url(../images/bg_access.jpg); }
.section_topics .bg_animation { background-image: url(../images/bg_topics.jpg); }
/* News feed */
.section_topics { padding-block: 60px 80px; }
.toppage__new { display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: center; gap: 48px; }
.toppage__new .h2 { margin: 0; }
.toppage__content { min-width: 0; padding: 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 4px; box-shadow: var(--shadow); }
.news-block-content { max-height: 330px; overflow: auto; padding: 4px 16px 4px 4px; }
.newslist { display: grid; gap: 26px; text-align: left; }
.newslist-item { display: grid; gap: 16px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.newslist-item:last-child { border-bottom: 0; padding-bottom: 0; }
.newslist-content { min-width: 0; }
.news-flex-box { display: grid; gap: 8px; }
.newslist-datetime { width: fit-content; color: var(--accent-deep); font: 13px/1.6 var(--roman); letter-spacing: .09em; }
.newslist-title { color: var(--accent-deep); font-size: 18px; line-height: 1.7; }
.newslist-desc { margin-top: 10px; font: 14px/1.9 var(--sans); color: var(--ink); overflow-wrap: anywhere; }
.newslist-desc p + p { margin-top: .7em; }
.newslist-thumb { display: flex; flex-wrap: wrap; gap: 12px; }
.newslist-thumb img { width: 100px; height: auto; border-radius: 2px; }
.new_mark { color: var(--accent-deep); font-size: 12px; }
.scrollbar-light { scrollbar-width: thin; scrollbar-color: var(--line) transparent; }
.scrollbar-light::-webkit-scrollbar { width: 5px; }
.scrollbar-light::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }
/* Therapist collection */
.tab_box > ul { display: none; }
.tab_box > ul.show, .cast_box { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.cast_box > li { min-width: 0; }
.cast_wrap { height: 100%; }
.cast_box .img_box { position: relative; aspect-ratio: 2 / 3; background: var(--lavender); overflow: hidden; border-radius: 2px; }
.cast_box .img_box > a { display: block; height: 100%; }
.cast_box img.staff { width: 100%; height: 100%; object-fit: cover; }
.cast_box .icon_new { position: absolute; left: 8px; top: 8px; width: 60px; max-width: 25%; pointer-events: none; }
.cast_box .icon_new img { width: 100%; }
.cast_box .txt_box { padding: 20px 4px 8px; border-bottom: 1px solid rgb(134 97 159 / 25%); text-align: center; font-size: 21px; color: var(--accent-deep); }
.cast_box .txt_box span { display: inline-block; margin-top: 5px; color: var(--muted); font: 12px/1.7 var(--sans); }
.cast_box .txt_box .mb_10 { margin-bottom: 8px; }
.cast_tab { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 30px; }
.cast_tab li { cursor: pointer; padding: 8px 18px; border: 1px solid var(--line); }
.cast_tab .active { background: var(--lavender); color: var(--accent-deep); }
/* Prices and recruitment */
.system_box { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: start; gap: 32px; max-width: 1000px; margin-inline: auto; }
.table_system { width: 100%; border-collapse: collapse; background: var(--surface); border: 1px solid var(--line); font-size: 24px; text-align: center; box-shadow: var(--shadow); }
.table_system th { padding: 20px 16px; color: var(--accent-deep); background: var(--ribbon-gradient); font-size: 21px; letter-spacing: .12em; }
.table_system td { padding: 15px 20px; width: 36%; vertical-align: middle; font-variant-numeric: tabular-nums; }
.table_system tr:nth-child(even) td { background: rgb(240 234 250 / 24%); }
.table_system td:nth-child(2) { width: 28%; padding-inline: 4px; font-size: 11px; color: var(--muted); letter-spacing: .12em; }
.table_system td:last-child { color: var(--accent-deep); }
.table_system td[colspan] { width: auto; font-size: 14px; line-height: 2.3; padding: 20px; color: var(--ink); }
.table_system span { font-size: 14px; margin-inline: 3px; }
.contents_system { width: min(1000px, calc(100% - 160px)); margin: 52px auto 80px; text-align: left; }
.contents_system > p { max-width: 850px; margin: 0 auto 36px; line-height: 2.2; }
.dl_box_01 { display: grid; grid-template-columns: 180px minmax(0, 1fr); padding: 16px 32px; border: 1px solid var(--line); background: var(--surface); border-radius: 4px; }
.dl_box_01 dt, .dl_box_01 dd { padding: 24px 12px; border-bottom: 1px solid var(--line); }
.dl_box_01 dt { color: var(--accent-deep); }
.dl_box_01 dt:last-of-type, .dl_box_01 dd:last-of-type { border-bottom: 0; }
.dl_box_01 h3 { font-size: 16px; }
.dl_box_01 dd { font: 14px/2 var(--sans); }
.dl_box_01 a { color: var(--accent-deep); text-decoration: underline; }
.dl_box_01 ul { list-style: disc; padding-left: 1.2em; }
/* Access */
.box.table { display: grid; grid-template-columns: 140px minmax(0, 1fr); margin-bottom: 16px; border-bottom: 1px solid var(--line); text-align: left; }
.box h3.table_cell { padding: 20px 24px; color: var(--accent-deep); font-size: 15px; }
.box_right.table_cell { padding: 20px 24px; font: 14px/1.9 var(--sans); }
.access_box { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 24px; margin-top: 30px; }
.access_box > p:empty { display: none; }
.access_box iframe { width: 100%; height: 360px; border: 7px solid var(--surface); box-shadow: var(--shadow); }
/* Profile gallery */
#wrap_in { width: min(1000px, calc(100% - 160px)); margin: 64px auto 80px; }
#profile_in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: start; }
#profile_imgBox, #profile_dataBox { min-width: 0; }
#MainPhoto { width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 2px; background: var(--lavender); }
.thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 12px; }
.thumb-small { width: 100%; height: 96px; object-fit: cover; border: 1px solid var(--line); border-radius: 2px; cursor: pointer; transition: opacity .2s; }
.thumb-small:hover { opacity: .8; }
.thumb-small.is-active { outline: 2px solid var(--accent); outline-offset: 3px; }
#profile_dataList { padding: 16px 28px 24px; border: 1px solid var(--line); background: var(--surface); border-radius: 4px; }
#profile_dataList .title { padding-top: 22px; text-align: left; font: 12px/1.7 var(--sans); letter-spacing: .1em; color: var(--muted); }
#profile_dataList dd { padding: 8px 0 24px; border-bottom: 1px solid var(--line); font-size: 18px; color: var(--accent-deep); }
#profile_dataList dd:first-of-type { font-size: 28px; }
#profile_dataList dd:last-child { border: 0; font-size: 15px; line-height: 2.1; color: var(--ink); }
.ImagePrev { margin-top: 36px; text-align: center; }
.ImagePrev a { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--accent); color: var(--accent-deep); font-size: 24px; }
/* Existing Swiper and accordion hooks */
.effect_fade, .effect_slide { position: relative; overflow: hidden; min-width: 0; }
.swiper-slide img { width: 100%; }
.pagination { position: relative; padding-top: 18px; text-align: center; }
.pagination .swiper-pagination-bullet { margin: 0 6px; background: var(--accent); }
.pagination .swiper-pagination-bullet-active { background: var(--accent-deep); }
.next, .prev { color: var(--accent-deep); }
.swiper-button-disabled { opacity: .35; }
.topics_box h3[role="button"] { cursor: pointer; }
/* Original navigation banner photographs */
.section_bnr { padding: 54px 40px; background: var(--paper); }
.link_bnr { max-width: 1200px; margin-inline: auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.link_bnr li { position: relative; isolation: isolate; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.link_bnr li::before { position: absolute; inset: 0; z-index: -1; content: ""; background-size: cover; background-position: center; opacity: .18; transition: opacity .3s, transform .4s; }
.link_bnr li:nth-child(1)::before { background-image: url(../images/bg_bnr_therapist.jpg); }
.link_bnr li:nth-child(2)::before { background-image: url(../images/bg_bnr_schedule.jpg); }
.link_bnr li:nth-child(3)::before { background-image: url(../images/bg_bnr_recruit.jpg); }
.link_bnr li:nth-child(4)::before { background-image: url(../images/bg_bnr_contact.jpg); }
.link_bnr a { display: grid; place-items: center; min-height: 160px; padding: 24px 12px; text-align: center; }
.link_bnr h2 { color: var(--accent-deep); font: 26px/1.4 var(--roman); letter-spacing: .055em; }
.link_bnr h2 span { display: block; margin-top: 8px; font: 12px/1.7 var(--serif); }
.link_bnr li:hover::before { opacity: .3; transform: scale(1.03); }
/* Footer and shared reservation gradient */
footer { background: linear-gradient(125deg, var(--ice), var(--lavender) 55%, var(--blush)); border-top: 1px solid var(--line); text-align: center; }
footer > .inner { padding-block: 48px 32px; }
footer .logo { width: 280px; margin: 0 auto 28px; }
.link_box { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.link_box li:empty { display: none; }
.link_box img { max-width: 180px; max-height: 75px; object-fit: contain; }
.footer_nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 32px; font-size: 13px; color: var(--accent-deep); }
.footer_nav a { display: block; padding-block: 8px; }
.copywriter { padding: 20px 24px; border-top: 1px solid var(--line); color: var(--muted); font: 11px/1.8 var(--sans); }
.sp-fixed-nav { position: fixed; z-index: 20; right: 0; top: 45%; background: var(--ribbon-gradient); border: 1px solid var(--line); border-right: 0; border-radius: 4px 0 0 4px; box-shadow: var(--shadow); }
.sp-fixed-nav__item { display: none; color: var(--accent-deep); align-items: center; justify-content: center; flex-direction: column; gap: 8px; min-width: 76px; min-height: 90px; padding: 10px; white-space: nowrap; font-size: 12px; line-height: 1.5; transition: background .2s, transform .2s; }
.sp-fixed-nav__item.is-tel { display: flex; }
.sp-fixed-nav__item i { font-size: 20px; }
.sp-fixed-nav__item:hover { background: rgb(255 255 255 / 30%); }
.sp-fixed-nav__item:active, .nav_btn:active { transform: scale(.97); }
.btn { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 12px 28px; border: 1px solid var(--accent); border-radius: 4px; background: var(--ribbon-gradient); color: var(--accent-deep); white-space: nowrap; }
input, select, textarea { max-width: 100%; padding: 10px 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 4px; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
/* Progressive enhancement: default content stays visible without JS. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .reveal-pending { opacity: 0; transform: translateY(16px); }
  .reveal-ready { transition: opacity .6s ease, transform .6s ease; }
  .reveal-ready.on { opacity: 1; transform: none; }
}
/* Tablet */
@media (max-width: 1100px) {
  body { padding-bottom: calc(67px + env(safe-area-inset-bottom)); }
  .contents_system, #wrap_in { width: calc(100% - 64px); }
  .sp-fixed-nav { left: 0; right: 0; top: auto; bottom: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 6px 0 calc(6px + env(safe-area-inset-bottom)); border: 0; border-top: 1px solid var(--line); border-radius: 0; }
  .sp-fixed-nav__item { display: flex; min-width: 0; min-height: 54px; padding: 5px 2px; gap: 5px; font-size: 11px; border-right: 1px solid rgb(134 97 159 / 25%); }
  .sp-fixed-nav__item:last-child { border-right: 0; }
  .sp-fixed-nav__item i { font-size: 17px; }
  .sp-fixed-nav__item:focus-visible { outline-offset: -3px; }
  .nav { display: none; }
  .header_info { margin-left: auto; }
  .inner { width: calc(100% - 64px); }
  .cast_box, .tab_box > ul.show { gap: 24px; }
  .toppage__new { grid-template-columns: 200px minmax(0, 1fr); gap: 24px; }
  .link_bnr { gap: 12px; }
  .link_bnr h2 { font-size: 22px; }
}
/* Phone: unified colors, two-column portrait collection and bottom reservation. */
@media (max-width: 767px) {
  :root { --header-height: 72px; }
  body { font-size: 14px; }
  .inner { width: calc(100% - 36px); }
  .outer { padding-block: 48px; }
  header > .inner { width: calc(100% - 32px); padding-right: 54px; gap: 12px; }
  header .site-brand { width: 188px; }
  .header_info { display: none; }
  .nav_btn { width: 44px; height: 44px; top: 14px; right: 16px; }
  .nav_content { padding: 82px 28px 36px; }
  .nav_box nav ul { grid-template-columns: 1fr; }
  .nav_box nav a { padding: 18px 0; font-size: 23px; }
  .nav_bottom { margin-top: 28px; }
  .nav_bottom .name { font-size: 12px; }
  #wrapper.top { padding: 14px 14px 28px; }
  .hero-media { border-radius: 54px 2px 54px 2px; }
  .hero-media--desktop { display: none; }
  .hero-media--mobile { display: block; }
  .campaign { padding: 24px 18px 12px; }
  .campaign img, .campaign-image { border-width: 4px; }
  .h2 { margin-bottom: 28px; padding-top: 30px; }
  .h2 .en { font-size: 32px; letter-spacing: .04em; }
  .h2 small { font-size: 10px; }
  .h2 .ja { font-size: 12px; margin-top: 6px; }
  .sub_mainvisual { padding: 32px 20px; }
  .section_topics { padding-block: 32px 48px; }
  .toppage__new { grid-template-columns: 1fr; gap: 28px; }
  .toppage__content { padding: 18px 14px; }
  .news-block-content { max-height: 300px; padding-right: 10px; }
  .newslist-title { font-size: 16px; }
  .newslist-desc { font-size: 13px; }
  .newslist-thumb img { width: 88px; }
  .cast_box, .tab_box > ul.show { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; }
  .cast_box .txt_box { padding: 12px 0 4px; font-size: 17px; }
  .cast_box .txt_box span { font-size: 11px; letter-spacing: 0; }
  .cast_box .icon_new { left: 4px; top: 4px; }
  .system_box { grid-template-columns: 1fr; gap: 24px; }
  .table_system { font-size: 23px; }
  .table_system th { font-size: 18px; padding: 15px 12px; }
  .table_system td { padding: 13px 12px; }
  .table_system td[colspan] { font-size: 12px; padding: 16px 10px; }
  .contents_system { width: calc(100% - 36px); margin-block: 36px 48px; }
  .contents_system > p { font-size: 14px; }
  .dl_box_01 { grid-template-columns: 1fr; padding: 8px 18px; }
  .dl_box_01 dt { padding: 20px 0 4px; border-bottom: 0; }
  .dl_box_01 dd { padding: 0 0 20px; }
  .dl_box_01 h3 { font-size: 14px; }
  .box.table { grid-template-columns: 90px minmax(0, 1fr); margin-bottom: 6px; }
  .box h3.table_cell { padding: 15px 6px; font-size: 13px; }
  .box_right.table_cell { padding: 15px 4px; font-size: 13px; }
  .access_box { gap: 18px; margin-top: 20px; }
  .access_box iframe { height: 300px; border-width: 4px; }
  #wrap_in { width: calc(100% - 36px); margin-block: 32px 48px; }
  #profile_in { grid-template-columns: 1fr; gap: 28px; }
  #profile_imgBox { width: min(440px, 100%); margin-inline: auto; }
  #profile_dataList { padding: 10px 22px; }
  #profile_dataList dd:first-of-type { font-size: 26px; }
  .section_bnr { padding: 36px 18px; }
  .link_bnr { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .link_bnr a { min-height: 120px; padding: 20px 8px; }
  .link_bnr h2 { font-size: 22px; }
  .link_bnr h2 span { font-size: 11px; }
  footer > .inner { padding-block: 36px 24px; }
  footer .logo { width: 230px; margin-bottom: 20px; }
  .footer_nav { gap: 6px 22px; font-size: 12px; }
  .copywriter { padding: 16px 20px; font-size: 10px; }

}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal-pending { opacity: 1; transform: none; }
}

/* Readable page introductions and semantic text headings. */
.page-intro { padding-block: 32px; color: var(--ink); }
.page-intro h1 { margin: 0 0 20px; font-size: clamp(23px, 4vw, 34px); line-height: 1.5; color: var(--accent-deep); overflow-wrap: anywhere; }
.page-intro h2 { margin: 24px 0 12px; font-size: 21px; }
.page-intro p, .page-intro li { font-size: 16px; line-height: 1.9; overflow-wrap: anywhere; }
.page-intro p + p { margin-top: 12px; }
.page-intro ol { padding-left: 1.5em; }
.page-intro a { text-decoration: underline; text-underline-offset: 3px; }
