/* maholoba-coconaru ― 静寂（Stillness）版
   文字：見出し Noto Serif JP ／ 本文 Noto Sans JP ／ 英字 Raleway（「生徒さんの声」ページと同じ組み合わせ） */
:root{
  --paper:#F4EFE9; --paper2:#ECE5DD; --white:#FBF9F6;
  --ink:#2B2521; --ink2:#554C45; --mute:#8C8178; --line:#DAD0C6;
  --accent:#A87B63; --accent-d:#8A5F49;
  --night:#26211D; --night2:#1D1915; --night-ink:#ECE4DB; --night-mute:#A4978B; --night-line:rgba(236,228,219,.18);
  --serif:"Noto Serif JP","Yu Mincho",YuMincho,serif;
  --sans:"Noto Sans JP",-apple-system,"Yu Gothic",YuGothic,sans-serif;
  --latin:Raleway,"Noto Sans JP",sans-serif;
  --gut:max(20px,env(safe-area-inset-left,0px));
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink2);font-family:var(--sans);font-weight:400;font-size:15px;line-height:2;letter-spacing:.05em;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure{margin:0;padding:0}
ul,ol{list-style:none}
.sym{position:absolute;width:0;height:0;overflow:hidden}
:focus-visible{outline:1px solid var(--accent);outline-offset:4px}

/* ── 共通の枠 ── */
.wrap{max-width:1120px;margin:0 auto;padding-left:var(--gut);padding-right:max(20px,env(safe-area-inset-right,0px))}
.narrow{max-width:640px;margin:0 auto}
.sec{padding-block:clamp(88px,12vw,160px);position:relative}
.sec.tone{background:var(--paper2)}
.sec.night{background:var(--night);color:var(--night-ink)}
.sec.tight{padding-block:clamp(64px,8vw,110px)}

/* ── 見出し（英字＋日本語） ── */
.sh{text-align:center;margin-bottom:clamp(44px,6vw,72px)}
.sh .en{display:block;font-family:var(--latin);font-weight:300;font-size:clamp(26px,3.6vw,38px);letter-spacing:.26em;text-transform:uppercase;color:var(--ink);line-height:1.3;padding-left:.26em}
.sh .ja{display:block;margin-top:14px;font-family:var(--serif);font-size:14px;letter-spacing:.24em;color:var(--mute)}
.sh .ja::before,.sh .ja::after{content:"";display:inline-block;width:22px;height:1px;background:currentColor;opacity:.5;vertical-align:middle;margin:0 14px}
.night .sh .en{color:var(--white)}
.night .sh .ja{color:var(--night-mute)}
.sh.left{text-align:left}
.sh.left .en{padding-left:0}
.sh.left .ja::before{display:none}

