/* =========================================================
   紫雲山 來迎寺 — エディトリアル版（土と風 参照）
   大きな余白 / 広い文字間 / ダイナミックな写真表現
   ※ anim.js が参照するクラス名は維持
   ========================================================= */

:root{
  --sumi:#221c19;
  --sumi-soft:#4a423b;
  --washi:#f4eee2;          /* やや明るい和紙 */
  --washi-deep:#e8ddc8;
  --gofun:#fbf8f1;
  --murasaki:#45356b;
  --murasaki-deep:#251a3d;
  --murasaki-night:#15102a;
  --murasaki-light:#9482b8;
  --kin:#b8924a;
  --kin-light:#d9b878;
  --kin-bright:#ecd49a;
  --dou:#a5532b;
  --dou-light:#c2774b;
  --shu:#b5472f;
  --line:rgba(34,28,25,.16);
  --line-soft:rgba(34,28,25,.09);

  --serif:"Shippori Mincho B1","Shippori Mincho",serif;
  --gothic:"Zen Kaku Gothic New",sans-serif;
  --brush:"Yuji Syuku",serif;

  --maxw:1280px;
  --gut:clamp(1.4rem,6vw,7rem);
  --ease-settle:cubic-bezier(.16,1,.3,1);
  --ease-cinema:cubic-bezier(.22,.61,.18,1);
  --ease-overshoot:cubic-bezier(.34,1.4,.42,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--gothic);color:var(--sumi);background:var(--washi);
  line-height:2.15;letter-spacing:.085em;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

/* 和紙テクスチャ */
body::before{
  content:"";position:fixed;inset:0;z-index:9990;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.04;mix-blend-mode:multiply;
}

/* ============ タイポ ============ */
.mincho{font-family:var(--serif)}
.brush{font-family:var(--brush);letter-spacing:.1em}
.vlabel{
  writing-mode:vertical-rl;font-family:var(--serif);
  letter-spacing:.42em;font-size:.74rem;color:var(--dou);
}
.kicker{
  font-family:var(--serif);font-size:.72rem;letter-spacing:.62em;
  color:var(--dou);text-indent:.62em;display:flex;align-items:center;gap:1.4rem;
}
.kicker::before{content:"";width:46px;height:1px;background:var(--dou);opacity:.65}
.kicker.center{justify-content:center}
.idx{font-family:var(--brush);font-size:.84rem;letter-spacing:.1em;color:var(--kin)}

h2.title{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(2rem,6.2vw,3.6rem);line-height:1.5;letter-spacing:.13em;
  text-wrap:balance;
}
h2.title .accent{color:var(--dou)}
.lead{
  font-family:var(--serif);font-size:clamp(1.04rem,2.6vw,1.32rem);
  line-height:2.5;letter-spacing:.12em;color:var(--sumi);max-width:34em;text-wrap:pretty;
}
.body-txt{
  font-size:clamp(.92rem,2.3vw,1rem);line-height:2.5;letter-spacing:.1em;
  color:var(--sumi-soft);max-width:40em;text-wrap:pretty;
}

/* ============ レイアウト ============ */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
section{position:relative}
.pad{padding-block:clamp(5rem,12vw,10.5rem)}
.pad-sm{padding-block:clamp(3.5rem,9vw,7rem)}
.stack-lg{display:flex;flex-direction:column;gap:clamp(2.6rem,7vw,5rem)}
.rule{height:1px;background:var(--line);border:0;width:100%}
.rule-gold{height:1px;background:linear-gradient(90deg,transparent,var(--kin),transparent);opacity:.55;border:0}

/* ====================================================
   ローディング（円相）
   ==================================================== */
body.loading{overflow:hidden;height:100vh}
.loader{
  position:fixed;inset:0;z-index:9999;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.8rem;
  background:radial-gradient(140% 110% at 50% 34%,#2c2150 0%,var(--murasaki-deep) 48%,var(--murasaki-night) 80%,#0b0818 100%);
  transition:opacity 1.1s ease,visibility 1.1s;
}
.loader.done{opacity:0;visibility:hidden}
.loader__enso{position:relative;width:min(58vw,260px);aspect-ratio:1}
.loader__enso svg{width:100%;height:100%;overflow:visible;transform:rotate(-96deg)}
.loader__enso .ring{
  fill:none;stroke:url(#ensoGrad);stroke-width:7;stroke-linecap:round;
  stroke-dasharray:565;stroke-dashoffset:565;
  filter:drop-shadow(0 2px 12px rgba(0,0,0,.45));
  animation:ensoDraw 2s cubic-bezier(.55,.06,.32,1) .35s forwards;
}
@keyframes ensoDraw{to{stroke-dashoffset:46}}
.loader__enso .ink{
  fill:none;stroke:url(#ensoGrad);stroke-width:2.4;stroke-linecap:round;opacity:.5;
  stroke-dasharray:565;stroke-dashoffset:565;
  animation:ensoDraw2 2s cubic-bezier(.55,.06,.32,1) .42s forwards;
}
@keyframes ensoDraw2{to{stroke-dashoffset:54}}
.loader__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem}
.loader__name{font-family:var(--brush);font-size:1.05rem;letter-spacing:.34em;color:#fff;text-indent:.34em;white-space:nowrap;
  opacity:0;transform:translateY(8px);text-shadow:0 3px 14px rgba(0,0,0,.5);animation:ensoRise 1s ease 2s forwards}
@keyframes ensoRise{to{opacity:1;transform:none}}
.loader__cap{font-family:var(--serif);font-size:.6rem;letter-spacing:.55em;color:var(--kin-light);
  opacity:0;text-indent:.55em;animation:ensoRise 1.1s ease 2.35s forwards}
/* v2 はロゴ非表示 */
.loader__logo{display:none}

/* ====================================================
   ナビ / メニュー
   ==================================================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem clamp(1.2rem,5vw,3.4rem);
  transition:background .6s ease,box-shadow .6s ease,padding .5s ease;
}
.nav.scrolled{background:rgba(244,238,226,.9);backdrop-filter:blur(12px);
  box-shadow:0 1px 0 var(--line-soft);padding-block:1rem}
.nav__brand{display:flex;align-items:baseline;gap:.7rem;min-width:0}
.nav__brand img{display:none}
.nav__brand .nm{font-family:var(--serif);font-weight:600;font-size:1.05rem;letter-spacing:.34em;color:var(--gofun);
  transition:color .6s;text-indent:.34em}
.nav__brand .nm small{font-family:var(--serif);font-size:.6rem;letter-spacing:.3em;opacity:.75;margin-left:.4rem}
.nav.scrolled .nav__brand .nm{color:var(--sumi)}

.nav__right{display:flex;align-items:center;gap:1.2rem}
.nav__tel{display:none;align-items:center;gap:.5rem;font-family:var(--serif);font-weight:600;
  font-size:1.02rem;letter-spacing:.12em;color:var(--gofun);transition:color .6s}
.nav.scrolled .nav__tel{color:var(--dou)}
.nav__tel svg{width:14px;height:14px}

.burger{position:relative;z-index:1002;width:52px;height:44px;border:0;background:transparent;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}
.burger span{display:block;width:30px;height:1.5px;background:var(--gofun);
  transition:transform .5s var(--ease-settle),opacity .3s,background .6s}
.nav.scrolled .burger span{background:var(--sumi)}
.menu-open .burger{opacity:0;pointer-events:none}
.burger{transition:opacity .3s}
.menu-open .burger span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}

.menu{
  position:fixed;inset:0;z-index:1001;
  background:radial-gradient(120% 95% at 72% 0%,var(--murasaki) 0%,var(--murasaki-deep) 46%,var(--murasaki-night) 100%);
  clip-path:circle(0% at calc(100% - 46px) 34px);transition:clip-path .8s var(--ease-settle);
  display:flex;flex-direction:column;justify-content:flex-start;
  padding:4.6rem clamp(1.6rem,9vw,7rem) 2rem;pointer-events:none;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.menu-open .menu{clip-path:circle(160% at calc(100% - 46px) 34px);pointer-events:auto}
.menu__close{
  position:absolute;top:1.4rem;right:clamp(1.2rem,5vw,3.4rem);z-index:1003;
  width:52px;height:52px;border:1px solid rgba(255,255,255,.28);border-radius:50%;
  background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.7) rotate(-30deg);transition:opacity .5s ease .35s,transform .6s var(--ease-overshoot) .35s,background .35s,border-color .35s;
}
.menu__close span{position:absolute;width:22px;height:1.5px;background:var(--gofun);transition:background .35s}
.menu__close span:nth-child(1){transform:rotate(45deg)}
.menu__close span:nth-child(2){transform:rotate(-45deg)}
.menu__close:hover{background:rgba(255,255,255,.1);border-color:rgba(217,184,120,.6)}
.menu__close:hover span{background:var(--kin-light)}
.menu-open .menu__close{opacity:1;transform:none}
.menu__inner{display:flex;flex-direction:column;max-width:var(--maxw);margin:0 auto;width:100%}
@supports (height: 100dvh){.menu{max-height:100dvh}}
@media (max-height:720px){
  .menu{padding-top:4rem}
  .menu__link{font-size:clamp(.96rem,4vw,1.5rem);padding:.5rem 0}
  .menu__foot{margin-top:1.4rem!important}
}
@media (max-height:560px){
  .menu__link{font-size:.96rem;padding:.42rem 0}
}
.menu__link{
  font-family:var(--serif);color:var(--gofun);font-weight:500;
  font-size:clamp(1.02rem,4.4vw,1.85rem);letter-spacing:.12em;
  padding:.6rem 0;display:flex;align-items:baseline;gap:1rem;
  border-bottom:1px solid rgba(255,255,255,.1);
  opacity:0;transform:translateY(20px);
}
.menu__link .no{font-family:var(--brush);font-size:.82rem;color:var(--kin-light);min-width:2.6em}
.menu__link .en{font-family:var(--serif);font-size:.66rem;letter-spacing:.4em;color:var(--murasaki-light);margin-left:auto;align-self:center}
.menu-open .menu__link{opacity:1;transform:none;transition:opacity .7s var(--ease-settle),transform .8s var(--ease-settle)}
.menu-open .menu__link:nth-child(1){transition-delay:.18s}
.menu-open .menu__link:nth-child(2){transition-delay:.22s}
.menu-open .menu__link:nth-child(3){transition-delay:.28s}
.menu-open .menu__link:nth-child(4){transition-delay:.34s}
.menu-open .menu__link:nth-child(5){transition-delay:.40s}
.menu-open .menu__link:nth-child(6){transition-delay:.46s}
.menu-open .menu__link:nth-child(7){transition-delay:.52s}
.menu-open .menu__link:nth-child(8){transition-delay:.58s}
.menu__link.active .no{color:var(--kin-bright)}
.menu__link:hover{color:#fff}

.menu__foot{margin-top:2.8rem;display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem 2rem;
  opacity:0;transition:opacity .7s .55s}
.menu-open .menu__foot{opacity:1}
.menu__foot .tel{font-family:var(--serif);color:var(--gofun);font-size:1.5rem;font-weight:600;letter-spacing:.06em}
.menu__foot .tel small{display:block;font-size:.6rem;letter-spacing:.4em;color:var(--kin-light)}
.anim-toggle{display:inline-flex;align-items:center;gap:.8rem;color:var(--gofun);font-family:var(--serif);font-size:.78rem;letter-spacing:.24em}
.anim-toggle .sw{position:relative;width:62px;height:28px;border-radius:999px;cursor:pointer;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);transition:background .4s}
.anim-toggle .sw::after{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;
  background:linear-gradient(150deg,var(--kin-light),var(--dou));transition:transform .45s var(--ease-overshoot);box-shadow:0 2px 8px rgba(0,0,0,.4)}
body.anim-bold .anim-toggle .sw{background:rgba(217,184,120,.32)}
body.anim-bold .anim-toggle .sw::after{transform:translateX(34px)}
.anim-toggle .lbls{display:flex;gap:.5rem}
.anim-toggle .lbls span{opacity:.4;transition:opacity .3s}
body:not(.anim-bold) .anim-toggle .lbls .soft{opacity:1;color:var(--kin-light)}
body.anim-bold .anim-toggle .lbls .bold{opacity:1;color:var(--kin-light)}

/* ====================================================
   桜・紫雲 背景
   ==================================================== */
.sky{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.cloud{position:absolute;border-radius:50%;filter:blur(16px);opacity:0;
  background:radial-gradient(ellipse at 40% 40%,rgba(148,130,184,.5),rgba(69,53,107,.16) 55%,transparent 72%)}
.cloud.c1{width:64vw;height:26vw;left:-12vw;top:18%;animation:drift1 44s linear infinite}
.cloud.c2{width:52vw;height:22vw;right:-14vw;top:52%;animation:drift2 52s linear infinite;
  background:radial-gradient(ellipse at 60% 40%,rgba(196,122,75,.36),rgba(165,83,43,.1) 55%,transparent 72%)}
@keyframes drift1{0%{transform:translateX(-6vw);opacity:0}18%{opacity:.6}82%{opacity:.6}100%{transform:translateX(40vw);opacity:0}}
@keyframes drift2{0%{transform:translateX(8vw);opacity:0}20%{opacity:.5}80%{opacity:.5}100%{transform:translateX(-46vw);opacity:0}}

.petal{position:absolute;top:-8%;width:22px;height:30px;opacity:0;will-change:transform;pointer-events:none;z-index:2}
.petal svg{width:100%;height:100%;filter:drop-shadow(0 3px 6px rgba(0,0,0,.16))}
@keyframes petalfall{
  0%{transform:translateY(-10vh) translateX(0) rotate(0);opacity:0}
  8%{opacity:.95}50%{transform:translateY(50vh) translateX(8vw) rotate(220deg)}
  92%{opacity:.9}100%{transform:translateY(112vh) translateX(-6vw) rotate(420deg);opacity:0}}
body:not(.anim-bold) .petal{display:none}
body:not(.anim-bold) .cloud.c2{display:none}

/* ====================================================
   スクロール・リビール（編集的・大振り）
   ==================================================== */
[data-anim]{opacity:0}
[data-anim].in{opacity:1}
/* 写真ラッパー・地図はリビール不発時も必ず表示（空白防止）。動きはケンバーンズ(.kb img)で担保 */
.kb[data-anim]{opacity:1;transform:none}
.access__map[data-anim]{opacity:1;transform:none}
[data-anim="rise"]{transform:translateY(70px)}
[data-anim="rise"].in{transform:none;transition:opacity 1.2s var(--ease-cinema),transform 1.4s var(--ease-cinema)}
[data-anim="rise-sm"]{transform:translateY(38px)}
[data-anim="rise-sm"].in{transform:none;transition:opacity 1s var(--ease-cinema),transform 1.1s var(--ease-cinema)}
[data-anim="left"]{transform:translateX(-64px)}
[data-anim="left"].in{transform:none;transition:opacity 1.1s var(--ease-cinema),transform 1.3s var(--ease-cinema)}
[data-anim="right"]{transform:translateX(64px)}
[data-anim="right"].in{transform:none;transition:opacity 1.1s var(--ease-cinema),transform 1.3s var(--ease-cinema)}
/* カーテン（写真が下から立ち上がる）――透明度＋移動で確実に表示 */
[data-anim="curtain"]{transform:translateY(56px)}
[data-anim="curtain"].in{transform:none;transition:opacity 1.2s var(--ease-cinema),transform 1.4s var(--ease-cinema)}
/* ワイプ（左→右） */
[data-anim="wipe"]{transform:translateX(-48px)}
[data-anim="wipe"].in{transform:none;transition:opacity 1.2s var(--ease-cinema),transform 1.4s var(--ease-cinema)}
/* ズームイン */
[data-anim="zoom"]{transform:scale(1.16)}
[data-anim="zoom"].in{transform:scale(1);transition:opacity 1.2s ease,transform 1.8s var(--ease-cinema)}

/* 写真の内側ケンバーンズ（リビール後にゆっくり） */
.kb{overflow:hidden}
.kb img{transform:scale(1.06);transition:transform 8s ease}
.kb.in img,.kb[data-anim].in img{transform:scale(1.14)}

/* 筆致ワイプ（見出し） */
.brush-write{display:inline-block;clip-path:inset(0 100% 0 0);transition:clip-path 1.3s cubic-bezier(.7,0,.3,1)}
.brush-write.in{clip-path:inset(0 0 0 0)}
.ink-reveal>*{clip-path:circle(0% at 50% 60%);transition:clip-path 1.5s var(--ease-cinema)}
.ink-reveal.in>*{clip-path:circle(150% at 50% 60%)}

/* 控えめモード：変位と歪みを抑制 */
body:not(.anim-bold) [data-anim="rise"]{transform:translateY(40px)}
body:not(.anim-bold) [data-anim="left"]{transform:translateX(-32px)}
body:not(.anim-bold) [data-anim="right"]{transform:translateX(32px)}
body:not(.anim-bold) [data-anim="zoom"]{transform:scale(1.06)}
body:not(.anim-bold) .parallax,body:not(.anim-bold) [data-parallax]{transform:none!important}

/* ====================================================
   ボタン
   ==================================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  font-family:var(--serif);font-weight:600;letter-spacing:.14em;cursor:pointer;border:0;
  padding:1.15rem 2.6rem;font-size:1rem;position:relative;transition:transform .4s var(--ease-overshoot),box-shadow .4s,background .4s,color .4s}
.btn svg{width:17px;height:17px}
.btn--tel{background:var(--sumi);color:var(--gofun)}
.btn--tel:hover{transform:translateY(-3px);box-shadow:0 18px 40px -18px rgba(34,28,25,.8)}
.btn--tel .num{font-size:1.18rem;letter-spacing:.06em}
.btn--pet{background:linear-gradient(135deg,var(--dou),var(--dou-light))}
.btn--pet:hover{box-shadow:0 18px 40px -18px rgba(165,83,43,.85)}
/* FV：2つの電話を用途ラベル付きで横に並べる */
.hero__tels{display:flex;flex-wrap:wrap;gap:1rem}
.hero__tels .btn{flex-direction:column;align-items:flex-start;gap:.35rem;padding:.9rem 1.8rem}
.hero__tels .btn__tag{opacity:.85;letter-spacing:.2em}
.hero__telrow{display:inline-flex;align-items:center;gap:.55rem}
.btn--ghost{background:transparent;color:var(--gofun);border:1px solid rgba(255,255,255,.45)}
.btn--ghost:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.btn--line{background:transparent;color:var(--sumi);border:1px solid var(--sumi);padding:1rem 2.4rem}
.btn--line:hover{background:var(--sumi);color:var(--gofun);transform:translateY(-2px)}
.btn__tag{font-family:var(--gothic);font-size:.62rem;letter-spacing:.24em;opacity:.7}
.btn--sm{padding:.7rem 1.4rem;font-size:.9rem;letter-spacing:.1em}
.hero__links{display:flex;flex-wrap:wrap;gap:.7rem;flex-basis:100%;margin-top:.2rem}

/* ====================================================
   HERO（全幅写真・ダイナミック）
   ==================================================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;
  overflow:hidden;color:var(--gofun)}
.hero__photo{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero__photo img{width:100%;height:100%;object-fit:cover;object-position:center 42%;
  transform:scale(1.18);animation:heroZoom 18s var(--ease-cinema) .2s forwards}
@keyframes heroZoom{to{transform:scale(1.02)}}
.hero__photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,10,28,.6) 0%,rgba(37,26,61,.36) 42%,rgba(11,8,24,.84) 100%)}
.hero__content{position:relative;z-index:3;width:100%;max-width:var(--maxw);margin-inline:auto;
  padding:9rem var(--gut) 7rem}
.hero__eyebrow{font-family:var(--serif);font-size:clamp(.74rem,3vw,.96rem);letter-spacing:.56em;
  color:var(--kin-light);text-indent:.56em;margin-bottom:1.8rem}
.hero__brush{font-family:var(--brush);color:#fff;font-weight:400;
  font-size:clamp(3.4rem,17vw,8rem);letter-spacing:.16em;line-height:1.08;text-indent:.16em;
  text-shadow:0 8px 40px rgba(0,0,0,.55)}
.hero__read{font-family:var(--serif);letter-spacing:.5em;color:rgba(255,255,255,.8);
  font-size:clamp(.72rem,2.6vw,.92rem);margin-top:1.3rem;text-indent:.5em}
.hero__rule{width:54px;height:1px;background:var(--kin-light);margin:2.4rem 0;opacity:.7}
.hero__catch{font-family:var(--serif);font-weight:500;color:#fff;
  font-size:clamp(1.3rem,5vw,2.1rem);line-height:1.95;letter-spacing:.18em;text-shadow:0 4px 22px rgba(0,0,0,.5)}
.hero__poem{font-family:var(--serif);margin-top:1.8rem;font-size:clamp(.92rem,2.6vw,1.08rem);
  line-height:2.4;letter-spacing:.14em;color:rgba(255,255,255,.82);max-width:32em}
.hero__cta{margin-top:3rem;display:flex;flex-wrap:wrap;gap:1.1rem}
.scroll-cue{position:absolute;left:50%;bottom:1.8rem;z-index:4;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;color:rgba(255,255,255,.6);
  font-family:var(--serif);font-size:.6rem;letter-spacing:.46em;writing-mode:vertical-rl}
.scroll-cue .ln{width:1px;height:54px;background:linear-gradient(var(--kin-light),transparent);animation:cuemove 2.4s ease-in-out infinite}
@keyframes cuemove{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}50.1%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ====================================================
   想い（大きな余白の編集的バンド）
   ==================================================== */
.intro{background:var(--washi)}
.intro .wrap{display:grid;gap:clamp(2.4rem,6vw,4rem)}
.intro__label{display:flex;gap:1.4rem;align-items:flex-start}
.intro__lead{font-family:var(--serif);font-weight:500;
  font-size:clamp(1.5rem,6vw,2.6rem);line-height:2;letter-spacing:.16em;color:var(--sumi);text-wrap:balance}
.intro__lead .em{color:var(--dou)}
.intro__body{max-width:38em}
.intro__fig{position:relative;overflow:hidden;margin:0}
.intro__fig img{width:100%;height:clamp(300px,72vw,520px);object-fit:cover;object-position:center 42%}
.intro__fig figcaption{position:absolute;left:1rem;bottom:1rem;color:var(--gofun);
  writing-mode:vertical-rl;font-family:var(--serif);letter-spacing:.42em;font-size:.74rem;
  text-shadow:0 2px 10px rgba(0,0,0,.6)}

/* ====================================================
   全幅フォトバンド（ダイナミック）
   ==================================================== */
.band{position:relative;height:clamp(60vh,80vw,86vh);overflow:hidden;background:var(--murasaki-night)}
.band__media{position:absolute;inset:-12% 0;z-index:0}
.band__media img{width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(11,8,24,.25),rgba(11,8,24,.5))}
.band__cap{position:absolute;z-index:2;left:var(--gut);bottom:clamp(2rem,6vw,4.5rem);color:var(--gofun);max-width:30em}
.band__cap .vlabel{color:var(--kin-light);position:absolute;left:0;top:-13rem}
.band__cap h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,5vw,2.4rem);
  letter-spacing:.16em;line-height:1.7;text-shadow:0 4px 20px rgba(0,0,0,.5)}
.band__cap p{font-family:var(--serif);margin-top:1rem;font-size:.96rem;line-height:2.2;letter-spacing:.12em;color:rgba(255,255,255,.84)}

/* ====================================================
   樹木葬・合祀墓 ／ 納骨堂（人の納骨）
   ==================================================== */
.memorial{background:var(--washi)}
.memorial--alt{background:var(--gofun)}
.memorial__head{max-width:46em}
.memorial__head .lead{margin-top:1.8rem}
.showcase--rev .showcase__cap{order:-1}
.memorial__foot{margin-top:clamp(1.8rem,4vw,2.6rem);font-size:.86rem;line-height:2.1;letter-spacing:.08em;color:var(--sumi-soft)}

/* 二枚組メディア（納骨堂） */
.duo{display:grid;grid-template-columns:1fr;gap:clamp(.8rem,2.4vw,1.4rem)}
.duo__fig{position:relative;overflow:hidden;margin:0}
.duo__fig img{width:100%;height:clamp(300px,62vw,560px);object-fit:cover;display:block}
.duo__fig .vlabel{position:absolute;left:1rem;bottom:1rem;color:var(--gofun);z-index:2;text-shadow:0 2px 10px rgba(0,0,0,.6)}

/* 編集的な数字（区画数） */
.memorial__stat{margin-top:clamp(2.6rem,6vw,4rem);display:grid;gap:clamp(1.2rem,3vw,2.2rem);align-items:center}
.stat-fig{display:flex;align-items:baseline;gap:.5rem;color:var(--dou);font-family:var(--serif);line-height:1}
.stat-fig__lead{font-size:clamp(1.1rem,3vw,1.5rem);letter-spacing:.2em}
.stat-fig__num{font-size:clamp(4.6rem,17vw,8.5rem);font-weight:700;letter-spacing:.01em}
.stat-fig__unit{font-size:clamp(1.2rem,3.4vw,1.8rem);letter-spacing:.2em}
.memorial__stat .body-txt{max-width:36em}

.plans{margin-top:clamp(2.6rem,7vw,4.5rem);display:grid;gap:clamp(1.2rem,3vw,1.8rem)}
.plan{background:var(--gofun);border:1px solid var(--line);padding:clamp(2rem,5vw,3.2rem);position:relative;overflow:hidden;transition:box-shadow .5s,transform .5s var(--ease-cinema)}
.plan:hover{box-shadow:0 30px 70px -50px rgba(34,28,25,.5);transform:translateY(-2px)}
.memorial--alt .plan{background:var(--washi)}
.plan::before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:linear-gradient(90deg,var(--kin-light),var(--dou) 60%,transparent)}
.plan__row{display:flex;align-items:flex-end;justify-content:space-between;gap:1.4rem;flex-wrap:wrap}
.plan__tag{display:inline-block;font-family:var(--serif);font-size:.72rem;letter-spacing:.34em;color:var(--dou);
  padding-bottom:.5rem;margin-bottom:1.1rem;border-bottom:1px solid rgba(165,83,43,.32);text-indent:.34em}
