/* 龍門精舎 デモサイト 案B「白と朱」（ご提案用） */
*{margin:0;padding:0;box-sizing:border-box}
:root{--shu:#b3261e;--shu-d:#7d1913;--ink:#211d1b;--sumi:#4a4440;--gold:#a8884a;--paper:#fbf8f3;--paper2:#f3ede2;--line:#e2d8c6}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP",sans-serif;color:var(--ink);background:var(--paper);line-height:1.95;font-size:16px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.min{font-family:"Shippori Mincho",serif}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}

.demo{background:var(--ink);color:#e9dfcc;font-size:12px;text-align:center;padding:6px 16px;letter-spacing:.05em}

/* 上の帯 */
.hd{position:sticky;top:0;z-index:30;background:rgba(251,248,243,.95);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.hd .wrap{display:flex;align-items:center;justify-content:space-between;height:74px}
.logo{display:flex;align-items:center;gap:12px}
.seal{display:inline-grid;place-items:center;width:40px;height:40px;background:var(--shu);color:#fff;font-family:"Shippori Mincho",serif;font-weight:800;font-size:22px;border-radius:4px;box-shadow:inset 0 0 0 3px var(--shu),inset 0 0 0 4px rgba(255,255,255,.55)}
.logo b{font-family:"Shippori Mincho",serif;font-size:23px;letter-spacing:.2em;font-weight:700;line-height:1.2}
.logo small{display:block;font-size:10px;letter-spacing:.3em;color:var(--gold);font-weight:500}
.nav{display:flex;gap:24px;font-size:14px;align-items:center}
.nav a{position:relative;padding:4px 0}
.nav a.on::after,.nav a:not(.btn):hover::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--shu)}
.menu{display:none;background:none;border:1px solid var(--line);width:46px;height:40px;font-size:12px;color:var(--ink);border-radius:4px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--shu);color:#fff;padding:13px 28px;letter-spacing:.12em;font-size:15px;border-radius:2px;transition:.25s;border:1px solid var(--shu)}
.btn:hover{background:var(--shu-d);border-color:var(--shu-d)}
.btn.line{background:transparent;color:var(--shu)}
.btn.line:hover{background:var(--shu);color:#fff}
.nav .btn{padding:9px 18px;font-size:13px}

/* 最初の画面（トップ） */
.fv{position:relative;overflow:hidden;background:var(--paper);border-bottom:1px solid var(--line)}
.fv::before{content:"";position:absolute;inset:0;background:
 radial-gradient(circle at 82% 40%,rgba(179,38,30,.10) 0,rgba(179,38,30,0) 38%),
 repeating-linear-gradient(90deg,rgba(168,136,74,.08) 0 1px,transparent 1px 120px)}
.fv .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;min-height:calc(100svh - 104px);padding-top:56px;padding-bottom:56px}
.fv-eyebrow{font-size:13px;letter-spacing:.35em;color:var(--shu);margin-bottom:22px}
.fv h1{font-family:"Shippori Mincho",serif;font-weight:700;font-size:clamp(28px,3.2vw,42px);line-height:1.65;letter-spacing:.04em}
.fv h1 em{font-style:normal;color:var(--shu)}
.fv p.lead{margin-top:24px;max-width:540px;color:var(--sumi)}
.fv-btns{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
.fv-facts{margin-top:36px;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:13px;color:var(--sumi)}
.fv-facts span::before{content:"";display:inline-block;width:7px;height:7px;background:var(--shu);transform:rotate(45deg);margin-right:8px;vertical-align:2px}
.fv-art{position:relative;justify-self:center;width:min(380px,100%);aspect-ratio:3/4;border:1px solid var(--gold);display:grid;place-items:center;background:#fff}
.fv-art::before{content:"";position:absolute;inset:12px;border:1px solid var(--line)}
.fv-art .v{writing-mode:vertical-rl;font-family:"Shippori Mincho",serif;font-weight:800;font-size:clamp(56px,7vw,96px);letter-spacing:.18em;line-height:1.15}
.fv-art .kana{position:absolute;left:26px;top:30px;writing-mode:vertical-rl;font-size:12px;letter-spacing:.5em;color:var(--gold)}
.fv-art .stamp{position:absolute;right:-18px;bottom:30px;width:86px;height:86px;background:var(--shu);color:#fff;display:grid;place-items:center;font-family:"Shippori Mincho",serif;font-size:15px;line-height:1.35;text-align:center;font-weight:700;letter-spacing:.1em;transform:rotate(-4deg);box-shadow:inset 0 0 0 4px var(--shu),inset 0 0 0 5px rgba(255,255,255,.6)}

/* 下層ページの見出し */
.ph-head{background:var(--paper2);border-bottom:1px solid var(--line);padding:64px 0 54px;text-align:center}
.ph-head span{display:block;font-size:12px;letter-spacing:.4em;color:var(--shu)}
.ph-head h1{font-family:"Shippori Mincho",serif;font-size:clamp(28px,3.4vw,40px);letter-spacing:.14em;margin-top:6px}
.ph-head p{max-width:640px;margin:14px auto 0;color:var(--sumi);font-size:15px}
.crumb{font-size:12px;color:var(--sumi);padding:14px 0}
.crumb a{color:var(--shu)}

/* 共通 */
section{padding:92px 0;scroll-margin-top:74px}
section.alt{background:var(--paper2)}
.ttl{text-align:center;margin-bottom:50px}
.ttl span{display:block;font-size:12px;letter-spacing:.4em;color:var(--shu)}
.ttl h2{font-family:"Shippori Mincho",serif;font-size:clamp(25px,3vw,34px);letter-spacing:.14em;margin-top:4px}
.ttl h2::after{content:"";display:block;width:34px;height:2px;background:var(--shu);margin:18px auto 0}
.ttl p{max-width:640px;margin:18px auto 0;color:var(--sumi);font-size:15px}
h3{font-family:"Shippori Mincho",serif;font-weight:700;letter-spacing:.06em}
.center{text-align:center;margin-top:40px}
.note{font-size:13px;color:var(--sumi)}
.kari{display:inline-block;font-size:11px;color:var(--shu);border:1px dashed var(--shu);padding:1px 8px;border-radius:2px;margin-top:8px;letter-spacing:.04em}
.photo{background:repeating-linear-gradient(45deg,#efe8db 0 10px,#f6f1e8 10px 20px);border:1px solid var(--line);display:grid;place-items:center;color:var(--sumi);font-size:13px;text-align:center;line-height:1.6;min-height:200px}

/* 3つの約束 */
.promise{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.promise div{background:#fff;border:1px solid var(--line);padding:34px 28px;position:relative}
.promise b{font-family:"Shippori Mincho",serif;font-size:42px;color:var(--shu);line-height:1}
.promise h3{font-size:20px;margin:14px 0 10px}
.promise p{font-size:15px;color:var(--sumi)}

/* 入口カード */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{background:#fff;border:1px solid var(--line);padding:28px 22px 24px;transition:.25s;display:flex;flex-direction:column}
.card:hover{border-color:var(--shu);transform:translateY(-3px)}
.card i{font-style:normal;font-family:"Shippori Mincho",serif;font-size:34px;color:var(--shu);line-height:1}
.card h3{font-size:18px;margin:14px 0 6px}
.card p{font-size:14px;color:var(--sumi);flex:1}
.card .more{margin-top:14px;font-size:13px;color:var(--shu);letter-spacing:.1em}

/* 2列 */
.two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.sign{margin-top:22px;font-family:"Shippori Mincho",serif;font-size:22px;letter-spacing:.14em}
.sign small{display:block;font-family:"Noto Sans JP",sans-serif;font-size:12px;color:var(--sumi);letter-spacing:.1em}

/* 料金表 */
.price{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}
.price th,.price td{padding:18px 20px;border-bottom:1px solid var(--line);text-align:left;font-size:15px;vertical-align:top}
.price th{font-family:"Shippori Mincho",serif;font-weight:700;width:38%}
.price td.yen{font-family:"Shippori Mincho",serif;font-size:18px;color:var(--shu);white-space:nowrap;text-align:right}

/* 流れ */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:f}
.flow div{background:#fff;border:1px solid var(--line);padding:30px 22px;counter-increment:f;position:relative}
.flow div::before{content:counter(f,decimal-leading-zero);font-family:"Shippori Mincho",serif;color:var(--shu);font-size:28px;display:block;line-height:1;margin-bottom:12px}
.flow h3{font-size:17px;margin-bottom:6px}
.flow p{font-size:14px;color:var(--sumi)}

/* よくある質問 */
.faq{max-width:820px;margin:0 auto}
.faq details{background:#fff;border:1px solid var(--line);margin-bottom:12px}
.faq summary{cursor:pointer;padding:18px 22px;font-weight:500;list-style:none;display:flex;gap:12px}
.faq summary::before{content:"問";font-family:"Shippori Mincho",serif;color:var(--shu);font-weight:700}
.faq details p{padding:0 22px 20px 50px;color:var(--sumi);font-size:15px}

/* 年表 */
.hist{list-style:none;max-width:820px;margin:0 auto;border-left:2px solid var(--shu)}
.hist li{position:relative;padding:0 0 30px 34px}
.hist li::before{content:"";position:absolute;left:-7px;top:10px;width:12px;height:12px;background:var(--paper);border:2px solid var(--shu);transform:rotate(45deg)}
.hist time{display:block;font-family:"Shippori Mincho",serif;color:var(--shu);font-size:18px;font-weight:700}

/* 先生 */
.teachers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.teachers .photo{min-height:240px}
.teachers h3{font-size:17px;margin-top:12px}
.teachers p{font-size:13px;color:var(--sumi)}

/* 霊符 */
.fu-cat{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.fu-cat > div{background:#fff;border:1px solid var(--line);padding:30px 28px}
.fu-cat h3{font-size:20px;display:flex;align-items:center;gap:12px;margin-bottom:14px}
.fu-cat h3 i{font-style:normal;width:36px;height:36px;display:grid;place-items:center;background:var(--shu);color:#fff;border-radius:3px;font-size:18px}
.fu-cat ul{list-style:none}
.fu-cat li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dotted var(--line);font-size:14px}
.fu-cat li span:last-child{color:var(--shu);font-family:"Shippori Mincho",serif;white-space:nowrap}

/* 店舗 */
.shops{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.shop{background:#fff;border:1px solid var(--line);padding:32px 30px}
.shop h3{font-size:22px;margin-bottom:12px}
.shop dl{display:grid;grid-template-columns:7em 1fr;gap:8px 12px;font-size:14px;margin-bottom:18px}
.shop dt{color:var(--shu)}
.shop .photo{min-height:180px}
.info{max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--line)}
.info dl{display:grid;grid-template-columns:10em 1fr}
.info dt,.info dd{padding:16px 22px;border-bottom:1px solid var(--line);font-size:15px}
.info dt{background:var(--paper2);font-weight:500}

/* 気づきの囲み */
.found{max-width:820px;margin:0 auto 40px;background:#fff;border:1px solid var(--shu);border-left-width:5px;padding:22px 26px;font-size:15px}
.found b{color:var(--shu)}

/* フォーム */
.form{max-width:720px;margin:0 auto;background:#fff;border:1px solid var(--line);padding:36px}
.form label{display:block;font-size:14px;font-weight:500;margin:16px 0 6px}
.form label:first-child{margin-top:0}
.form input,.form select,.form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);background:var(--paper);font:inherit;font-size:15px;border-radius:2px}
.form textarea{min-height:120px}
.form .btn{width:100%;margin-top:24px}

/* 最後の呼びかけ */
.cta{background:var(--shu);color:#fff;text-align:center;padding:84px 0;position:relative;overflow:hidden}
.cta::after{content:"縁";position:absolute;right:-30px;top:-60px;font-family:"Shippori Mincho",serif;font-size:340px;line-height:1;color:rgba(255,255,255,.07);font-weight:800}
.cta h2{font-family:"Shippori Mincho",serif;font-size:clamp(24px,3vw,34px);letter-spacing:.1em;line-height:1.7;position:relative}
.cta p{margin-top:14px;opacity:.9;position:relative}
.cta .tel{font-family:"Shippori Mincho",serif;font-size:36px;letter-spacing:.08em;margin:20px 0 6px;position:relative}
.cta .fv-btns{justify-content:center;position:relative}
.cta .btn{background:#fff;color:var(--shu);border-color:#fff}
.cta .btn.line{background:transparent;color:#fff}

/* 足もと */
.ft{background:var(--ink);color:#cfc5b4;padding:54px 0 90px;font-size:13px}
.ft .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}
.ft b{display:block;font-family:"Shippori Mincho",serif;color:#fff;font-size:20px;letter-spacing:.2em;margin-bottom:8px}
.ft a{display:block;padding:3px 0}
.ft a:hover{color:#fff}
.ft .copy{grid-column:1/-1;border-top:1px solid #3a3431;padding-top:18px;font-size:12px;color:#998f80}

/* スマホの下の固定ボタン */
.bar{display:none}

/* ふわっと */
.rv{opacity:0;transform:translateY(18px);transition:opacity .8s,transform .8s}
.rv.on{opacity:1;transform:none}

@media (max-width:900px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .flow{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  body{font-size:15px}
  .hd .wrap{height:62px}
  .logo b{font-size:19px}
  .seal{width:34px;height:34px;font-size:18px}
  .nav{display:none;position:absolute;top:62px;left:0;right:0;background:var(--paper);flex-direction:column;gap:0;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{padding:14px 24px;width:100%;border-top:1px solid var(--line)}
  .nav a.on::after,.nav a:not(.btn):hover::after{display:none}
  .nav .btn{margin:12px 24px;width:calc(100% - 48px)}
  .menu{display:block}
  .fv .wrap{grid-template-columns:1fr;min-height:auto;padding-top:36px;gap:34px}
  .fv-art{width:min(230px,72%);order:-1}
  .fv-art .v{font-size:46px}
  .fv-art .kana{left:16px;top:20px;font-size:10px;letter-spacing:.35em}
  .logo small{display:none}
  .fv h1{font-size:25px;letter-spacing:.02em}
  .ttl h2{font-size:22px;letter-spacing:.08em}
  .fv-eyebrow{letter-spacing:.15em;font-size:12px}
  .bar a{font-size:13px;padding:14px 6px;letter-spacing:.04em}
  .demo{font-size:11px}
  .fv-art .stamp{width:70px;height:70px;font-size:12px;right:-10px}
  section{padding:66px 0}
  .promise,.two,.shops,.fu-cat,.teachers{grid-template-columns:1fr}
  .cards,.flow{grid-template-columns:1fr}
  .two{gap:30px}
  .price th{width:auto}
  .price th,.price td{display:block;padding:12px 18px;border-bottom:none}
  .price tr{display:block;border-bottom:1px solid var(--line)}
  .price td.yen{text-align:left;padding-top:0}
  .info dl{grid-template-columns:1fr}
  .info dt{border-bottom:none;padding-bottom:6px}
  .shop dl{grid-template-columns:1fr}
  .shop dt{margin-top:6px}
  .ft .wrap{grid-template-columns:1fr}
  .form{padding:24px 20px}
  .bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:40}
  .bar a{padding:15px;text-align:center;color:#fff;background:var(--ink);font-size:14px;letter-spacing:.1em}
  .bar a:last-child{background:var(--shu)}
}