/* ── ボタン（細い枠） ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-width:220px;padding:15px 30px;border:1px solid currentColor;color:var(--ink);text-decoration:none;font-family:var(--sans);font-size:13px;letter-spacing:.16em;transition:background .5s var(--ease),color .5s var(--ease),border-color .5s}
.btn::after{content:"";width:26px;height:1px;background:currentColor;transition:width .5s var(--ease)}
.btn:hover{background:var(--ink);color:var(--white);border-color:var(--ink)}
.btn:hover::after{width:36px}
.btn.light{color:var(--white)}
.btn.light:hover{background:var(--white);color:var(--ink);border-color:var(--white)}
.night .btn{color:var(--night-ink)}
.night .btn:hover{background:var(--night-ink);color:var(--night);border-color:var(--night-ink)}
.btn.fill{background:var(--accent);border-color:var(--accent);color:var(--white)}
.btn.fill:hover{background:var(--accent-d);border-color:var(--accent-d)}
.btns{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:clamp(40px,5vw,56px)}

/* ── ヘッダー ── */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;color:var(--white);transition:background .6s var(--ease),color .6s,box-shadow .6s}
.hd .in{display:flex;align-items:center;justify-content:space-between;height:76px;padding-top:env(safe-area-inset-top,0px);padding-left:var(--gut);padding-right:max(20px,env(safe-area-inset-right,0px))}
.mark{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-family:var(--latin);font-weight:400;font-size:15px;letter-spacing:.2em;white-space:nowrap}
.mark svg{width:26px;height:26px;flex:none}
.menu-btn{appearance:none;background:none;border:0;color:inherit;cursor:pointer;display:flex;align-items:center;gap:14px;font-family:var(--latin);font-size:12px;letter-spacing:.3em;padding:12px 0 12px 12px}
.menu-btn i{position:relative;display:block;width:30px;height:9px}
.menu-btn i::before,.menu-btn i::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.menu-btn i::before{top:0}.menu-btn i::after{top:8px}
.hd.scrolled,.hd.solid{background:rgba(244,239,233,.94);color:var(--ink);box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hd.scrolled .in{height:64px}
body.nav-open .hd{background:transparent;color:var(--night-ink);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
body.nav-open .menu-btn i::before{top:4px;transform:rotate(20deg)}
body.nav-open .menu-btn i::after{top:4px;transform:rotate(-20deg)}

/* 全画面メニュー */
.gnav{position:fixed;inset:0;z-index:40;background:var(--night2);color:var(--night-ink);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .7s var(--ease),visibility .7s;overflow-y:auto;padding:100px var(--gut) 60px}
body.nav-open .gnav{opacity:1;visibility:visible}
body.nav-open{overflow:hidden}
.gnav ul{display:grid;gap:4px;text-align:center}
.gnav a{display:block;padding:10px 8px;text-decoration:none;font-family:var(--serif);font-size:17px;letter-spacing:.16em;color:var(--night-ink);transition:color .4s}
.gnav a small{display:block;font-family:var(--latin);font-size:10.5px;letter-spacing:.3em;color:var(--night-mute);text-transform:uppercase;line-height:1.6}
.gnav a:hover,.gnav a[aria-current]{color:#D9B59F}
.gnav li{opacity:0;transform:translateY(12px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
body.nav-open .gnav li{opacity:1;transform:none}
body.nav-open .gnav li:nth-child(2){transition-delay:.04s}body.nav-open .gnav li:nth-child(3){transition-delay:.08s}
body.nav-open .gnav li:nth-child(4){transition-delay:.12s}body.nav-open .gnav li:nth-child(5){transition-delay:.16s}
body.nav-open .gnav li:nth-child(6){transition-delay:.2s}body.nav-open .gnav li:nth-child(7){transition-delay:.24s}
body.nav-open .gnav li:nth-child(8){transition-delay:.28s}body.nav-open .gnav li:nth-child(9){transition-delay:.32s}

/* ── トップの大きな写真 ── */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:var(--night2);color:var(--white)}
.hero .sl{position:absolute;inset:0;opacity:0;transition:opacity 2.6s ease}
.hero .sl.on{opacity:1}
.hero .sl img{width:100%;height:100%;object-fit:cover;filter:saturate(.62) brightness(.78) contrast(.96);transform:scale(1.08);transition:transform 10s linear}
.hero .sl.on img{transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,13,.42) 0%,rgba(20,16,13,.22) 40%,rgba(20,16,13,.55) 100%);pointer-events:none}
.hero .cap{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:90px var(--gut) 80px}
.hero .cap svg{width:44px;height:44px;margin-bottom:26px;opacity:.9}
.hero h1{font-family:var(--latin);font-weight:300;font-size:clamp(26px,5.4vw,58px);letter-spacing:.2em;line-height:1.25;padding-left:.2em}
.hero .sub{margin-top:18px;font-family:var(--latin);font-size:12px;letter-spacing:.42em;text-transform:uppercase;opacity:.86;padding-left:.42em}
.hero .rule{width:1px;height:46px;background:rgba(255,255,255,.55);margin:30px auto}
.hero .btns{margin-top:0}
.hero .scroll{position:absolute;z-index:2;left:50%;bottom:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--latin);font-size:10px;letter-spacing:.3em;opacity:.8}
.hero .scroll i{display:block;width:1px;height:56px;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,0));animation:drip 2.8s var(--ease) infinite;transform-origin:top}
@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.hero .count{position:absolute;z-index:2;right:max(20px,env(safe-area-inset-right,0px));bottom:30px;font-family:var(--latin);font-size:11px;letter-spacing:.24em;opacity:.75}

