:root{
  --night:#14231C; --moss:#27402F; --leaf:#5E7F55; --lichen:#B7C9A0;
  --mist:#E4EADB; --paper:#EEF2E6; --light:#F3DC8C; --bark:#54402F; --ink:#17251D; --ink-soft:#44564A;
  --max:1100px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Zen Kaku Gothic New','Hiragino Sans','Noto Sans JP',sans-serif;line-height:2;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Shippori Mincho','Noto Serif JP','Hiragino Mincho ProN',serif;font-weight:700;line-height:1.5;margin:0 0 .6em;color:var(--night)}
p{margin:0 0 1.1em;color:var(--ink-soft)}
a{color:var(--moss)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--light);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.tate{writing-mode:vertical-rl;font-family:'Shippori Mincho','Noto Serif JP',serif}

/* header */
.site-head{background:var(--night);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(183,201,160,.18)}
.head-in{display:flex;align-items:center;justify-content:space-between;max-width:var(--max);margin:0 auto;padding:14px 28px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--mist);font-family:'Shippori Mincho',serif;font-weight:700;font-size:1.2rem;letter-spacing:.12em}
.brand svg{width:26px;height:26px}
.site-nav{display:flex;gap:30px}
.site-nav a{color:var(--lichen);text-decoration:none;font-size:.88rem;padding:6px 0;border-bottom:2px solid transparent}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--mist);border-bottom-color:var(--light)}
.menu-btn{display:none;background:none;border:1px solid rgba(183,201,160,.4);color:var(--mist);width:42px;height:38px;border-radius:4px;font-size:1.2rem;cursor:pointer}

