:root { --ink:#202020; --paper:#faf9f5; --line:#2b2b29; --soft:#ece9df; --wash:#f3f1eb; --accent:#526552; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Yu Mincho","Hiragino Mincho ProN",serif; line-height:1.9; overflow-x:clip; }
a { color:inherit; }
.service-page { max-width:1180px; margin:0 auto; padding:28px 24px 88px; }
.back-link { display:inline-block; font-family:"Yu Gothic",Meiryo,sans-serif; font-size:14px; margin-bottom:38px; text-underline-offset:4px; }
.page-title { font-size:clamp(34px,5vw,62px); font-weight:normal; letter-spacing:.08em; line-height:1.3; margin:0 0 52px; }

/* Each section is an independently sized, matted comic frame. */
.comic-grid { display:grid; gap:clamp(32px,5vw,76px); }
.comic-panel, .framed-block { position:relative; border:1px solid var(--line); background:var(--paper); padding:clamp(8px,1.5vw,18px); }
.comic-panel::before, .framed-block::before { content:""; position:absolute; inset:clamp(8px,1.5vw,18px); border:1px solid var(--line); pointer-events:none; }
.comic-panel { display:grid; align-items:stretch; min-width:0; }
.comic-panel > * { min-width:0; position:relative; z-index:1; }
.panel-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(30px,5vw,74px); }
.panel-copy h2 { font-size:clamp(24px,3vw,39px); font-weight:normal; line-height:1.55; letter-spacing:.05em; margin:0 0 24px; }
.panel-copy p { margin:0 0 18px; font-size:17px; }
.panel-copy p:last-child { margin-bottom:0; }
.panel-art { display:flex; align-items:stretch; background:var(--wash); }
.panel-art img, .feature-art img { width:100%; max-width:100%; height:100%; object-fit:contain; display:block; }
.frame-a { grid-template-columns:40% 60%; }
.frame-b { grid-template-columns:63% 37%; }
.frame-c { grid-template-columns:32% 68%; }
.frame-d { grid-template-columns:58% 42%; }
.frame-e { grid-template-columns:46% 54%; }
.comic-panel.reverse .panel-copy { order:2; }
.comic-panel.reverse .panel-art { order:1; }
.copy-only { max-width:72%; min-height:0; }
.copy-only .panel-copy { min-height:350px; }
.offset-right { margin-left:12%; }
.offset-left { margin-right:17%; }