.plan__name{font-family:var(--serif);font-size:clamp(1.15rem,3.4vw,1.5rem);font-weight:600;letter-spacing:.1em;line-height:1.7;color:var(--sumi)}
.plan__lead{font-size:.92rem;line-height:2.1;letter-spacing:.08em;color:var(--sumi-soft);margin-top:.6rem}
.plan__note{font-size:.9rem;line-height:2.2;letter-spacing:.08em;color:var(--sumi-soft);margin-top:1rem}
.plan__price{display:flex;align-items:baseline;gap:.25rem;font-family:var(--serif);white-space:nowrap}
.plan__price .yen{font-size:1.2rem;color:var(--dou)}
.plan__price .num{font-size:clamp(2.8rem,9vw,3.8rem);font-weight:700;color:var(--dou);line-height:1;letter-spacing:.02em}

/* タワー型：料金カード */
.tier-cards{margin-top:1.8rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:clamp(.7rem,2vw,1.1rem)}
.tier-card{background:var(--washi);border:1px solid var(--line);padding:1.5rem 1.2rem;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:.4rem}
.memorial--alt .tier-card{background:var(--gofun)}
.tier-card__n{font-family:var(--serif);font-weight:700;font-size:1.15rem;letter-spacing:.12em;color:var(--sumi)}
.tier-card__d{font-size:.76rem;letter-spacing:.04em;color:var(--sumi-soft)}
.tier-card__p{font-family:var(--serif);font-weight:800;font-size:clamp(1.8rem,6vw,2.3rem);letter-spacing:.01em;color:var(--dou);margin-top:.4rem;white-space:nowrap}
.tier-card__p .yen{font-size:.62em;font-weight:700;margin-right:.05em}