/* ── 下層ページの写真見出し ── */
.phead{position:relative;height:clamp(340px,52vw,560px);overflow:hidden;background:var(--night2);color:var(--white);display:flex;align-items:center;justify-content:center;text-align:center}
.phead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.6) brightness(.72)}
.phead::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,13,.45),rgba(20,16,13,.3) 50%,rgba(20,16,13,.5))}
.phead .t{position:relative;z-index:2;padding:60px var(--gut) 0}
.phead .en{display:block;font-family:var(--latin);font-weight:300;font-size:clamp(30px,5vw,54px);letter-spacing:.26em;text-transform:uppercase;line-height:1.2;padding-left:.26em}
.phead .ja{display:block;margin-top:16px;font-family:var(--serif);font-size:14px;letter-spacing:.3em;opacity:.9}
.crumb{font-size:11.5px;letter-spacing:.12em;color:var(--mute);padding-top:22px}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--accent)}

/* ── 全幅の写真帯 ── */
.bleed{position:relative;height:clamp(280px,52vw,640px);overflow:hidden;background:var(--night2)}
.bleed img{width:100%;height:118%;object-fit:cover;filter:saturate(.62) brightness(.92);will-change:transform}

/* ── 文章 ── */
.lead{text-align:center;font-family:var(--serif);font-size:clamp(15.5px,1.9vw,18px);line-height:2.5;letter-spacing:.14em;color:var(--ink)}
.lead p+p{margin-top:2.1em}
.prose p{margin-bottom:1.6em}
.prose p:last-child{margin-bottom:0}
.note{font-size:12.5px;color:var(--mute);line-height:1.9}
.quote{margin:2.6em 0;padding:2em 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;font-family:var(--serif);font-size:clamp(15px,1.8vw,17px);line-height:2.3;letter-spacing:.12em;color:var(--ink)}

/* ── 写真と文章の重なり（今のデザインから） ── */
.ov{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center}
.ov .pic{grid-column:1;grid-row:1;aspect-ratio:4/5;overflow:hidden}
.ov .pic img{width:100%;height:100%;object-fit:cover;filter:saturate(.65)}
.ov .card{grid-column:1/3;grid-row:1;margin-left:48%;background:var(--white);padding:clamp(36px,5vw,64px);position:relative;z-index:2;min-width:0}
.ov.r{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.ov.r .pic{grid-column:2}
.ov.r .card{margin-left:0;margin-right:48%}
@media (max-width:820px){
  .ov,.ov.r{grid-template-columns:minmax(0,1fr)}
  .ov .pic,.ov.r .pic{grid-column:1;aspect-ratio:4/3;margin-right:12%}
  .ov.r .pic{margin-right:0;margin-left:12%}
  .ov .card,.ov.r .card{grid-column:1;grid-row:2;margin:-56px 0 0 8%}
  .ov.r .card{margin:-56px 8% 0 0}
}

/* ── サービス（ATHAの並び） ── */
.svc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(56px,7vw,96px) clamp(28px,4vw,56px)}
.svc .it{text-align:center;min-width:0}
.svc .ph{display:block;aspect-ratio:3/2;overflow:hidden;margin-bottom:30px}
.svc .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.62);transition:transform 1.6s var(--ease)}
.svc .it:hover .ph img{transform:scale(1.04)}
.svc .en{font-family:var(--latin);font-size:12px;letter-spacing:.34em;color:var(--accent);text-transform:uppercase}
.svc h3{font-family:var(--serif);font-weight:500;font-size:19px;letter-spacing:.16em;color:var(--ink);margin:8px 0 14px}
.svc p{font-size:14px;color:var(--ink2);min-height:3.6em}
.svc .btn{margin-top:22px;min-width:200px}
@media (max-width:700px){.svc{grid-template-columns:minmax(0,1fr)}.svc p{min-height:0}}

/* ── スケジュール画像の額 ── */
.frame img{width:100%}
.frame{max-width:440px;margin:0 auto;padding:14px;background:var(--white);box-shadow:0 30px 60px -30px rgba(43,37,33,.35)}

/* ── ブログ（行の一覧） ── */
.jlist{border-top:1px solid var(--line)}
.jlist a{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:28px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background .5s}
.jlist a:hover{background:rgba(255,255,255,.45)}
.jlist .ph{display:block;aspect-ratio:3/2;overflow:hidden}
.jlist .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.6)}
.jlist time{display:block;font-family:var(--latin);font-size:12px;letter-spacing:.18em;color:var(--mute)}
.jlist b{display:block;font-family:var(--serif);font-weight:500;font-size:16px;letter-spacing:.08em;color:var(--ink);line-height:1.8;margin-top:4px}
.jlist .go{font-family:var(--latin);font-size:11px;letter-spacing:.24em;color:var(--mute)}
@media (max-width:640px){.jlist a{grid-template-columns:104px minmax(0,1fr);gap:18px}.jlist .go{display:none}.jlist b{font-size:14.5px}}

