@charset "utf-8";
:root{
  --paper:#f5f3ee; --ink:#1c1b19; --ac:#2f4a3f; --deep:#22362e;
  --sub:#6b675e; --line:#ddd8cd; --tint:#eceade; --body:#3d3a35;
  --pv:104px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"BIZ UDPGothic","Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.9;
}
img{max-width:100%; display:block;}
a{color:var(--ac); text-decoration:none;}
a:hover{color:var(--ink);}
.mincho{font-family:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif; font-weight:500;}
.en{font-family:"Hina Mincho","Hiragino Mincho ProN",serif; letter-spacing:.34em; font-size:12px; color:var(--sub);}
.wrap{max-width:1240px; margin:0 auto;}
.sec{padding:var(--pv) 40px; border-bottom:1px solid var(--line);}
.sec.tint{background:var(--tint);}
.sec.dark{background:var(--deep); color:var(--paper); border-bottom:none;}
.sec.dark .en{color:#93a595;}
h1,h2,h3{margin:0;}
p{margin:0; text-wrap:pretty;}

/* header */
.topbar{background:var(--deep); color:#c3cdc4; font-size:11.5px; letter-spacing:.1em;}
.topbar .wrap{display:flex; justify-content:space-between; gap:16px; padding:8px 40px;}
.head{position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:1px solid var(--line);}
.head .wrap{display:flex; align-items:center; gap:28px; padding:18px 40px;}
.brand{display:flex; align-items:center; gap:14px;}
.brand .name{font-family:"Zen Old Mincho",serif; font-weight:600; font-size:18px; letter-spacing:.1em; white-space:nowrap; color:var(--ink);}
.nav{margin-left:auto; display:flex; align-items:center; gap:4px;}
.nav a.item{font-size:13.5px; letter-spacing:.08em; color:var(--ink); padding:10px 16px; position:relative;}
.nav a.item.on::after{content:""; position:absolute; left:16px; right:16px; bottom:0; height:1px; background:var(--ac);}
.telbox{margin-left:22px; padding-left:24px; border-left:1px solid var(--line); display:flex; align-items:center; gap:14px;}
.telbox .hours{font-size:11px; line-height:1.5; color:var(--sub); text-align:right; white-space:nowrap;}
.telbox .num{font-family:"Zen Old Mincho",serif; font-size:21px; letter-spacing:.04em; white-space:nowrap; color:var(--ink);}
.btn{display:inline-block; background:var(--ac); color:var(--paper); font-size:14px; letter-spacing:.1em; padding:16px 28px; white-space:nowrap; border:none; cursor:pointer;}
.btn:hover{background:var(--ink); color:var(--paper);}
.btn.ghost{background:none; border:1px solid rgba(245,243,238,.55); color:var(--paper);}
.btn.ghost:hover{background:rgba(245,243,238,.12);}
.btn.paper{background:var(--paper); color:var(--ink);}
.btn.paper:hover{background:#fff; color:var(--ink);}
.mobtel{margin-left:auto; display:none; align-items:center; gap:12px;}
.mobtel .hours{font-size:11px; line-height:1.5; color:var(--sub); text-align:right; white-space:nowrap;}
.mobtel a{font-family:"Zen Old Mincho",serif; font-size:19px; white-space:nowrap;}

/* hero */
.hero{position:relative; height:82vh; min-height:600px; background:var(--deep) center 30%/cover no-repeat;}
.hero .veil{position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(20,26,22,.72) 0%,rgba(20,26,22,.45) 42%,rgba(20,26,22,0) 72%);}
.hero .inner{position:absolute; inset:0; display:flex; align-items:center; padding:0 40px;}
.hero .box{max-width:620px;}
.hero h1{font-family:"Zen Old Mincho",serif; font-weight:500; font-size:50px; line-height:1.75; letter-spacing:.06em; color:#fff; margin:0 0 28px;}
.hero .lead{font-size:15.5px; line-height:2.15; color:#dfe3da; margin-bottom:36px; max-width:500px;}
.hero .kicker{font-family:"Hina Mincho",serif; font-size:13px; letter-spacing:.4em; color:#cbd6c9; margin-bottom:26px;}
.hero .acts{display:flex; flex-wrap:wrap; gap:12px;}
.hero .btn{padding:19px 40px; font-size:14.5px;}

/* layout helpers */
.two{display:grid; grid-template-columns:200px minmax(0,1fr); gap:56px;}
.two.wide{grid-template-columns:280px minmax(0,1fr);}
.h2{font-family:"Zen Old Mincho",serif; font-weight:500; font-size:31px; line-height:1.7; letter-spacing:.05em;}
.h3{font-family:"Zen Old Mincho",serif; font-weight:500; font-size:20px; line-height:1.8; letter-spacing:.04em;}
.lead{font-size:15.5px; line-height:2.2; color:var(--body);}

/* lists */
.rows{display:flex; flex-direction:column;}
.row{display:flex; gap:28px; align-items:flex-start; padding:26px 0; border-top:1px solid var(--line);}
.row .no{font-family:"Hina Mincho",serif; font-size:15px; color:var(--ac); letter-spacing:.1em; padding-top:3px;}
.callout{background:var(--ac); color:var(--paper); padding:38px 36px; margin-top:44px;}
.callout .t{font-family:"Zen Old Mincho",serif; font-size:21px; line-height:1.95; letter-spacing:.04em; margin-bottom:16px;}
.callout .d{font-size:14px; line-height:2.05; color:#cbd6c9;}
.items{display:flex; flex-direction:column; border-top:1px solid var(--line);}
.items div{padding:15px 0; border-bottom:1px solid var(--line); font-size:14.5px; line-height:1.8;}
.more{display:inline-block; margin-top:28px; font-size:14px; letter-spacing:.1em; border-bottom:1px solid var(--ac); padding-bottom:4px;}
.grid2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 64px;}
.grid2 > div{padding:34px 0; border-top:1px solid #3c5245;}
.grid4{display:grid; grid-template-columns:repeat(4,minmax(0,1fr));}
.grid4 > div{padding:30px 28px 30px 0; border-top:1px solid var(--ink);}
.step{font-family:"Hina Mincho",serif; font-size:13px; letter-spacing:.24em; color:var(--ac); margin-bottom:18px;}
.news a{display:flex; flex-wrap:wrap; gap:20px; align-items:baseline; padding:22px 0; border-top:1px solid var(--line); color:var(--ink);}
.news a:hover{color:var(--ac);}
.news .date{font-family:"Hina Mincho",serif; font-size:14px; color:var(--sub); letter-spacing:.1em; min-width:100px;}
.news .tag{font-size:11.5px; letter-spacing:.14em; color:var(--ac); border:1px solid #c2ccc0; padding:4px 12px; white-space:nowrap;}
.note{background:var(--tint); padding:28px 30px; font-size:14.5px; line-height:2.05; color:var(--body); margin-top:34px;}

/* price */
.ptable h2{font-family:"Zen Old Mincho",serif; font-weight:500; font-size:22px; letter-spacing:.06em; padding-bottom:16px; border-bottom:1px solid var(--ink);}
.prow{display:flex; flex-wrap:wrap; gap:16px; align-items:baseline; padding:22px 0; border-bottom:1px solid var(--line);}
.prow .n{flex:1; min-width:240px; font-size:15.5px; line-height:1.7;}
.prow .n small{display:block; font-size:13px; line-height:1.9; color:var(--sub); margin-top:6px;}
.prow .p{font-family:"Zen Old Mincho",serif; font-size:21px; letter-spacing:.03em; white-space:nowrap;}

/* contact */
.contact{background:var(--ink); color:var(--paper); padding:100px 40px;}
.contact .cols{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px;}
.contact .en{color:#9a958a;}
.contact h2{font-family:"Zen Old Mincho",serif; font-weight:500; font-size:30px; line-height:1.85; letter-spacing:.05em; margin-bottom:24px;}
.contact .p{font-size:15px; line-height:2.2; color:#b9b4a9; max-width:420px; margin-bottom:40px;}
.telblock{border-top:1px solid #38352f; padding-top:28px;}
.telblock .big{font-family:"Zen Old Mincho",serif; font-size:34px; letter-spacing:.03em;}
.telblock .sm{font-size:13px; color:#9a958a; margin-top:8px; line-height:1.9;}
.telblock .hint{margin-top:16px; border-left:2px solid #4a463e; padding-left:14px; font-size:13px; line-height:1.9; color:#d6d1c6;}
.telblock .deny{margin-top:12px; font-size:12px; line-height:1.85; color:#8f8a7f;}
.form{background:var(--paper); color:var(--ink); padding:44px 42px;}
.form .lbl{font-size:12.5px; color:var(--sub); margin-bottom:8px;}
.form .cap{font-size:13px; letter-spacing:.1em; color:var(--sub); margin-bottom:16px;}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px;}
.chips label{display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line); padding:11px 15px; font-size:13.5px; cursor:pointer; background:#fff;}
.chips label:hover{border-color:var(--ac); color:var(--ac);}
.chips input{accent-color:var(--ac);}
.fields{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:16px;}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{
  width:100%; border:1px solid var(--line); padding:14px 15px; font-family:inherit; font-size:14px; background:#fff; color:var(--ink);
}
.form textarea{resize:vertical;}
.form .send{width:100%; font-size:15px; letter-spacing:.12em; padding:20px;}
.form .privacy{font-size:12px; line-height:1.9; color:var(--sub); margin-top:16px;}
.hp{position:absolute; left:-9999px;}

/* footer */
.foot{background:var(--deep); color:#a9b7aa; padding:64px 40px 110px; font-size:13.5px; line-height:2.1;}
.foot .cols{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px;}
.foot .name{font-family:"Zen Old Mincho",serif; font-size:19px; color:var(--paper); letter-spacing:.1em; margin-bottom:20px;}
.foot .links{display:flex; flex-direction:column; gap:10px; align-items:flex-start;}
.foot a{color:#a9b7aa;}
.foot a:hover{color:#fff;}
.foot .copy{max-width:1240px; margin:44px auto 0; padding-top:22px; border-top:1px solid #33473c; font-size:11.5px; color:#7a8b7c; letter-spacing:.08em;}
.fixbar{display:none; position:fixed; left:0; right:0; bottom:0; z-index:60; grid-template-columns:1fr 1fr;}
.fixbar a{text-align:center; padding:17px; font-size:14.5px; letter-spacing:.1em; color:var(--paper);}
.fixbar a.call{background:var(--ink);}
.fixbar a.mail{background:var(--ac);}

@media (max-width:1150px){
  .nav{display:none;}
  .mobtel{display:flex;}
  .fixbar{display:grid;}
  .sec,.contact{padding-left:20px; padding-right:20px;}
  .head .wrap,.topbar .wrap{padding-left:20px; padding-right:20px;}
  .two,.two.wide,.grid2,.grid4,.contact .cols,.foot .cols,.fields{grid-template-columns:minmax(0,1fr); gap:32px;}
  .grid4 > div{padding-right:0;}
  .hero{height:auto; min-height:560px; padding:120px 0;}
  .hero .inner{position:relative; z-index:1; padding:0 20px;}
  .hero h1{font-size:32px;}
  .h2{font-size:25px;}
  .topbar .wrap span+span{display:none;}
}