/* お品書き風 料金表（樹木葬・合祀墓） */
.pricelist{margin-top:clamp(2.6rem,7vw,4.5rem);max-width:820px}
.pricelist__group{padding-block:clamp(1.8rem,4vw,2.6rem);border-top:1px solid var(--line)}
.pricelist__group:last-of-type{border-bottom:1px solid var(--line)}
.pl-grouphead{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.pl-grouphead__title{font-family:var(--serif);font-weight:700;font-size:clamp(1.3rem,4vw,1.7rem);letter-spacing:.12em;color:var(--sumi)}
.pl-grouphead__note{font-family:var(--serif);font-size:.86rem;letter-spacing:.1em;color:var(--dou)}
.pl-row{display:flex;align-items:baseline;gap:.4rem;padding-block:.7rem}
.pl-row__name{font-family:var(--serif);font-weight:600;font-size:clamp(1.05rem,3vw,1.25rem);letter-spacing:.08em;color:var(--sumi);white-space:nowrap}
.pl-row__name small{font-family:var(--gothic);font-weight:400;font-size:.74rem;letter-spacing:.04em;color:var(--sumi-soft);margin-left:.7rem}
.pl-dots{flex:1 1 auto;align-self:flex-end;border-bottom:2px dotted rgba(165,83,43,.4);transform:translateY(-.42em);min-width:1.2rem}
.pl-price{font-family:var(--serif);font-weight:800;font-size:clamp(1.9rem,7vw,2.8rem);line-height:1;letter-spacing:.01em;color:var(--dou);white-space:nowrap}
.pl-price .yen{font-size:.5em;font-weight:700;margin-right:.06em;vertical-align:.06em}
.pl-incl{margin-top:1rem;font-size:.84rem;line-height:2;letter-spacing:.06em;color:var(--sumi-soft)}
@media(max-width:520px){
  .pl-row__name small{display:block;margin-left:0;margin-top:.2rem}
  .pl-row{flex-wrap:wrap}
  .pl-dots{min-width:.8rem}
}

/* 写真付き料金カード（納骨堂 A/B） */
.planx{margin-top:clamp(2.4rem,6vw,4rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(.9rem,2.5vw,2rem)}
.planx-card{background:var(--washi);border:1px solid var(--line);overflow:hidden;
  transition:box-shadow .5s,transform .5s var(--ease-cinema)}
.planx-card:hover{box-shadow:0 30px 70px -50px rgba(34,28,25,.5);transform:translateY(-3px)}
.planx-card__fig{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--washi-deep);display:flex;align-items:center;justify-content:center}
.planx-card__fig img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.planx-card__badge{position:absolute;left:0;top:1rem;background:var(--sumi);color:var(--gofun);
  font-family:var(--serif);font-weight:600;font-size:clamp(.7rem,2.4vw,.84rem);letter-spacing:.24em;text-indent:.24em;padding:.45rem 1.1rem .45rem .9rem}
.planx-card__body{padding:clamp(1.2rem,3.5vw,2rem);display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}
.planx-card__name{font-family:var(--serif);font-weight:600;font-size:clamp(.98rem,2.8vw,1.3rem);letter-spacing:.06em;color:var(--sumi);line-height:1.6}
.planx-card__price{display:flex;align-items:baseline;gap:.16rem;font-family:var(--serif);white-space:nowrap}
.planx-card__price .yen{font-size:1.1rem;color:var(--dou)}
.planx-card__price .num{font-size:clamp(1.9rem,7vw,3.1rem);font-weight:800;color:var(--dou);line-height:1}

/* ====================================================
   ペット納骨墓
   ==================================================== */
.pet{background:var(--gofun)}
.pet__head{max-width:46em}
.pet__head .lead{margin-top:1.8rem}

/* 主役：大きな写真＋オフセットキャプション */
.showcase{position:relative;margin-top:clamp(3rem,8vw,6rem)}
.showcase__fig{position:relative;overflow:hidden}
.showcase__fig>.vlabel{position:absolute;left:1rem;bottom:1rem;color:var(--gofun);z-index:2;text-shadow:0 2px 10px rgba(0,0,0,.6)}
.showcase__fig img{width:100%;height:clamp(360px,60vw,640px);object-fit:cover}
.showcase__cap{background:var(--sumi);color:var(--gofun);padding:clamp(1.8rem,4vw,2.8rem);
  display:flex;flex-direction:column;gap:.6rem}
.showcase__cap .idx{color:var(--kin-light)}
.showcase__cap h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.3rem,4vw,1.8rem);letter-spacing:.14em;line-height:1.7}
.showcase__cap p{font-size:.92rem;line-height:2.3;letter-spacing:.1em;color:rgba(255,255,255,.78)}