/* ブログ一覧ページ（2列） */
.jgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 40px}
.jgrid a{display:block;text-decoration:none;min-width:0}
.jgrid .ph{display:block;aspect-ratio:3/2;overflow:hidden;margin-bottom:20px}
.jgrid .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.6);transition:transform 1.6s var(--ease)}
.jgrid a:hover .ph img{transform:scale(1.04)}
.jgrid time{font-family:var(--latin);font-size:12px;letter-spacing:.18em;color:var(--mute)}
.jgrid b{display:block;font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:.08em;color:var(--ink);line-height:1.8;margin-top:6px}
@media (max-width:640px){.jgrid{grid-template-columns:minmax(0,1fr);gap:48px}}

/* ── クラス：流れ ── */
.flowbar{display:flex;height:4px;margin:0 0 54px;background:var(--line)}
.flowbar span{display:block;height:100%}
.flowbar span:nth-child(1){flex:10;background:#C9A893}
.flowbar span:nth-child(2){flex:65;background:var(--accent)}
.flowbar span:nth-child(3){flex:7.5;background:#7D6152}
.flowbar span:nth-child(4){flex:7.5;background:var(--ink)}
.flowbar span+span{margin-left:3px}
.flow{border-top:1px solid var(--line)}
.flow li{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:20px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line)}
.flow .n{font-family:var(--latin);font-weight:300;font-size:30px;letter-spacing:.06em;color:var(--accent);line-height:1}
.flow .tx{font-family:var(--serif);font-size:16.5px;letter-spacing:.1em;color:var(--ink);line-height:1.9}
.flow .tx small{display:block;font-family:var(--sans);font-size:13px;letter-spacing:.06em;color:var(--mute)}
.flow .m{font-family:var(--latin);font-size:15px;letter-spacing:.12em;color:var(--ink2);white-space:nowrap}
@media (max-width:560px){.flow li{grid-template-columns:44px minmax(0,1fr);gap:4px 14px}.flow .n{font-size:24px}.flow .m{grid-column:2;font-size:13.5px}}

/* ── クラス：時間割 ── */
.tt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,48px)}
.tt .box{background:var(--white);padding:clamp(34px,4.5vw,54px) clamp(24px,4vw,48px);min-width:0}
.tt .box h3{text-align:center;font-family:var(--serif);font-weight:500;font-size:20px;letter-spacing:.18em;color:var(--ink)}
.tt .box .en{display:block;text-align:center;font-family:var(--latin);font-size:11.5px;letter-spacing:.34em;color:var(--accent);margin-bottom:6px}
.tt .box .desc{text-align:center;font-size:13.5px;color:var(--mute);margin-top:10px}
.tt dl{margin-top:26px;border-top:1px solid var(--line)}
.tt dl div{display:grid;grid-template-columns:5.2em minmax(0,1fr);gap:12px;padding:15px 4px;border-bottom:1px solid var(--line);align-items:baseline}
.tt dt{font-family:var(--serif);font-size:15px;letter-spacing:.14em;color:var(--ink)}
.tt dd{font-family:var(--latin);font-size:16px;letter-spacing:.1em;color:var(--ink2);text-align:right}
.tt dd span{display:block}
@media (max-width:760px){.tt{grid-template-columns:minmax(0,1fr)}}

/* ── 料金 ── */
.basic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.basic div{padding:44px 20px;text-align:center;min-width:0}
.basic div+div{border-left:1px solid var(--line)}
.basic h3{font-family:var(--serif);font-weight:500;font-size:14.5px;letter-spacing:.16em;color:var(--ink2)}
.yen{display:block;margin-top:10px;font-family:var(--latin);font-weight:300;font-size:clamp(40px,6vw,58px);letter-spacing:.04em;color:var(--ink);line-height:1.2}
.yen small{font-family:var(--serif);font-size:15px;letter-spacing:.1em;margin-left:4px}
@media (max-width:560px){.basic{grid-template-columns:minmax(0,1fr)}.basic div+div{border-left:0;border-top:1px solid var(--line)}}