.simple-section { padding:clamp(62px,9vw,112px) 0; }
.simple-section h2, .contact-copy h2 { font-size:clamp(28px,3.2vw,40px); font-weight:normal; letter-spacing:.08em; margin:0 0 30px; }
.flow { display:grid; grid-template-columns:1fr 1.15fr .9fr; gap:20px; }
.flow-item { border:1px solid var(--line); padding:24px; background:var(--paper); }
.flow-item:nth-child(2) { margin-top:36px; }
.flow-item:nth-child(3) { margin-top:14px; }
.flow-number { display:block; font:14px/1 "Yu Gothic",Meiryo,sans-serif; letter-spacing:.16em; margin-bottom:22px; }
.flow-item h3 { font-size:22px; font-weight:normal; margin:0 0 14px; }
.flow-item p { margin:0; }
.feature-art { background:var(--wash); }
.feature-art img { max-height:700px; }
.faq-frame { display:grid; grid-template-columns:62% 38%; gap:0; margin-left:8%; }
.faq-frame .feature-art { margin:0; min-height:360px; }
.faq-copy { padding:clamp(30px,5vw,64px); }
.chat-list { display:grid; gap:18px; }
.chat { max-width:90%; border:1px solid var(--line); padding:18px 22px; }
.chat.question { justify-self:start; background:#fff; margin-right:10%; }
.chat.answer { justify-self:end; background:#eeece4; margin-left:10%; }
.chat b { display:block; font-family:"Yu Gothic",Meiryo,sans-serif; margin-bottom:8px; }
.chat p { margin:0; }
.price-list { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.price-row { display:flex; justify-content:space-between; gap:24px; padding:18px 22px; border-bottom:1px solid var(--line); }
.price-row:last-child { border-bottom:0; }
.price-row strong { font-weight:normal; white-space:nowrap; }
.moon { display:grid; grid-template-columns:33% 67%; }
.moon-copy { padding:clamp(32px,5vw,70px); display:flex; flex-direction:column; justify-content:center; }
.moon-copy h2 { font-size:clamp(28px,3.2vw,42px); font-weight:normal; margin:0; }
.moon .feature-art { min-height:420px; }
.contact { display:grid; grid-template-columns:56% 44%; margin-top:12px; }
.contact .feature-art { min-height:360px; }
.contact-copy { padding:clamp(32px,5vw,70px); display:flex; flex-direction:column; justify-content:center; }
.contact-copy p { margin:0 0 18px; }
.notice { font-size:14px; }
.button { align-self:flex-start; background:var(--ink); color:white; display:inline-block; font-family:"Yu Gothic",Meiryo,sans-serif; padding:13px 24px; text-decoration:none; }

/* The identical contact panel is shared by healing and coaching. */
.shared-contact { display:grid; grid-template-columns:250px max-content; width:fit-content; max-width:100%; align-items:stretch; margin:clamp(54px,8vw,86px) auto 0; border:2px solid transparent; background:var(--paper); }
.shared-contact-art { min-width:0; min-height:100%; border:1px solid var(--line); background:#fff; }
.shared-contact-art img { display:block; width:100%; max-width:100%; height:100%; object-fit:cover; }
.shared-contact-content { padding:clamp(28px,4vw,48px); }
.shared-contact-content h2 { margin:0 0 14px; font-size:28px; font-weight:normal; letter-spacing:.1em; line-height:1.7; }
.shared-contact-details { margin-top:24px; border-top:1px solid var(--line); }
.shared-contact-details p { margin:0; padding:12px 0; border-bottom:1px solid var(--line); }
.shared-contact-details span { display:block; margin-bottom:3px; font-family:"Yu Gothic",Meiryo,sans-serif; font-size:13px; letter-spacing:.06em; }
.shared-contact-details a { text-underline-offset:3px; }
.shared-contact .button { background:#06C755; color:#fff; border-radius:3px; }
/* The same bridge copy appears directly above both shared contact panels. */
.contact-bridge { max-width:680px; margin:clamp(54px,8vw,86px) auto 0; font-size:18px; line-height:2.1; text-align:center; }
.contact-bridge + .shared-contact { margin-top:24px; }
.service-footer { display:flex; flex-direction:column; align-items:center; gap:6px; margin:44px 0 0; color:#343434; font:17px/1.5 "Yu Gothic",Meiryo,sans-serif; letter-spacing:.08em; text-align:center; }
.service-footer a { text-decoration:none; }
.service-footer a:last-child { font-size:15px; letter-spacing:.1em; }
.service-footer a:hover { color:#777; }

.pineal { margin:clamp(96px,14vw,190px) 0 0; padding:0; background:transparent; color:var(--ink); }
.pineal-inner { max-width:1180px; margin:auto; padding:0 24px 96px; }
.pineal-intro { max-width:460px; margin:0 0 42px 8%; font-size:18px; }
.pineal-grid { display:grid; grid-template-columns:30% 70%; }
.pineal-copy { padding:clamp(32px,5vw,70px); }
.pineal h2 { font-size:clamp(32px,4vw,54px); font-weight:normal; line-height:1.45; margin:0 0 22px; }
.pineal h3 { font-size:24px; font-weight:normal; margin:42px 0 12px; }
.pineal p { margin:0 0 18px; }
.pineal .feature-art { min-height:600px; }
/* Coaching is a continuous outer plate containing separately ruled comic panels. */
.coaching-page { line-height:1.65; }
.coaching-page .service-page { padding-top:22px; }
.coaching-page .back-link { margin-bottom:12px; }
.coaching-page .page-title { margin:0 0 14px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:18px; font-weight:normal; letter-spacing:.1em; line-height:2.1; }
.coaching-page .coaching-spread { width:min(100%,960px); margin-inline:auto; gap:10px; border:0; background:transparent; }
.coaching-page .coaching-scene { width:100%; max-width:none; margin:0; padding:0; border:0; background:transparent; align-items:stretch; }
.coaching-page .coaching-scene::before { content:none; }
.coaching-page .coaching-scene > .panel-copy, .coaching-page .coaching-scene > .panel-art { min-width:0; min-height:0; height:100%; border:1px solid var(--line); }
.coaching-page .scene-01, .coaching-page .scene-02, .coaching-page .scene-03, .coaching-page .scene-04, .coaching-page .scene-05 { height:520px; min-height:0; }
.coaching-page .scene-01 { display:grid; grid-template-columns:60% 40%; gap:10px; }
.coaching-page .scene-02 { display:grid; grid-template-columns:48% 52%; gap:10px; }
.coaching-page .scene-03 { display:grid; grid-template-columns:58% 42%; gap:10px; }
.coaching-page .scene-04 { display:grid; grid-template-columns:44% 56%; gap:10px; }
.coaching-page .scene-05 { display:grid; grid-template-columns:56% 44%; gap:10px; }
.coaching-page .coaching-scene .panel-copy { min-height:0; margin:0; padding:22px 48px; }
.coaching-page .scene-01 .panel-copy { background:#EAF4F6; }
.coaching-page .scene-02 .panel-copy { background:#EEF4E8; }
.coaching-page .scene-03 .panel-copy { background:#F7F2DF; }
.coaching-page .scene-04 .panel-copy { max-width:none; margin:0; background:#F1EDF5; }
.coaching-page .scene-05 .panel-copy { background:#F7ECEC; }
.coaching-page .panel-copy h2 { font-size:28px; font-weight:normal; line-height:1.7; margin:0 0 11px; }
.coaching-page .panel-copy p { margin:0 0 10px; font-size:18px; line-height:2.1; }
.coaching-page .section-number { display:block; width:max-content; margin:0 0 11px; padding-bottom:5px; border-bottom:1px solid var(--line); font:12px/1 "Yu Gothic",Meiryo,sans-serif; letter-spacing:.18em; }
.coaching-page .coaching-scene .panel-art { align-self:stretch; display:block; height:100%; padding:0; background:#fff; overflow:visible; }
.coaching-page .coaching-scene .panel-art img { width:100%; max-width:100%; height:100%; object-fit:contain; display:block; }
.coaching-page .scene-01 .panel-art img { transform:none; }
.coaching-page .scene-05 .panel-copy { order:1; }
.coaching-page .scene-05 .panel-art { order:2; }
.coaching-page .coaching-price { width:fit-content; max-width:100%; margin-inline:auto; padding:42px 0 0; }
.coaching-page .price-panel { margin:0; border:0; background:transparent; }
.coaching-page .price-panel h2 { margin:0 0 14px; font-size:18px; font-weight:normal; letter-spacing:.08em; line-height:1.5; }
.coaching-page .price-items > div { margin:0 0 18px; }
.coaching-page .price-items p { margin:0 0 3px; font-size:17px; }
.coaching-page .price-items small { font-size:14px; line-height:1.65; }

/* Healing follows the finished coaching-page panel language without changing it. */
.healing-page { line-height:1.65; }
.healing-page .service-page { padding-top:22px; }
.healing-page .back-link { margin-bottom:12px; }
.healing-page .page-title { margin:0 0 14px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:18px; font-weight:normal; letter-spacing:.1em; line-height:2.1; }
.healing-page .healing-spread { width:min(100%,960px); margin-inline:auto; gap:10px; border:0; background:transparent; }
.healing-page .coaching-scene { width:100%; max-width:none; margin:0; padding:0; border:0; background:transparent; align-items:stretch; }
.healing-page .coaching-scene::before { content:none; }
.healing-page .coaching-scene > .panel-copy, .healing-page .coaching-scene > .panel-art { min-width:0; min-height:0; height:100%; border:1px solid var(--line); }
.healing-page .scene-01, .healing-page .scene-02, .healing-page .scene-03, .healing-page .scene-04, .healing-page .scene-05 { height:480px; min-height:0; }
.healing-page .scene-01 { display:grid; grid-template-columns:60% 40%; gap:10px; }
.healing-page .scene-02 { display:grid; grid-template-columns:52% 48%; gap:10px; }
.healing-page .scene-03 { display:grid; grid-template-columns:55% 45%; gap:10px; }
.healing-page .scene-04 { display:grid; grid-template-columns:50% 50%; gap:10px; }
.healing-page .scene-05 { display:grid; grid-template-columns:57% 43%; gap:10px; }
.healing-page .coaching-scene .panel-copy { min-height:0; margin:0; padding:22px 48px; }
.healing-page .scene-01 .panel-copy { background:#EAF4F6; }
.healing-page .scene-02 .panel-copy { background:#EEF4E8; }
.healing-page .scene-03 .panel-copy { background:#F7F2DF; }
.healing-page .scene-04 .panel-copy { max-width:none; margin:0; background:#F1EDF5; }
.healing-page .scene-05 .panel-copy { background:#F7ECEC; }
.healing-page .coaching-scene .panel-copy h2 { font-size:28px; font-weight:normal; line-height:1.7; margin:0 0 11px; }
.healing-page .coaching-scene .panel-copy p { margin:0 0 10px; font-size:18px; line-height:2.1; }
.healing-page .coaching-scene .panel-copy p:last-child { margin-bottom:0; }
.healing-page .section-number { display:block; width:max-content; margin:0 0 11px; padding-bottom:5px; border-bottom:1px solid var(--line); font:12px/1 "Yu Gothic",Meiryo,sans-serif; letter-spacing:.18em; }
.healing-page .coaching-scene .panel-art { align-self:stretch; display:block; height:100%; padding:0; background:#fff; overflow:visible; }
.healing-page .coaching-scene .panel-art img { width:100%; max-width:100%; height:100%; object-fit:contain; display:block; }
.healing-price { width:fit-content; max-width:100%; margin:0 auto; padding:42px 0 0; }
.healing-price .price-panel { border:0; background:transparent; }
.healing-price h2 { margin:0 0 14px; font-size:18px; font-weight:normal; letter-spacing:.08em; line-height:1.5; }
.healing-price .price-items p { margin:0 0 10px; font-size:17px; }
.healing-special { width:min(100%,960px); margin-inline:auto; padding:80px 0 0; }
.healing-special > h2 { margin:0 0 24px; font-size:28px; font-weight:normal; letter-spacing:.1em; text-align:center; }
.special-exhibits { display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:stretch; }
.special-exhibit { display:flex; flex-direction:column; border:1px solid var(--line); background:var(--paper); }
.special-exhibit .exhibit-art { display:flex; align-items:center; justify-content:center; height:390px; padding:18px; border-bottom:1px solid var(--line); background:#fff; }
.special-exhibit .exhibit-art img { display:block; width:100%; height:100%; object-fit:contain; }
.special-exhibit .exhibit-copy { display:flex; flex:1; flex-direction:column; padding:28px 30px 32px; }
.special-exhibit h3 { margin:0 0 16px; font-size:clamp(23px,2.5vw,33px); font-weight:normal; line-height:1.45; }
.special-exhibit h4 { margin:30px 0 12px; font-size:20px; font-weight:normal; }
.special-exhibit p { margin:0 0 14px; font-size:16px; }
.moon-exhibit .exhibit-copy { background:#F7F2DF; min-height:122px; }
.moon-exhibit .moon-intro, .pineal-exhibit .pineal-intro { margin-bottom:18px; }
.pineal-exhibit .exhibit-copy { background:#EEF4E8; }
.pineal-exhibit strong { font-weight:normal; border-bottom:2px solid var(--ink); padding-bottom:2px; }
.special-price, .pineal-price { margin-top:auto !important; padding-top:24px; }
.pineal-price span { margin-left:.3em; font-size:14px; white-space:nowrap; }
.coaching-text-link { text-underline-offset:4px; }
.healing-faq { max-width:890px; margin:0 auto; padding:80px 0 0; }
.healing-page .healing-faq .faq-entry-art { position:relative; width:84%; margin:0 auto; }
.healing-page .healing-faq .faq-entry-art img { display:block; width:100%; height:auto; }
.healing-page .healing-faq .faq-entry-art h2 { position:absolute; top:clamp(16px,2.2vw,24px); left:clamp(20px,3vw,34px); margin:0; font-size:clamp(22px,2.45vw,31px); }
.healing-page .healing-faq .faq-copy { padding:0; }
.healing-page .healing-faq h2 { font-size:28px; font-weight:normal; letter-spacing:.1em; }
.healing-page .healing-faq .chat-list { gap:18px; margin-top:30px; }
.healing-page .healing-faq .chat-line { display:flex; align-items:flex-end; gap:14px; }
.healing-page .healing-faq .chat-line.answer { justify-content:flex-end; }
.healing-page .healing-faq .speaker-icon { width:74px; height:74px; flex:0 0 74px; display:block; border-radius:50%; object-fit:cover; background:#fff; }
.healing-page .healing-faq .goat-icon { transform:scaleX(-1); }
.healing-page .healing-faq .chat { position:relative; max-width:min(78%,650px); padding:17px 21px; border-radius:18px; }
.healing-page .healing-faq .chat-line.question .chat { background:#f4f1e8; }
.healing-page .healing-faq .chat-line.answer .chat { background:#dcebd6; }
.healing-page .healing-faq .chat-line.question .chat::before, .healing-page .healing-faq .chat-line.answer .chat::after { content:""; position:absolute; bottom:12px; width:10px; height:10px; background:inherit; z-index:0; }
.healing-page .healing-faq .chat-line.question .chat::before { left:-5px; border-left:1px solid var(--line); border-bottom:1px solid var(--line); transform:rotate(45deg); }
.healing-page .healing-faq .chat-line.answer .chat::after { right:-5px; border-right:1px solid var(--line); border-top:1px solid var(--line); transform:rotate(45deg); }
.healing-page .healing-faq .chat p { margin:0; }

@media (max-width:720px) {
  .service-page { padding:20px 16px 58px; }
  .page-title { margin-bottom:36px; }
  .comic-grid { gap:34px; }
  .comic-panel, .faq-frame, .moon, .contact, .pineal-grid { grid-template-columns:1fr; }
  .comic-panel.reverse .panel-copy, .comic-panel.reverse .panel-art { order:initial; }
  .comic-panel.reverse .panel-art { order:-1; }
  .panel-copy { padding:34px 28px; }
  .panel-copy p { font-size:16px; }
  .copy-only, .offset-left, .offset-right, .coaching-page .comic-panel:nth-child(2), .coaching-page .comic-panel:nth-child(3), .coaching-page .comic-panel:nth-child(5) { max-width:none; margin-left:0; margin-right:0; }
  .copy-only .panel-copy { min-height:0; }
  .flow { grid-template-columns:1fr; gap:14px; }
  .flow-item:nth-child(2), .flow-item:nth-child(3) { margin-top:0; margin-left:8%; }
  .faq-frame { margin-left:0; }
  .faq-frame .feature-art { min-height:300px; }
  .faq-copy { padding:34px 28px; }
  .chat { max-width:94%; }
  .moon .feature-art, .contact .feature-art { min-height:300px; }
  .pineal { margin-top:78px; }
  .pineal-inner { padding:0 16px 64px; }
  .pineal-intro { margin-left:0; }
  .pineal .feature-art { min-height:400px; }
  .price-row { align-items:flex-start; flex-direction:column; gap:4px; }
  .shared-contact { grid-template-columns:1fr; width:100%; margin-top:48px; }
  .shared-contact-art { height:280px; min-height:0; border:1px solid var(--line); }
  .shared-contact-content { padding:28px 24px; }
  .service-footer { margin-top:36px; }
  .coaching-page .service-page { padding-top:18px; }
  .coaching-page .page-title { margin-bottom:10px; font-size:17px; }
  .coaching-page .coaching-spread { width:100%; margin-inline:0; gap:8px; }
  .coaching-page .coaching-scene { min-height:0; padding:0; grid-template-columns:1fr; gap:8px; }
  .coaching-page .scene-01, .coaching-page .scene-02, .coaching-page .scene-03, .coaching-page .scene-04, .coaching-page .scene-05 { height:auto; min-height:0; }
  .coaching-page .coaching-scene .panel-copy, .coaching-page .scene-04 .panel-copy { max-width:none; margin:0; padding:22px 24px; }
  .coaching-page .coaching-scene .panel-copy h2 { font-size:27px; }
  .coaching-page .coaching-scene .panel-copy p { font-size:17px; line-height:2.1; }
  .coaching-page .coaching-scene .panel-art { height:auto; min-height:0; padding:0; }
  .coaching-page .coaching-scene .panel-art img { height:auto; object-fit:contain; }
  .coaching-page .coaching-scene .panel-art { order:1; }
  .coaching-page .coaching-scene .panel-copy { order:2; }
  .coaching-page .coaching-price { max-width:none; padding-top:30px; }
  .healing-page .service-page { padding-top:18px; }
  .healing-page .page-title { margin-bottom:10px; font-size:17px; }
  .healing-page .healing-spread { width:100%; margin-inline:0; gap:8px; }
  .healing-page .coaching-scene { min-height:0; padding:0; grid-template-columns:1fr; gap:8px; }
  .healing-page .scene-01, .healing-page .scene-02, .healing-page .scene-03, .healing-page .scene-04, .healing-page .scene-05 { height:auto; min-height:0; }
  .healing-page .coaching-scene .panel-copy, .healing-page .scene-04 .panel-copy { max-width:none; margin:0; padding:22px 24px; }
  .healing-page .coaching-scene .panel-copy h2 { font-size:27px; }
  .healing-page .coaching-scene .panel-copy p { font-size:17px; line-height:2.1; }
  .healing-page .coaching-scene .panel-art { height:auto; min-height:0; padding:0; }
  .healing-page .coaching-scene .panel-art img { height:auto; object-fit:contain; }
  .healing-page .coaching-scene .panel-art { order:1; }
  .healing-page .coaching-scene .panel-copy { order:2; }
  .healing-price { max-width:none; padding-top:30px; }
  .healing-special, .healing-faq { padding-top:58px; }
  .special-exhibits { grid-template-columns:1fr; gap:28px; }
  .special-exhibit .exhibit-art { height:min(92vw,390px); padding:14px; }
  .special-exhibit .exhibit-copy { padding:27px 24px; }
  .healing-page .healing-faq { padding-top:58px; }
  .contact-bridge { margin-top:58px; font-size:17px; }
  .shared-contact-content h2, .healing-special > h2, .healing-page .healing-faq h2 { font-size:27px; }
  .healing-page .healing-faq .faq-entry-art { width:100%; }
  .healing-page .healing-faq .faq-entry-art h2 { top:50%; left:50%; margin:0; padding:10px 14px; background:#fff; font-size:17px; white-space:nowrap; transform:translate(-50%,-50%); }
  .healing-page .healing-faq .chat-line { gap:10px; }
  .healing-page .healing-faq .speaker-icon { width:58px; height:58px; flex-basis:58px; }
  .healing-page .healing-faq .chat { max-width:calc(100% - 68px); padding:16px 18px; }
}