/* 特長：ゆったり縦リスト */
.points{margin-top:clamp(3.5rem,9vw,7rem);display:grid;gap:0}
.point{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.4rem,4vw,3rem);
  padding:clamp(2.2rem,5vw,3.4rem) 0;border-top:1px solid var(--line)}
.point:last-child{border-bottom:1px solid var(--line)}
.point__no{font-family:var(--serif);font-size:clamp(1.6rem,5vw,2.4rem);color:var(--dou);font-weight:500;letter-spacing:.1em;line-height:1}
.point__no small{display:block;font-family:var(--serif);font-size:.6rem;letter-spacing:.4em;color:var(--kin);margin-top:.6rem}
.point h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.2rem,3.4vw,1.5rem);letter-spacing:.12em;line-height:1.7;margin-bottom:.9rem}
.point p{max-width:34em}

/* ギャラリー：段違いオフセット */
.mosaic{margin-top:clamp(3.5rem,9vw,7rem);display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.7rem,2vw,1.4rem)}
.mosaic .m{overflow:hidden;background:var(--washi-deep)}
.mosaic .m img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-cinema)}
.mosaic .m:hover img{transform:scale(1.07)}
.mosaic .m1{aspect-ratio:3/4}
.mosaic .m2{aspect-ratio:3/4;margin-top:clamp(.8rem,3vw,2rem)}
.mosaic .m3{aspect-ratio:3/4}
.mosaic .m4{aspect-ratio:3/4;margin-top:clamp(.8rem,3vw,2rem)}
.mosaic .wide{grid-column:1/-1;aspect-ratio:16/9;margin-top:clamp(.7rem,2vw,1.4rem)}