.tix{border-top:1px solid var(--line)}
.tix li{display:grid;grid-template-columns:minmax(0,9em) minmax(0,12em) minmax(0,1fr);gap:24px;align-items:center;padding:30px 4px;border-bottom:1px solid var(--line)}
.tix .k{font-family:var(--serif);font-size:17px;letter-spacing:.12em;color:var(--ink)}
.tix .k small{display:block;font-size:12px;color:var(--mute);letter-spacing:.1em}
.tix .p{font-family:var(--latin);font-weight:300;font-size:30px;letter-spacing:.03em;color:var(--ink);line-height:1.3}
.tix .p small{font-family:var(--serif);font-size:13px;margin-left:2px}
.tix .p em{display:block;font-style:normal;font-family:var(--sans);font-size:12.5px;letter-spacing:.08em;color:var(--accent);margin-top:4px}
.tix .d{font-size:14px;color:var(--ink2)}
.tix li.pop{background:linear-gradient(90deg,rgba(168,123,99,.09),rgba(168,123,99,0))}
@media (max-width:680px){.tix li{grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;padding:26px 2px}.tix .d{grid-column:1/-1}.tix .p{text-align:right}}

.cond{background:var(--night);color:var(--night-ink);padding:clamp(34px,5vw,56px) clamp(24px,5vw,60px);margin-top:44px}
.cond h3{font-family:var(--latin);font-size:12px;letter-spacing:.34em;color:#D9B59F;margin-bottom:18px}
.cond li{position:relative;padding-left:1.4em;font-family:var(--serif);font-size:14.5px;line-height:2.1;letter-spacing:.08em}
.cond li+li{margin-top:1.1em}
.cond li::before{content:"※";position:absolute;left:0;color:var(--night-mute)}

.rows{display:grid;gap:0;border-top:1px solid var(--line)}
.rows>div{display:grid;grid-template-columns:minmax(0,17em) minmax(0,1fr);gap:20px;padding:24px 4px;border-bottom:1px solid var(--line)}
.rows dt{font-family:var(--serif);font-size:15.5px;letter-spacing:.1em;color:var(--ink)}
.rows dd{font-size:14.5px;color:var(--ink2)}
.tag{display:inline-block;font-size:11.5px;letter-spacing:.12em;border:1px solid var(--line);padding:1px 10px;color:var(--mute)}
@media (max-width:600px){.rows>div{grid-template-columns:minmax(0,1fr);gap:4px}}
.subh{display:flex;align-items:baseline;gap:18px;margin:0 0 22px}
.subh b{font-family:var(--serif);font-weight:500;font-size:19px;letter-spacing:.16em;color:var(--ink)}
.subh span{font-family:var(--latin);font-size:11.5px;letter-spacing:.32em;color:var(--accent)}
.block+.block{margin-top:clamp(64px,8vw,96px)}

/* ── プロフィール ── */
.pf{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(32px,6vw,90px)}
.pf .pic{position:relative}
.pf .pic img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.7)}
.pf .pic::before{content:"";position:absolute;inset:22px -22px -22px 22px;border:1px solid var(--night-line);z-index:0}
.pf .pic img{position:relative;z-index:1}
.pf .lbl{font-family:var(--latin);font-size:12px;letter-spacing:.4em;color:#D9B59F}
.pf .name{font-family:var(--latin);font-weight:300;font-size:clamp(48px,8vw,96px);letter-spacing:.16em;color:var(--white);line-height:1.1;margin:18px 0 6px}
.pf .role{font-family:var(--latin);font-style:italic;font-weight:300;font-size:18px;letter-spacing:.14em;color:var(--night-mute)}
.pf .ttl{margin-top:30px;padding-top:26px;border-top:1px solid var(--night-line);font-family:var(--serif);font-size:15px;letter-spacing:.18em;line-height:2.1}
@media (max-width:760px){.pf{grid-template-columns:minmax(0,1fr)}.pf .pic{margin-right:22px}}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 48px}
.facts section{min-width:0}
.facts h3{display:flex;align-items:baseline;gap:14px;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.facts h3 b{font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:.16em;color:var(--ink)}
.facts h3 span{font-family:var(--latin);font-weight:400;font-size:11px;letter-spacing:.3em;color:var(--accent)}
.facts li{position:relative;padding-left:1.2em;font-size:14px;line-height:1.95;margin-bottom:.7em}
.facts li::before{content:"";position:absolute;left:0;top:.95em;width:6px;height:1px;background:var(--accent)}
@media (max-width:760px){.facts{grid-template-columns:minmax(0,1fr)}}

/* ── 予約・お問合わせの箱 ── */
.panel{background:var(--white);padding:clamp(36px,5vw,60px) clamp(24px,5vw,60px);text-align:center}
.panel h3{font-family:var(--serif);font-weight:500;font-size:18px;letter-spacing:.16em;color:var(--ink);margin-bottom:12px}
.panel .btns{margin-top:28px}
.tel{font-family:var(--latin);font-weight:300;font-size:clamp(28px,4vw,38px);letter-spacing:.12em;color:var(--ink);user-select:all}
.ib h3{font-family:var(--serif);font-weight:500;font-size:17.5px;letter-spacing:.14em;color:var(--ink);padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.ib+.ib{margin-top:56px}
.ib a{color:var(--accent-d)}

/* ── アクセス ── */
.map{position:relative;aspect-ratio:16/8;background:var(--paper2)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.75) sepia(.12) contrast(.95)}
@media (max-width:640px){.map{aspect-ratio:4/3.4}}
.addr{text-align:center}
.addr .walk{font-family:var(--serif);font-size:15px;letter-spacing:.2em;color:var(--accent-d)}
.addr p.a{font-family:var(--serif);font-size:clamp(16px,2vw,19px);letter-spacing:.12em;color:var(--ink);margin-top:10px;line-height:1.9}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:56px}
.pair figure{min-width:0}
.pair img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.65)}
.pair figcaption{margin-top:12px;font-size:13.5px;color:var(--ink2);text-align:center}
.steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px}
.steps li{min-width:0}
.steps img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(.65)}
.steps .s{display:flex;gap:14px;align-items:baseline;margin-top:16px}
.steps .s b{font-family:var(--latin);font-weight:300;font-size:28px;color:var(--accent);line-height:1}
.steps .s p{font-size:14px;color:var(--ink2);line-height:1.9}
@media (max-width:640px){.pair,.steps{grid-template-columns:minmax(0,1fr)}.pair{gap:36px}}