/* hero */
.hero{background:var(--night);color:var(--mist);position:relative;overflow:hidden;padding:84px 0 0}
.hero-grid{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:start;position:relative;z-index:2;padding-bottom:150px}
.hero h1{text-wrap:balance;word-break:auto-phrase;color:var(--mist);font-size:clamp(2rem,4.6vw,3.3rem);letter-spacing:.06em;max-width:15em}
.hero .lead{color:#C5D3B4;max-width:34em;font-size:1rem}
.hero .note{margin-top:30px;max-width:34em;font-size:.82rem;color:#9FB28E;border-left:3px solid var(--light);padding-left:14px;line-height:1.8}
.hero .note strong{color:var(--light);font-weight:700}
.hero .verse{font-size:1.25rem;letter-spacing:.35em;line-height:2.1;color:var(--light);height:17em;margin:0;border-right:1px solid rgba(243,220,140,.35);padding-right:22px}
.dapple{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(243,220,140,.55),rgba(243,220,140,0) 68%);animation:glow 7s ease-in-out infinite;pointer-events:none;z-index:1}
.dapple:nth-of-type(1){width:260px;height:260px;left:6%;top:8%}
.dapple:nth-of-type(2){width:180px;height:180px;left:44%;top:40%;animation-delay:-2s}
.dapple:nth-of-type(3){width:320px;height:320px;right:4%;top:-6%;animation-delay:-4s}
.dapple:nth-of-type(4){width:120px;height:120px;left:28%;top:70%;animation-delay:-5s}
@keyframes glow{0%,100%{opacity:.25;transform:scale(.92)}50%{opacity:.8;transform:scale(1.06)}}
.ridge{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:150px;z-index:2;display:block}

/* sections */
section{padding:84px 0}
.s-mist{background:var(--mist)}
.s-night{background:var(--moss);color:var(--mist)}
.s-night h2,.s-night h3{color:var(--mist)}
.s-night p{color:#C5D3B4}
.sec-title{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:.06em}
.rule{width:56px;height:3px;background:var(--leaf);border:0;margin:0 0 26px}

/* forest section */
.forest-grid{display:grid;grid-template-columns:5fr 7fr;gap:72px;align-items:start}
.forest-side{position:sticky;top:96px}
.forest-side .tree{width:130px;height:auto;margin-top:18px;display:block}
.passage{padding:0 0 38px;margin-bottom:38px;border-bottom:1px solid var(--lichen)}
.passage:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}
.passage h3{font-size:1.2rem;display:flex;gap:12px;align-items:baseline}
.passage h3::before{content:"";flex:none;width:10px;height:10px;border-radius:0 80% 0 80%;background:var(--leaf);transform:translateY(1px)}
.passage p{font-size:.97rem;line-height:2.1;margin:0;color:#33463B}
.seasons{display:grid;grid-template-columns:repeat(4,1fr);margin-top:56px;border-top:1px solid var(--lichen)}
.seasons div{padding:18px 16px 4px 0}
.seasons b{display:block;font-family:'Shippori Mincho',serif;font-size:1.9rem;color:var(--leaf);line-height:1.2}
.seasons span{font-size:.82rem;color:var(--ink-soft)}

/* places */
.place{display:grid;grid-template-columns:minmax(200px,4fr) 8fr;gap:48px;padding:48px 0 48px 28px;border-top:1px solid var(--lichen);border-left:6px solid transparent}
.place:last-child{border-bottom:1px solid var(--lichen)}
.place h3{font-size:1.7rem;margin-bottom:.3em;letter-spacing:.05em}
.place .kind{font-size:.85rem;color:var(--leaf);font-weight:700;margin:0}
.place dl{display:grid;grid-template-columns:7em 1fr;gap:6px 18px;margin:24px 0 0;font-size:.88rem}
.place dt{color:var(--leaf);font-weight:700}
.place dd{margin:0;color:var(--ink-soft)}
.place.main{border-left-color:var(--light)}

/* compare */
.table-wrap{overflow-x:auto;margin-top:34px;border:1px solid rgba(183,201,160,.35)}
table{border-collapse:collapse;width:100%;min-width:760px;font-size:.9rem}
th,td{padding:18px 22px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(183,201,160,.25);line-height:1.8}
thead th{font-family:'Shippori Mincho',serif;color:var(--light);font-size:1rem;background:var(--night)}
tbody th{color:var(--lichen);font-weight:700;width:9em;background:rgba(20,35,28,.35)}
td{color:#D5E0C8}
tr:last-child th,tr:last-child td{border-bottom:0}

/* access */
.access-grid{display:grid;grid-template-columns:5fr 7fr;gap:72px;align-items:start}
.route{border-top:1px solid var(--lichen)}
.route div{padding:22px 0;border-bottom:1px solid var(--lichen)}
.route h4{font-size:1.02rem;margin-bottom:.3em}
.route p{margin:0;font-size:.92rem}

/* price */
.price-list{margin:0;padding:0;list-style:none}
.price-list li{display:grid;grid-template-columns:minmax(220px,4fr) 8fr;gap:48px;padding:36px 0;border-top:1px solid rgba(183,201,160,.3);align-items:start}
.price-list li:last-child{border-bottom:1px solid rgba(183,201,160,.3)}
.price-list .yen{font-family:'Shippori Mincho',serif;font-size:2.4rem;color:var(--light);line-height:1.2;font-weight:700}
.price-list .yen small{display:block;font-size:.85rem;color:var(--lichen);font-family:'Zen Kaku Gothic New',sans-serif;font-weight:500;margin-top:6px;letter-spacing:.04em}
.price-list h3{font-size:1.15rem;margin-bottom:.4em}
.price-list p{margin:0;font-size:.92rem}
.fine{margin-top:26px;font-size:.84rem;color:#9FB28E}

/* tips */
.tips{max-width:820px}
details{border-top:1px solid var(--lichen)}
details:last-child{border-bottom:1px solid var(--lichen)}
summary{cursor:pointer;list-style:none;padding:22px 44px 22px 0;font-family:'Shippori Mincho',serif;font-weight:700;font-size:1.08rem;color:var(--night);position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--leaf);transition:transform .2s}
details[open] summary::after{content:"−"}
details p{margin:0 0 24px;font-size:.95rem}

/* disclaimer */
.disclaimer{background:#FBF3D4;border:2px solid var(--light);padding:34px 38px}
.disclaimer p{color:var(--ink);font-size:.9rem;margin:0 0 .8em}
.disclaimer p:last-child{margin:0}
.disclaimer strong{color:var(--bark)}

/* footer */
footer{background:var(--night);color:#9FB28E;padding:56px 0 30px}
.foot-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.foot-grid p{max-width:360px;font-size:.85rem;color:#9FB28E;margin:12px 0 0}
.foot-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot-grid h5{margin:0 0 10px;font-size:.8rem;color:var(--lichen);font-family:'Shippori Mincho',serif}
.foot-grid ul a{color:var(--mist);text-decoration:none;font-size:.88rem}
.foot-grid ul a:hover{text-decoration:underline}
.legal{border-top:1px solid rgba(183,201,160,.2);margin-top:34px;padding-top:20px;font-size:.76rem;line-height:1.8;color:#8CA07C}
.legal strong{color:var(--lichen)}

/* sub pages */
.page-head{background:var(--night);position:relative;overflow:hidden;padding:64px 0 90px}
.page-head h1{color:var(--mist);font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:.08em;margin:0;position:relative;z-index:2}
.page-head .sub{color:#B7C9A0;margin:14px 0 0;position:relative;z-index:2;font-size:.95rem}
.page-head .ridge{height:70px}
.prose{max-width:760px;margin:0 auto;padding:30px 28px 90px}
.prose h2{font-size:1.35rem;margin:2.2em 0 .6em;padding-left:16px;border-left:5px solid var(--leaf)}
.prose h2:first-child{margin-top:0}
.prose ul{margin:0 0 1.2em 1.3em;padding:0;color:var(--ink-soft)}
.prose li{margin-bottom:.3em}
.prose .updated{font-size:.88rem;color:var(--leaf);font-weight:700}
.not-list{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;list-style:none;margin:0 0 1.2em;padding:0}
.not-list li{padding:10px 0 10px 28px;border-bottom:1px solid var(--lichen);position:relative;margin:0}
.not-list li::before{content:"×";position:absolute;left:4px;color:var(--bark);font-weight:700}
.form-box{background:var(--mist);padding:34px 36px;margin:10px 0 40px}
.form-box label{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px;color:var(--night)}
.form-box input,.form-box textarea{width:100%;font:inherit;padding:12px 14px;border:1px solid #9FB28E;background:#fff;border-radius:2px;margin-bottom:20px;color:var(--ink)}
.form-box textarea{min-height:160px;resize:vertical}
.form-box button{font:inherit;font-weight:700;background:var(--moss);color:var(--mist);border:0;padding:14px 38px;cursor:pointer;letter-spacing:.1em}
.form-box button:hover{background:var(--night)}
.reply-note{border-left:5px solid var(--light);padding:6px 0 6px 22px}

@media (max-width:980px){
  .hero-grid,.forest-grid,.access-grid{grid-template-columns:1fr;gap:40px}
  .hero .verse{height:auto;writing-mode:horizontal-tb;border-right:0;border-top:1px solid rgba(243,220,140,.35);padding:18px 0 0;letter-spacing:.15em;font-size:1.05rem;line-height:1.9}
  .forest-side{position:static}
  .place,.price-list li{grid-template-columns:1fr;gap:18px}
  .seasons{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .site-nav{position:absolute;top:100%;left:0;right:0;background:var(--night);flex-direction:column;gap:0;max-height:0;overflow:hidden;transition:max-height .25s}
  .site-nav.open{max-height:360px;border-bottom:1px solid rgba(183,201,160,.2)}
  .site-nav a{padding:16px 28px;border-bottom:1px solid rgba(183,201,160,.12)}
  .menu-btn{display:block}
  section{padding:60px 0}
  .hero-grid{padding-bottom:110px}
  .ridge{height:100px}
  .not-list{grid-template-columns:1fr}
  .place dl{grid-template-columns:1fr;gap:0}
  .place dd{margin-bottom:10px}
  .form-box{padding:24px 20px}
  .disclaimer{padding:26px 22px}
}
@media (prefers-reduced-motion:reduce){.dapple{animation:none;opacity:.45}html{scroll-behavior:auto}}