/* ====================================================
   料金
   ==================================================== */
.price{background:radial-gradient(130% 90% at 50% 0%,var(--murasaki) 0%,var(--murasaki-deep) 55%,var(--murasaki-night) 100%);color:var(--gofun)}
.price .kicker{color:var(--kin-light)}.price .kicker::before{background:var(--kin-light)}
.price h2.title{color:#fff}.price .lead{color:rgba(255,255,255,.84)}
.price__grid{margin-top:clamp(3rem,8vw,5.5rem);display:grid;gap:clamp(1.4rem,4vw,2.4rem)}
.pcard{border:1px solid rgba(217,184,120,.32);padding:clamp(2.2rem,5vw,3.4rem);
  display:flex;flex-direction:column;gap:1.1rem;background:rgba(255,255,255,.04)}
.pcard__label{font-family:var(--serif);font-size:.72rem;letter-spacing:.4em;color:var(--kin-light);
  border:1px solid rgba(217,184,120,.42);padding:.35rem 1.1rem;align-self:flex-start}
.pcard__name{font-family:var(--serif);font-size:clamp(1.3rem,4vw,1.7rem);font-weight:500;letter-spacing:.14em}
.pcard__price{display:flex;align-items:baseline;gap:.4rem;font-family:var(--serif)}
.pcard__price .yen{font-size:1.1rem;color:var(--kin-light)}
.pcard__price .num{font-size:clamp(3rem,11vw,4.4rem);font-weight:600;color:#fff;line-height:1;letter-spacing:.02em}
.pcard__price .unit{font-size:.94rem;color:rgba(255,255,255,.7);letter-spacing:.1em}
.pcard__note{font-size:.9rem;line-height:2.2;letter-spacing:.08em;color:rgba(255,255,255,.76)}
.pcard--opt{background:linear-gradient(135deg,rgba(184,146,74,.14),rgba(165,83,43,.08))}
.price__foot{margin-top:2.4rem;font-size:.84rem;line-height:2;letter-spacing:.08em;color:rgba(255,255,255,.66)}
.price__cta{margin-top:2.6rem}

/* ====================================================
   ペット本堂葬儀
   ==================================================== */
.funeral{background:var(--gofun)}
.funeral__head{max-width:46em}
.funeral__head .lead{margin-top:1.8rem}
.fee{margin-top:clamp(3rem,8vw,5rem);border:1px solid var(--line);background:var(--washi);
  padding:clamp(2rem,6vw,3.6rem);position:relative;overflow:hidden}
.fee::before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:linear-gradient(90deg,var(--kin-light),var(--dou) 60%,transparent)}
.fee__label{font-family:var(--serif);font-size:.8rem;letter-spacing:.34em;color:var(--dou);
  padding-bottom:.7rem;margin-bottom:1.8rem;border-bottom:1px solid var(--line);text-indent:.34em}
.fee__calc{display:flex;align-items:center;justify-content:center;gap:clamp(1rem,4vw,2.6rem);flex-wrap:wrap;text-align:center}
.fee__item{display:flex;flex-direction:column;gap:.6rem}
.fee__name{font-family:var(--serif);font-size:clamp(.92rem,2.6vw,1.1rem);letter-spacing:.16em;color:var(--sumi-soft)}
.fee__val{font-family:var(--serif);font-weight:700;color:var(--sumi);font-size:clamp(2.6rem,11vw,4.6rem);line-height:1;letter-spacing:.02em}
.fee__val .yen{font-size:.46em;color:var(--dou);margin-right:.05em}
.fee__val--var{font-size:clamp(1.3rem,4.6vw,2rem);color:var(--dou);font-weight:600;align-self:center}
.fee__plus{font-family:var(--serif);font-size:clamp(1.6rem,6vw,2.6rem);color:var(--kin);line-height:1}
.fee__note{margin-top:1.8rem;font-size:.86rem;line-height:2.1;letter-spacing:.06em;color:var(--sumi-soft);text-align:center;max-width:40em;margin-inline:auto}
.fee__cta{margin-top:2rem;text-align:center}

/* ====================================================
   ペット訪問火葬
   ==================================================== */
.cremation{background:var(--washi)}
.cremation__head{max-width:46em}
.cremation__head .lead{margin-top:1.8rem}
.kaso-plans{margin-top:clamp(3rem,8vw,5.5rem);display:grid;gap:0}
.kaso-plan{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.2rem,4vw,2.4rem);align-items:center;
  padding:clamp(1.8rem,4.5vw,2.8rem) 0;border-top:1px solid var(--line)}