/* ── フッター ── */
.ft{background:var(--night2);color:var(--night-mute);padding-block:clamp(72px,9vw,110px) 40px;font-size:13px;line-height:2}
.ft .grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:start}
.ft .mk{display:flex;align-items:center;gap:12px;font-family:var(--latin);font-size:17px;letter-spacing:.2em;color:var(--night-ink);margin-bottom:22px}
.ft .mk svg{width:28px;height:28px}
.ft nav ul{display:grid;grid-template-columns:repeat(2,auto);gap:4px 44px}
.ft nav a{text-decoration:none;color:var(--night-mute);font-size:13px;transition:color .4s}
.ft nav a:hover{color:var(--night-ink)}
.ft .cp{margin-top:64px;padding-top:24px;border-top:1px solid var(--night-line);font-family:var(--latin);font-size:11px;letter-spacing:.2em}
@media (max-width:720px){.ft .grid{grid-template-columns:minmax(0,1fr)}}

/* ── ふわっと現れる（ゆっくり・静かに） ── */
.js [data-rv]{opacity:0;transition:opacity 1.6s var(--ease),transform 1.6s var(--ease),filter 1.6s ease;transition-delay:var(--d,0s)}
.js [data-rv="up"]{transform:translateY(28px)}
.js [data-rv="left"]{transform:translateX(-36px)}
.js [data-rv="right"]{transform:translateX(36px)}
.js [data-rv="fade"]{filter:blur(3px)}
.js [data-rv].shown{opacity:1;transform:none;filter:none}
@media (max-width:640px){.js [data-rv="left"]{transform:translateX(-18px)}.js [data-rv="right"]{transform:translateX(18px)}}
@media (prefers-reduced-motion:reduce){
  .js [data-rv]{opacity:1;transform:none;filter:none;transition:none}
  .hero .sl img{transition:none;transform:none}
  .hero .scroll i{animation:none}
}

/* スマホの細かい調整 */
@media (max-width:560px){
  .hero .btn{min-width:0;padding:14px 18px;font-size:12px;letter-spacing:.08em;white-space:nowrap}
  .hero .btn::after{display:none}
  .lead{font-size:14px;letter-spacing:.03em;line-height:2.4}
  .quote{font-size:14.5px;letter-spacing:.06em}
  .btn{min-width:200px}
}