.kaso-plan:last-child{border-bottom:1px solid var(--line)}
.kaso-plan__icon{width:clamp(56px,12vw,82px);height:auto;flex:none}
.kaso-plan__body h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.2rem,3.6vw,1.6rem);letter-spacing:.14em;line-height:1.6;margin-bottom:.7rem;color:var(--sumi)}
.kaso-plan__body h3::before{content:"";display:inline-block;width:24px;height:1px;background:var(--dou);vertical-align:middle;margin-right:.9rem;margin-bottom:.2rem}
.kaso-plan__body p{font-size:.95rem;line-height:2.2;letter-spacing:.08em;color:var(--sumi-soft);max-width:38em}
.kaso-cta{margin-top:clamp(3rem,8vw,5rem);text-align:center;border-top:1px solid var(--line);padding-top:clamp(2.6rem,7vw,4rem)}
.kaso-cta__lbl{font-family:var(--serif);font-size:.84rem;letter-spacing:.3em;color:var(--dou);margin-bottom:1.4rem;text-indent:.3em}

/* ====================================================
   來迎寺について
   ==================================================== */
.about{background:var(--washi)}
.about__grid{display:grid;gap:clamp(2.6rem,7vw,5rem);align-items:center}
.about__fig{position:relative;overflow:hidden}
.about__fig img{width:100%;height:clamp(340px,55vw,600px);object-fit:cover;object-position:center 32%}
.about__body p{margin-bottom:1.4rem}
.about__body .lead{margin-bottom:1.8rem}

.greet{margin-top:clamp(4rem,10vw,8rem);display:grid;gap:clamp(2rem,6vw,4rem);align-items:center}
.greet__fig{overflow:hidden}
.greet__fig img{width:100%;height:clamp(320px,50vw,520px);object-fit:cover;object-position:center 30%}
.greet h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.4rem,4vw,1.9rem);letter-spacing:.14em;line-height:1.8;margin:1.2rem 0}
.greet p{margin-bottom:1.3rem}
.greet .sign{font-family:var(--serif);text-align:right;letter-spacing:.1em;margin-top:2rem}
.greet .sign b{font-size:1.3rem;font-weight:600;letter-spacing:.16em}

/* ====================================================
   アクセス
   ==================================================== */
.access{background:var(--sumi);color:var(--gofun)}
.access .kicker{color:var(--kin-light)}.access .kicker::before{background:var(--kin-light)}
.access h2.title{color:#fff}
.access__grid{margin-top:clamp(3rem,8vw,5rem);display:grid;gap:clamp(2.4rem,6vw,4rem)}
.access__info dl{display:grid;grid-template-columns:auto 1fr;gap:1.4rem 2rem}
.access__info dt{font-family:var(--serif);color:var(--kin-light);font-size:.82rem;letter-spacing:.3em;white-space:nowrap}
.access__info dd{line-height:2.1;letter-spacing:.08em;color:rgba(255,255,255,.86)}
.access__map{overflow:hidden;border:1px solid rgba(255,255,255,.12);min-height:340px}
.access__map iframe{width:100%;height:100%;min-height:340px;border:0;filter:grayscale(.35) contrast(1.05)}

/* ====================================================
   お問い合わせ
   ==================================================== */
.contact{background:var(--washi)}
.contact__head{max-width:42em;margin:0 auto;text-align:center}
.contact__head .lead{margin:1.8rem auto 0}
.tel-band{margin:clamp(3rem,8vw,5rem) 0;text-align:center;border-block:1px solid var(--line);padding:clamp(2.6rem,7vw,4rem) 0}
.tel-band .lbl{font-family:var(--serif);font-size:.78rem;letter-spacing:.4em;color:var(--dou);margin-bottom:1rem;text-indent:.4em}
.tel-band .num{font-family:var(--serif);font-size:clamp(2rem,8vw,3rem);font-weight:600;color:var(--sumi);letter-spacing:.06em;display:inline-flex;align-items:center;gap:.7rem}
.tel-band__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.5rem 1.1rem}
.tel-band__row+.tel-band__row{margin-top:1.1rem}
.tel-band__tag{font-family:var(--serif);font-size:.76rem;letter-spacing:.24em;color:var(--dou);
  border:1px solid rgba(165,83,43,.4);padding:.28rem .9rem;border-radius:999px;white-space:nowrap}
.tel-band .num--pet{color:var(--dou)}
.tel-band .num--pet svg{color:var(--dou)}
.tel-band .num svg{width:.66em;height:.66em;color:var(--dou)}
.tel-band .hours{font-size:.84rem;letter-spacing:.1em;color:var(--sumi-soft);margin-top:1rem}

.form{max-width:760px;margin:0 auto}
.form__note{font-size:.82rem;line-height:2;letter-spacing:.06em;color:var(--sumi-soft);
  margin-bottom:2.4rem;padding:1.3rem 1.5rem;background:var(--gofun);border:1px solid var(--line-soft)}
.form .row{margin-bottom:2rem}
.form label{display:flex;align-items:center;gap:.7rem;font-family:var(--serif);font-weight:600;font-size:.94rem;letter-spacing:.1em;margin-bottom:.7rem}
.form label .req{font-family:var(--gothic);font-size:.62rem;letter-spacing:.1em;background:var(--shu);color:#fff;padding:.14rem .55rem;font-weight:700}
.form label .opt{font-family:var(--gothic);font-size:.62rem;letter-spacing:.1em;background:var(--washi-deep);color:var(--sumi-soft);padding:.14rem .55rem}
.form input,.form textarea{width:100%;font-family:var(--gothic);font-size:1rem;letter-spacing:.06em;color:var(--sumi);
  background:var(--gofun);border:1px solid var(--line);padding:1rem 1.1rem;transition:border-color .3s,box-shadow .3s}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--dou);box-shadow:0 0 0 3px rgba(165,83,43,.13)}
.form .zip{display:flex;align-items:center;gap:.7rem}
.form .zip span{color:var(--sumi-soft)}.form .zip input{max-width:130px}
.form .submit{text-align:center;margin-top:2.6rem}
.form .err{border-color:var(--shu)!important;box-shadow:0 0 0 3px rgba(181,71,47,.15)!important}
.form .errmsg{color:var(--shu);font-size:.78rem;letter-spacing:.06em;margin-top:.4rem;display:none}
.form .errmsg.show{display:block}
.form__done{text-align:center;padding:3rem 1rem;display:none}
.form__senderr{display:none;color:var(--shu);font-size:.86rem;letter-spacing:.06em;line-height:1.9;margin-bottom:1rem;padding:.9rem 1.1rem;background:rgba(181,71,47,.07);border:1px solid rgba(181,71,47,.32)}
.form__senderr.show{display:block}
.form__done.show{display:block;animation:fadeup .8s var(--ease-cinema)}
@keyframes fadeup{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.form__done h3{font-family:var(--serif);font-size:1.6rem;font-weight:600;letter-spacing:.14em;margin-bottom:1rem}
.form__done p{line-height:2.2;letter-spacing:.08em;color:var(--sumi-soft)}

/* ====================================================
   フッター
   ==================================================== */
.footer{background:var(--murasaki-night);color:rgba(255,255,255,.7);padding:clamp(3.5rem,9vw,6rem) 0 4rem;text-align:center}
.footer .nm{font-family:var(--brush);font-size:clamp(1.6rem,6vw,2.2rem);letter-spacing:.24em;color:var(--gofun);margin-bottom:1rem;text-indent:.24em}
.footer .addr{font-size:.84rem;line-height:2.1;letter-spacing:.08em}
.footer .links{display:flex;gap:clamp(1.2rem,4vw,2.4rem);justify-content:center;margin:2rem 0;font-size:.82rem;letter-spacing:.1em;flex-wrap:wrap}
.footer .links a{border-bottom:1px solid transparent;transition:.3s}
.footer .links a:hover{color:var(--kin-light);border-color:var(--kin-light)}
.footer .copy{font-size:.72rem;letter-spacing:.14em;color:rgba(255,255,255,.4);margin-top:1.4rem}

/* フローティング電話 */
.fab{position:fixed;right:1rem;bottom:1rem;z-index:900;display:flex;align-items:center;gap:.5rem;
  background:var(--sumi);color:var(--gofun);font-family:var(--serif);font-weight:600;letter-spacing:.1em;
  padding:.9rem 1.4rem;box-shadow:0 14px 36px -14px rgba(0,0,0,.6);
  transform:translateY(160%);transition:transform .5s var(--ease-overshoot)}
.fab.show{transform:none}
.fab svg{width:17px;height:17px}
.fab .t{font-size:.92rem}

/* ====================================================
   レスポンシブ
   ==================================================== */
@media(min-width:820px){
  .nav__tel{display:inline-flex}
  .nav__brand img{display:none}
  .intro .wrap{grid-template-columns:1fr 1fr;align-items:center;column-gap:clamp(3rem,7vw,6rem);
    grid-template-areas:"label fig" "body fig"}
  .intro__label{grid-area:label}
  .intro__fig{grid-area:fig;align-self:stretch}
  .intro__fig img{height:100%;min-height:460px}
  .intro__body{grid-area:body}
  .showcase{display:grid;grid-template-columns:1.5fr 1fr;align-items:stretch}
  .showcase--rev{grid-template-columns:1fr 1.5fr}
  .showcase__fig img{height:100%}
  .duo{grid-template-columns:1fr 1fr}
  .memorial__stat{grid-template-columns:auto 1fr;column-gap:clamp(2.4rem,6vw,5rem)}
  .showcase__cap{justify-content:center}
  .mosaic{grid-template-columns:repeat(4,1fr)}
  .mosaic .wide{grid-column:1/-1;aspect-ratio:21/9}
  .price__grid{grid-template-columns:1fr 1fr}
  .about__grid{grid-template-columns:1.1fr .9fr}
  .about__grid.rev .about__fig{order:2}
  .greet{grid-template-columns:.85fr 1.15fr}
  .access__grid{grid-template-columns:.9fr 1.1fr}
  .form .two{display:grid;grid-template-columns:1fr 1fr;gap:0 1.6rem}
  .fab{display:none}
}
@media(min-width:1180px){
  .hero__content{padding-top:10rem}
  .band__cap{max-width:34em}
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important}
  html{scroll-behavior:auto}
  [data-anim]{opacity:1!important;transform:none!important;clip-path:none!important}
  .brush-write,.ink-reveal>*{clip-path:none!important}
  .kb img{transform:none!important}
  .petal,.cloud{display:none!important}
}
