:root{--cream:#f6f1e7;--paper:#efe7d8;--green:#4d5f47;--brown:#8a5b42;--ink:#4a3f35;--head:'Klee One','Hiragino Maru Gothic ProN',serif;--hand:'Zen Kurenaido','Klee One',sans-serif;--body:'Shippori Mincho','Hiragino Mincho ProN',serif;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;margin:0}
body{background:var(--cream);color:var(--ink);font-family:var(--body);line-height:1.9}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--head);font-weight:400}.hand{font-family:var(--hand)!important}
.hero{position:relative;min-height:600px;color:#fff;overflow:hidden;background:#3a3a2a}
.hero>img{position:absolute;inset:0;object-position:center 72%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,40,25,.65),rgba(30,40,25,0) 65%)}
.hero>*:not(img){position:relative;z-index:1}
.top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 32px}
.logo b{display:block;font-family:sans-serif;font-size:20px;letter-spacing:.06em;line-height:1.1}
.logo small{display:block;margin-top:6px;font-size:11px}.logo img{width:130px;height:auto}footer .lg{width:120px;height:auto;margin-right:24px}
.nav{display:flex;gap:28px;padding:10px 24px;background:rgba(255,255,255,.18);backdrop-filter:blur(4px);font-size:14px;flex-wrap:wrap}
.hero h1{font-size:clamp(34px,5vw,48px);line-height:1.7;margin:60px 0 24px 64px;letter-spacing:.12em}
.hero p{margin-left:64px;max-width:520px;font-size:14px;letter-spacing:.06em}
.tag{text-align:center;font-family:var(--head);font-size:clamp(22px,3vw,32px);letter-spacing:.14em;padding:64px 20px 72px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.big{position:relative;height:240px;border-radius:12px;overflow:hidden;color:#fff;background:#5a5040}
.big img{position:absolute;inset:0;object-position:right center;filter:none}
.big::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(40,30,20,.75),rgba(40,30,20,.1))}
.big div{position:absolute;z-index:1;left:24px;bottom:16px;right:24px}
.big h2{font-size:26px;letter-spacing:.08em;line-height:1.5}
.big p{font-size:14px;line-height:1.7}
.act{display:flex;align-items:center;justify-content:space-between;padding:12px 20px 0}
.btn{display:inline-block;padding:10px 40px;border-radius:99px;color:#fff;font-size:14px;letter-spacing:.08em;background:var(--green)}
.btn.b{background:var(--brown)}
.btn.o{background:none;border:1px solid var(--brown);color:var(--brown);padding:6px 34px}
.act svg{width:48px;height:40px;stroke:var(--brown);fill:none;stroke-width:1.5}
.evh{display:flex;justify-content:space-between;align-items:baseline;margin:40px 0 14px}
.evh h2{font-size:24px;letter-spacing:.08em}
.evh a{font-size:13px}
.ev{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{display:block;background:#fbf8f1;border-radius:8px;overflow:hidden;padding-bottom:10px}
.card .im{height:140px}
.meta{display:flex;justify-content:space-between;align-items:center;padding:6px 12px 0;font-size:13px}
.pl{color:#fff;font-size:11px;padding:0 10px;border-radius:99px;line-height:20px}
.card h3{padding:0 12px;font-size:17px;line-height:1.5}
.card p{padding:0 12px;font-size:12px;line-height:1.6}
.about{display:grid;grid-template-columns:1.1fr 1fr;margin-top:16px;background:var(--paper);border-radius:8px;overflow:hidden}
.about .im{position:relative;min-height:240px}.about .im img{position:absolute;inset:0}.about .im::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(270deg,var(--paper),rgba(239,231,216,0) 40%)}
.about div.t{padding:28px 32px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.about h2,.what h2{font-size:24px;letter-spacing:.12em}
.about p,.what p{font-size:13px;margin:10px 0 16px}
.what{position:relative;margin-top:56px;padding:32px 24px;min-height:240px;background:var(--paper);border-radius:8px;overflow:hidden}
.what .im{position:absolute;right:0;top:0;bottom:0;width:48%}
.what .im::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--paper),rgba(239,231,216,0) 40%)}
.what .t{position:relative;z-index:2;max-width:52%}
.what h2:after{content:"";display:block;width:24px;height:2px;background:var(--brown);margin-top:8px}
footer{margin-top:40px;background:var(--green);color:#fff;padding:24px 32px}
footer .in{display:flex;align-items:center;gap:32px;flex-wrap:wrap;max-width:1120px;margin:0 auto;font-size:12px;letter-spacing:.1em}
footer h2{font-size:30px;margin-right:24px}
footer h2 small{display:block;font-size:9px;font-family:sans-serif;letter-spacing:.2em}
@media(max-width:520px){
.top{flex-direction:column;padding:16px}.nav{gap:14px;padding:8px 14px;font-size:12px}
.hero h1,.hero p{margin-left:20px;margin-right:20px}.hero h1{margin-top:40px}
.two,.about{grid-template-columns:1fr}.ev{grid-template-columns:1fr 1fr}
.what .t{max-width:100%}.about .im{min-height:200px}.what .im{opacity:.35;width:100%}.what .im::before{display:none}
}
@media(max-width:480px){.ev{grid-template-columns:1fr}.act{padding:12px 0 0}}
@media(max-width:520px){.about .im::after{background:linear-gradient(0deg,var(--paper),rgba(239,231,216,0) 40%)}}
@media(max-width:520px){
.top{flex-direction:column;align-items:stretch;gap:12px;padding:14px 14px 0}
.logo img{width:104px}
.nav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 4px;padding:10px 6px;border-radius:12px;font-size:12px;letter-spacing:.04em;text-align:center}
.hero{min-height:540px;padding-bottom:36px}
.hero::after{background:linear-gradient(180deg,rgba(30,40,25,.4),rgba(30,40,25,.6))}
.hero h1{font-size:32px;line-height:1.65;margin:36px 20px 16px;letter-spacing:.1em}
.hero p{font-size:13px;line-height:1.95;letter-spacing:.03em;margin:0 20px;text-wrap:pretty}
.hero p br{display:none}
.tag{font-size:20px;letter-spacing:.08em;line-height:1.7;padding:44px 16px 48px;text-wrap:balance}
.wrap{padding:0 16px}
.two{gap:28px}
.big{height:220px}
.big::after{background:linear-gradient(0deg,rgba(40,30,20,.8),rgba(40,30,20,.05) 75%)}
.big div{left:18px;right:18px;bottom:14px}
.big h2{font-size:22px}
.big p{font-size:13px}
.act{padding:12px 4px 0}
.btn{padding:10px 34px}
.evh{flex-direction:column;align-items:flex-start;gap:2px;margin:36px 0 12px}
.evh h2{font-size:20px;letter-spacing:.06em}
.evh a{align-self:flex-end}
.ev{grid-template-columns:1fr;gap:12px}
.card{display:grid;grid-template-columns:128px 1fr;min-height:104px;padding:0}
.card .im{grid-row:1/4;position:relative;height:auto}
.card .im img{position:absolute;inset:0}
.meta{grid-column:2;padding:10px 12px 0;flex-wrap:wrap;justify-content:flex-start;gap:4px 8px;font-size:12px}
.card h3{grid-column:2;font-size:16px;padding:4px 12px 0}
.card p{grid-column:2;padding:0 12px 10px}
.what{display:flex;flex-direction:column;padding:0;min-height:0;margin-top:40px}
.what .im{position:relative;right:auto;top:auto;bottom:auto;width:100%;height:200px;opacity:1}
.what .im::before{display:block;background:linear-gradient(0deg,var(--paper),rgba(239,231,216,0) 40%)}
.what .t{max-width:100%;padding:10px 20px 28px}
.about .im{min-height:200px}
.about div.t{padding:10px 20px 28px}
.what h2,.about h2{font-size:22px;letter-spacing:.1em}
.what p,.about p{font-size:13px;margin:10px 0 16px}
footer{margin-top:32px;padding:28px 20px}
footer .in{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px;font-size:12px;letter-spacing:.06em}
footer .lg{grid-column:1/-1;width:112px;margin:0 0 8px}
}
.k{display:inline-block}.more-m{display:none}
@media(max-width:520px){
.top{display:none}
.hero{padding-top:64px;min-height:520px}
.hero h1{font-size:28px;line-height:1.7;margin:0 24px 18px}
.hero p{margin:0 24px;font-size:13px;line-height:1.9}
.hero p br{display:none}
.hero .s{display:block;margin-top:8px;text-wrap:balance}
.evh a{display:none}
.more-m{display:block;text-align:right;margin-top:14px;font-size:13px}
footer .in a{text-align:center}
footer .lg{order:10;justify-self:center;width:88px;margin:14px 0 0}
}
@media(max-width:520px){.what p,.about p{text-wrap:balance}}
@media(max-width:520px){.top{display:flex;padding:16px 16px 0}.nav{display:none}.logo img{width:76px}.hero{padding-top:0}.hero h1{margin-top:40px}}
@media(max-width:520px){
.hero{display:flex;flex-direction:column;min-height:560px;padding-bottom:36px}
.hero h1{margin:auto 24px 16px}
.hero::after{background:linear-gradient(180deg,rgba(30,40,25,.1),rgba(30,40,25,.15) 35%,rgba(30,40,25,.72))}
.logo img{width:60px}
}
@media(max-width:520px){
footer{padding:32px 20px 30px}
footer .in{display:grid;grid-template-columns:repeat(3,1fr);gap:0;font-size:14px;letter-spacing:.06em}
footer .in>a{display:block;text-align:center;padding:16px 4px;border-top:1px solid rgba(255,255,255,.22)}
footer .in>a:nth-of-type(n+4){border-bottom:1px solid rgba(255,255,255,.22)}
footer .in>a:nth-of-type(n+4){margin-top:-1px}
footer .lg{order:10;grid-column:1/-1;justify-self:center;width:60px;margin:26px 0 0}
}

/* ===== 問い合わせページ ===== */
.sub{background:var(--green);color:#fff;padding:16px 32px}
.sub-in{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px}
.sub .nav{background:none;backdrop-filter:none;padding:0}
.sub .nav a[aria-current]{border-bottom:1px solid rgba(255,255,255,.8)}
.cform{max-width:640px;margin:0 auto;padding:56px 0 24px}
.cform h1{font-size:32px;letter-spacing:.14em;line-height:1.6}
.cform .lead{font-size:14px;margin:12px 0 32px}
.cform label{display:block;font-size:14px;letter-spacing:.06em;margin:22px 0 6px}
.cform label em{font-style:normal;color:var(--brown);font-size:12px;margin-left:6px}
.cform input,.cform select,.cform textarea{width:100%;padding:12px 14px;border:1px solid #c9bda8;border-radius:8px;background:#fbf8f1;color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6}
.cform textarea{min-height:200px;resize:vertical}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:2px solid var(--green);outline-offset:1px}
.cform .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform .privacy{font-size:12px;line-height:1.8;margin:22px 0 26px}
.cform button.btn{border:0;cursor:pointer;font-family:var(--body);padding:14px 56px;font-size:15px}
.cform button.btn[disabled]{opacity:.6;cursor:default}
.cform .msg{display:none;margin-top:22px;padding:16px 18px;border-radius:8px;font-size:14px;line-height:1.8}
.cform .msg.ok{display:block;background:#e6ecdf;color:#3b4a36}
.cform .msg.ng{display:block;background:#f3e1d8;color:#6b3a28}
@media(max-width:520px){.sub{padding:14px 16px}.cform{padding:36px 4px 8px}.cform h1{font-size:26px}.cform button.btn{width:100%}}

/* ===== イベントカード（スプレッドシート読み込み用） ===== */
.card .im:empty{background:var(--paper)}
a.card:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(prefers-reduced-motion:no-preference){a.card{transition:transform .2s,box-shadow .2s}a.card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(74,63,53,.12)}}
.ev-empty{grid-column:1/-1;font-size:14px;padding:24px 0;text-align:center}

/* ===== メンバー紹介ページ ===== */
.mem{max-width:1120px;margin:0 auto;padding:56px 0 24px}
.mem h1{font-size:32px;letter-spacing:.14em;line-height:1.6}
.mem .lead{font-size:14px;margin:12px 0 0}
.mlist{display:flex;flex-wrap:wrap;justify-content:center;gap:32px 20px;margin:40px 0 0;padding:0;list-style:none}
.mc{width:calc((100% - 60px)/4)}
.mc .ph{position:relative;aspect-ratio:4/5;border-radius:10px;overflow:hidden;background:var(--paper)}
.mc .ph:empty{display:flex;align-items:center;justify-content:center}
.mc .ph:empty::after{content:"写真";font-size:12px;letter-spacing:.2em;color:#b3a58e}
.mc .ph img{position:absolute;inset:0}
.mc h2{font-size:18px;letter-spacing:.06em;line-height:1.5;margin-top:12px}
.mc p{font-size:13px;line-height:1.8;margin-top:4px}
.mc a.lk{display:inline-block;font-size:12px;margin-top:6px;color:var(--brown);border-bottom:1px solid currentColor}
@media(max-width:520px){.mem{padding:36px 0 8px}.mem h1{font-size:26px}.mlist{gap:26px 14px}.mc{width:calc((100% - 14px)/2)}.mc h2{font-size:16px}}
.mc p.rel{font-size:12px;line-height:1.6;letter-spacing:.06em;color:var(--brown);margin-top:2px}

/* ===== 内容ページ（泊まる・会いに行く・他人家族とは） ===== */
.phero{position:relative;height:300px;overflow:hidden;background:#4a3f35}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(40,30,20,.65),rgba(40,30,20,.05) 70%)}
.phero img{position:absolute;inset:0}
.phero h1{position:absolute;z-index:1;left:0;right:0;bottom:28px;max-width:1120px;margin:0 auto;padding:0 20px;color:#fff;font-size:38px;letter-spacing:.14em;line-height:1.5}
.page{max-width:760px;padding:0 20px 24px}
.plead{font-family:var(--head);font-size:clamp(18px,2.6vw,24px);line-height:2;letter-spacing:.08em;text-align:center;padding:52px 0 36px}
.sec{padding:28px 0}
.sec h2{font-size:24px;letter-spacing:.1em;line-height:1.6;margin-bottom:12px}
.sec h2:after{content:"";display:block;width:24px;height:2px;background:var(--brown);margin-top:8px}
.tbd{background:var(--paper);border-left:3px solid var(--brown);border-radius:4px;padding:16px 18px;font-size:14px;line-height:1.9;color:#7a6a58}
.plink{margin-top:14px;font-size:14px}.plink a{color:var(--brown);border-bottom:1px solid currentColor}
.pcta{margin:36px 0 24px;padding:40px 20px;background:var(--paper);border-radius:10px;text-align:center}
.pcta p{font-size:14px;margin-bottom:18px}
@media(max-width:520px){.phero{height:210px}.phero h1{font-size:28px;bottom:20px}.plead{padding:36px 0 22px}.plead br.pc{display:none}.sec h2{font-size:22px}.page{padding:0 16px 8px}}
.plead{text-wrap:balance}
.deep{font-size:14px;line-height:1.9;margin-bottom:18px}
.sec .body{font-size:15px;line-height:2.1;letter-spacing:.04em;text-wrap:pretty}.sec .body+.tbd{margin-top:14px}
.policy h2{font-size:18px;letter-spacing:.08em;margin:28px 0 6px}.policy p{font-size:14px;line-height:2}.policy a{color:var(--brown);border-bottom:1px solid currentColor}.policy .tbd{margin-top:28px}
.cform .privacy a{color:var(--brown);border-bottom:1px solid currentColor;margin-left:6px}

/* ---- イベント一覧ページ(横長のバー) ---- */
.evp{max-width:860px;margin:0 auto;padding:56px 0 32px}
.evp h1{font-size:32px;letter-spacing:.14em;line-height:1.6}
.evp .lead{font-size:14px;margin:12px 0 0;line-height:1.9}
.evs{margin-top:40px}
.evs h2{font-size:22px;letter-spacing:.1em;line-height:1.6;margin-bottom:6px}
.evs h2:after{content:"";display:block;width:24px;height:2px;background:var(--brown);margin-top:8px}
.evs-note{font-size:13px;margin:10px 0 0;line-height:1.8}
.elist{display:flex;flex-direction:column;gap:14px;margin-top:18px}
.erow{display:grid;grid-template-columns:176px 1fr auto;align-items:stretch;min-height:116px;background:#fbf8f1;border-radius:10px;overflow:hidden}
.erow .im{position:relative;background:var(--paper)}
.erow .im img{position:absolute;inset:0}
.erow .tx{padding:14px 18px;display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0}
.erow .meta{padding:0;justify-content:flex-start;gap:10px;flex-wrap:wrap}
.erow h3{font-size:19px;line-height:1.5;padding:0}
.erow p{font-size:13px;line-height:1.7;padding:0}
.erow .go{align-self:center;padding:0 22px;color:var(--brown);font-size:22px;line-height:1}
.evp-note{margin-top:40px;font-size:13px;text-align:right}
.evp-note a{color:var(--brown);border-bottom:1px solid currentColor}
@media(prefers-reduced-motion:no-preference){a.erow{transition:transform .2s,box-shadow .2s}a.erow:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(74,63,53,.12)}}
a.erow:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:520px){.evp{padding:36px 0 24px}.evp h1{font-size:26px}.evs{margin-top:32px}.erow{grid-template-columns:104px 1fr auto;min-height:104px}.erow .tx{padding:10px 8px 10px 12px}.erow h3{font-size:16px}.erow p{font-size:12px}.erow .go{padding:0 12px;font-size:18px}}

/* stay page */
.sec .sub3{font-size:16px;letter-spacing:.08em;margin:26px 0 6px;color:var(--brown)}
.sec .body+.body{margin-top:12px}
.dots{margin:14px 0;padding:0;list-style:none;font-size:15px;line-height:2;letter-spacing:.04em}
.dots li{position:relative;padding-left:1.1em}
.dots li:before{content:"";position:absolute;left:.15em;top:1.05em;width:5px;height:5px;border-radius:50%;background:var(--brown)}
.facts{margin:14px 0;border-top:1px solid #e2d8c8;font-size:15px}
.facts dt,.facts dd{margin:0;padding:10px 4px;border-bottom:1px solid #e2d8c8;line-height:1.7}
.facts{display:grid;grid-template-columns:11em 1fr}
.facts dt{font-weight:600;letter-spacing:.04em}
.inl{color:var(--brown);border-bottom:1px solid currentColor}
@media(max-width:520px){.facts{grid-template-columns:1fr}.facts dt{border-bottom:0;padding-bottom:0}}

/* calendar */
.cal-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px;margin-top:8px}
.cal-title{font-size:18px;letter-spacing:.1em;margin-bottom:8px;text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;background:#fbf8f1;border-radius:10px;padding:10px}
.cal-dow{font-size:12px;text-align:center;color:#7a6a58;padding:2px 0}
.cal-dow.sun{color:#a9715a}.cal-dow.sat{color:#6f7f93}
.cal-cell{min-height:52px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;background:transparent;line-height:1.3}
.cal-cell.blank{background:none}
.cal-d{font-size:12px;color:#7a6a58}
.cal-m{font-family:sans-serif;font-size:18px;line-height:1.2;min-height:1.2em}
.cal-cell.all{background:#dfe6d6}.cal-cell.all .cal-m{color:var(--green);font-weight:700}.cal-cell.all .cal-d{color:var(--green)}
.cal-cell.some{background:#efe3cf}.cal-cell.some .cal-m{color:var(--brown)}
.cal-cell.no{background:#e9e5df}.cal-cell.no .cal-m{color:#9a9188}
.cal-cell.past{opacity:.45}
.cal-cell.today{outline:2px solid var(--brown);outline-offset:-2px}
.cal-legend{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;justify-content:center}
.cal-legend li{display:flex;align-items:center;gap:6px}
.cal-mark{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;font-family:sans-serif;font-size:14px}
.cal-mark.all{background:#dfe6d6;color:var(--green);font-weight:700}.cal-mark.some{background:#efe3cf;color:var(--brown)}.cal-mark.no{background:#e9e5df;color:#9a9188}.cal-mark.none{background:#fbf8f1;color:#b8ab9a}
.cal-notes{list-style:none;padding:0;margin:16px 0 0;font-size:14px;line-height:1.9}
.cal-notes li{padding:6px 0;border-bottom:1px solid #e2d8c8}
@media(max-width:520px){.cal-months{grid-template-columns:1fr}.cal-cell{min-height:46px}}

.cal-jump{text-align:center;margin:-8px 0 8px;font-size:14px;letter-spacing:.06em}
.cal-jump a{color:var(--brown);border-bottom:1px solid currentColor;padding-bottom:2px}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.cal-cell.few{background:#f3dfc4}.cal-cell.few .cal-m{color:#b4682c}.cal-cell.few .cal-d{color:#9a5a2a}
.cal-mark.few{background:#f3dfc4;color:#b4682c}

.cal-guide{list-style:none;padding:0;margin:14px 0 8px;font-size:15px;line-height:1.7}
.cal-guide li{display:flex;gap:14px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #e2d8c8}
.cal-guide li:first-child{border-top:1px solid #e2d8c8}
.cal-guide .cal-mark{flex:none;width:34px;height:34px;font-size:18px;margin-top:2px}
.cal-guide b{font-weight:600;letter-spacing:.04em}
.cal-guide li span:last-child{font-size:14px}

/* trips */
.trips .mon{font-size:15px;letter-spacing:.12em;color:var(--brown);margin:26px 0 10px;font-weight:600}
.trips .mon:first-child{margin-top:6px}
.trip{display:grid;grid-template-columns:72px 1fr auto;gap:16px;align-items:center;background:#fbf8f1;border-radius:10px;padding:14px 18px;margin-bottom:10px}
.trip .dt{text-align:center;line-height:1.35;color:var(--brown)}
.trip .dt b{display:block;font-size:22px;letter-spacing:.02em}
.trip .dt small{font-size:12px}
.trip .meta{padding:0;justify-content:flex-start;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:13px}
.trip h4{font-size:17px;line-height:1.5;margin:4px 0 0;letter-spacing:.04em}
.trip p{font-size:13px;line-height:1.7;margin:2px 0 0}
.trip .go{color:var(--brown);font-size:20px;padding-left:6px}
a.trip:hover{box-shadow:0 6px 16px rgba(74,63,53,.12)}
.who{font-size:13px;color:#7a6a58}
.kinds{display:flex;gap:8px;margin:26px 0 0;flex-wrap:wrap}
.kinds button{font:inherit;font-size:14px;letter-spacing:.06em;padding:7px 18px;border-radius:999px;border:1px solid #cdbfa8;background:#fff;color:var(--brown);cursor:pointer}
.kinds button[aria-pressed="true"]{background:var(--brown);color:#fff;border-color:var(--brown)}
@media(max-width:520px){.trip{grid-template-columns:58px 1fr auto;gap:12px;padding:12px 12px}.trip .dt b{font-size:19px}.trip h4{font-size:16px}}

.flow{list-style:none;margin:14px 0;padding:0;counter-reset:f}
.flow li{counter-increment:f;position:relative;padding:4px 0 14px 46px;font-size:15px;line-height:1.8}
.flow li:before{content:counter(f);position:absolute;left:0;top:2px;width:30px;height:30px;border-radius:50%;background:var(--brown);color:#fff;text-align:center;line-height:30px;font-size:14px}
.flow b{display:block;letter-spacing:.05em}.flow span{font-size:14px}

/* visit cards & places */
.kc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0 8px}
.kc{background:#fbf8f1;border-radius:10px;padding:20px 18px}
.kc h3{font-size:18px;letter-spacing:.08em;margin:0 0 8px;color:var(--brown)}
.kc-lead{font-size:14px;line-height:1.9;margin:0 0 12px}
.kc dl{margin:0;display:grid;grid-template-columns:3.2em 1fr;gap:6px 8px;font-size:13px;line-height:1.7;border-top:1px solid #e2d8c8;padding-top:10px}
.kc dt{font-weight:600;color:#7a6a58}.kc dd{margin:0}
.wh{margin:16px 0}
.wh-r{display:grid;grid-template-columns:7em 1fr;gap:6px 12px;padding:14px 4px;border-top:1px solid #e2d8c8}
.wh-r:last-child{border-bottom:1px solid #e2d8c8}
.wh-r h4{margin:0;font-size:15px;letter-spacing:.08em;color:var(--brown);padding-top:3px}
.wh-r ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wh-r li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:15px}
.wh-r li b{min-width:6.5em;font-weight:600;letter-spacing:.04em}
.fq{font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid var(--brown);color:var(--brown);letter-spacing:.03em;white-space:nowrap}
.fq.f1{background:var(--brown);color:#fff}
.fq.f2{background:#e9dcc8;border-color:#e9dcc8;color:#5b4a3b}
.fq.f3{background:transparent}
.wh-legend{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 0}
.wh-note{font-size:12px;color:#7a6a58}
@media(max-width:820px){.kc-grid{grid-template-columns:1fr}}
@media(max-width:520px){.wh-r{grid-template-columns:1fr;gap:6px}.wh-r li b{min-width:5.5em}}

.cal-fail{font-size:14px;line-height:1.9;color:#7a6a58;padding:12px 0}

/* トップ：予定のカードを横にスクロール */
.ev-wrap{position:relative}
.ev{display:flex;grid-template-columns:none;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 2px 14px;scrollbar-width:thin;scrollbar-color:#cdbfa8 transparent}
.ev>.card{flex:0 0 calc((100% - 60px)/4);scroll-snap-align:start;min-width:0}
.ev>.ev-empty{flex:1}
.ev-btn{position:absolute;top:58px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--brown);font-size:26px;line-height:36px;padding:0 0 3px;cursor:pointer;box-shadow:0 2px 10px rgba(74,63,53,.25);z-index:2}
.ev-btn.prev{left:-14px}.ev-btn.next{right:-14px}
.ev-btn:focus-visible{outline:2px solid var(--green)}
@media(hover:none){.ev-btn{display:none}}
@media(max-width:900px){.ev>.card{flex-basis:calc((100% - 20px)/2)}}
@media(max-width:520px){
.ev{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-template-rows:repeat(4,auto);grid-auto-columns:100%;gap:12px;padding:4px 0 12px}
.ev>.card{flex:none}
.ev-dots{display:flex;justify-content:center;gap:8px;margin:2px 0 4px}
.ev-dots i{width:8px;height:8px;border-radius:50%;background:#d9cdb9}
.ev-dots i.on{background:var(--brown)}
}
@media(min-width:521px){.ev-dots{display:none}}

/* about page */
.ab{max-width:860px;margin:0 auto;padding:0 20px 24px}
.ab-head{text-align:center;padding:64px 0 28px}
.ab-head h1{font-size:34px;letter-spacing:.14em;line-height:1.6;margin:0 0 22px}
.ab-lead{font-size:20px;line-height:2.2;letter-spacing:.08em;text-wrap:balance}
.ab-fig{max-width:700px;margin:36px auto;border-radius:10px;overflow:hidden;background:var(--paper)}
.ab-fig img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
.ab-fig.wide{max-width:760px;margin:16px auto 44px}.ab-fig.wide img{aspect-ratio:16/9}
.ab-t{max-width:640px;margin:0 auto}
.ab-t p{font-size:16px;line-height:2.2;letter-spacing:.05em;margin:0 0 1.6em;text-wrap:pretty}
.ab-t strong{font-weight:500;color:var(--brown);border-bottom:1px solid rgba(138,91,66,.4)}
.ab-big{margin:56px auto 72px;text-align:center;font-family:var(--hand);font-size:28px;line-height:2.1;letter-spacing:.1em;color:var(--brown)}
.ab-big span{display:block}
.ab-big.end{margin:72px auto 64px;padding:56px 12px;font-size:22px;letter-spacing:.06em;background:var(--paper);border-radius:12px}
.ab-ch{margin-top:96px}
.ab-no{font-family:var(--head);font-size:15px;letter-spacing:.3em;color:var(--brown);text-align:center;margin:0 0 6px}
.ab-ch h2{text-align:center;font-size:26px;line-height:1.7;letter-spacing:.1em;margin:0 0 36px}
.ab-ch h2:after{content:"";display:block;width:28px;height:2px;background:var(--brown);margin:16px auto 0}
.ab-pull{max-width:640px;margin:44px auto;text-align:center;font-family:var(--hand);font-size:24px;line-height:2;letter-spacing:.08em;color:var(--brown);padding:8px 0}
.ab-note{text-align:center;padding:8px 0 0}
.ab-note h3{font-size:20px;letter-spacing:.1em;margin:0 0 14px}
.ab-note p{font-size:15px;line-height:2;margin:0 0 22px}
.ab br.m{display:none}
@media(max-width:520px){
.ab{padding:0 16px 24px}
.ab-head{padding:40px 0 20px}.ab-head h1{font-size:26px}.ab-lead{font-size:17px}
.ab-t p{font-size:14.5px;letter-spacing:.03em;line-height:2.15}
.ab-big{font-size:18px;letter-spacing:.06em;margin:44px auto 56px}.ab-big.end{padding:40px 2px;font-size:13px;letter-spacing:0;line-height:2.1}
.ab-ch{margin-top:72px}.ab-ch h2{font-size:20px;letter-spacing:.06em}.ab br.m{display:inline}
.ab-pull{font-size:19px;margin:34px auto}
.ab-fig{max-width:none;margin:28px 0}
}

.ab-big+.ab-intro{margin-top:-40px}
@media(max-width:520px){.ab-big+.ab-intro{margin-top:-32px}.ab-fig.wide{margin:16px 0 44px}}

/* about: 茶色の強調文は左揃え・小さめ・読みやすさ優先 */
.ab-big,.ab-pull{max-width:640px;margin:36px auto 28px;text-align:left;font-size:20px;line-height:2.1;letter-spacing:.06em}
.ab-big+.ab-intro{margin-top:-16px}
.ab-big.end{max-width:696px;margin:64px auto 56px;padding:36px 28px;font-size:20px;letter-spacing:.06em}
@media(max-width:520px){
.ab-big,.ab-pull{font-size:16px;line-height:2.05;letter-spacing:.04em;margin:28px auto 22px}
.ab-big+.ab-intro{margin-top:-12px}
.ab-big.end{max-width:none;margin:48px 0 40px;padding:28px 14px;font-size:15px;letter-spacing:.02em}
.ab-big.end span{display:inline}
}

/* about: PCの写真は本文欄より小さく */
.ab-fig,.ab-fig.wide{max-width:540px}
.ab-fig{margin:30px auto}
.ab-fig.wide{margin:12px auto 36px}
.ab-lead{font-size:19px;letter-spacing:.04em}
@media(max-width:520px){.ab-fig,.ab-fig.wide{max-width:none}.ab-fig{margin:28px 0}.ab-fig.wide{margin:16px 0 44px}.ab-lead{font-size:15px;letter-spacing:.02em;line-height:2}}
.ab-big.end{text-align:center}

/* contact: 宿泊のときだけ出る入力欄 */
.cform .stayf{border:0;margin:26px 0 0;padding:4px 20px 26px;background:#f1ebde;border-radius:10px}
.cform .stayf[hidden]{display:none}
.cform .stayf legend{font-family:var(--hand);font-size:18px;letter-spacing:.1em;padding:0 8px;margin-left:-8px}
.cform .stayf .note{font-size:13px;line-height:1.8;margin:6px 0 0;color:#5b5346}
.cform .stayf .note a{color:var(--brown);border-bottom:1px solid currentColor}
.cform .stayf textarea.short{min-height:92px}
.cform .unit{display:flex;align-items:center;gap:10px}.cform .unit input{width:96px}.cform .unit span{font-size:14px}
.cform .dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cform .dates span{display:block;font-size:12px;margin-bottom:4px;color:#5b5346}
.cform #pickf[hidden]{display:none}
@media(max-width:520px){.cform .stayf{padding:2px 14px 22px}.cform .dates{grid-template-columns:1fr}}

.cform .stayf .sx[hidden]{display:none}
.cform label.chk{display:flex;gap:10px;align-items:flex-start;margin:20px 0 4px;font-size:14px;line-height:1.7;letter-spacing:.02em}
.cform label.chk input{width:20px;height:20px;margin-top:3px;flex:none;accent-color:var(--green)}

/* 空ルート ページ */
.sr{padding:76px 20px}.sr-in{max-width:960px;margin:0 auto}.sr-in.narrow{max-width:640px}
.sr h2{font-size:26px;letter-spacing:.1em;line-height:1.7;margin:0 0 28px}
.sr-t p{font-size:15.5px;line-height:2.2;letter-spacing:.05em;margin:0 0 1.5em;text-wrap:pretty}.sr-t p:last-child{margin-bottom:0}
.sr-top{padding:56px 20px 8px}.sr-lead{text-align:center;font-size:clamp(22px,3.2vw,32px);letter-spacing:.2em;color:var(--brown)}
.sr-when{padding-top:48px}.sr-when h2{text-align:center}
.sr-grid4{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sr-st{background:#fbf8f1;border-left:3px solid #c9b79d;border-radius:4px 10px 10px 4px;padding:20px 22px;font-size:15px;line-height:2.1;letter-spacing:.04em}
.sr-close{text-align:center;margin-top:34px;font-family:var(--head);font-size:18px;letter-spacing:.1em;color:var(--brown)}
.sr-def{background:var(--green);color:#f6f1e7;text-align:center;padding:92px 20px}.sr-def h2{margin-bottom:34px}
.sr-def-a{font-size:16px;line-height:2.2;letter-spacing:.06em}.sr-def-b{font-size:15px;letter-spacing:.08em;margin:22px 0 4px}
.sr-def-q{font-size:clamp(22px,3.6vw,34px);line-height:1.8;letter-spacing:.1em;margin:6px 0}
.sr-meta{background:var(--paper)}
.sr-two{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.sr-two.wide{grid-template-columns:1.25fr 1fr;gap:48px}
.sr-three{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:40px 0 36px}
.sr-c{background:#fbf8f1;border-radius:10px;padding:22px 20px;font-size:14.5px;line-height:2.05;letter-spacing:.04em;border-top:3px solid var(--brown)}
.sr-end{text-align:center;max-width:640px;margin:0 auto}.sr-end p{font-size:15.5px;line-height:2.2;letter-spacing:.05em;margin:0 0 1.4em}.sr-end strong{font-weight:400;font-size:24px;color:var(--brown);letter-spacing:.12em}
.sr-em{font-family:var(--head);font-size:17px!important;line-height:2.2!important;color:var(--brown);padding-left:16px;border-left:3px solid var(--brown)}
.sr-note{background:#f1ebde;border-radius:10px;padding:16px 18px;font-size:14px!important;line-height:2!important}
.sr-ph{aspect-ratio:3/2;border-radius:10px;background:#e8e0d0;border:1px dashed #b9ad98;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px}.sr-ph span{font-size:13px;color:#7a6a58;line-height:1.8}
.sr-ph.tall{aspect-ratio:4/5}.sr-ph.side{aspect-ratio:3/4;position:sticky;top:20px}
.sr-body{background:var(--cream)}.sr-body h2{margin-bottom:22px}
.sr-value{background:#f1ebde}.sr-value h2{text-align:center}
.sr-pair{display:grid;gap:14px;margin:30px 0}.sr-big{background:#fbf8f1;border-left:4px solid var(--brown);border-radius:4px 12px 12px 4px;padding:22px 24px;font-family:var(--head);font-size:19px;line-height:2.1;letter-spacing:.07em;color:var(--brown)}
.sr-fin{font-family:var(--head);font-size:17px!important;color:var(--brown)}
.sr-kyuta{background:var(--cream)}.sr-eb{font-size:13px;letter-spacing:.2em;color:var(--brown);margin:0 0 4px}
.sr-two.story{grid-template-columns:.8fr 1.4fr;gap:44px}
.sr-fin2{margin:48px auto 0;max-width:640px;background:#f1ebde;border-radius:12px;padding:30px 30px 14px}.sr-fin2 p{font-size:15.5px;line-height:2.2;letter-spacing:.05em;margin:0 0 1.5em}.sr-fin2 p:last-child{font-family:var(--head);color:var(--brown)}
.sr-get{background:var(--paper)}
.sr-two.panels{margin-top:44px;gap:18px}.sr-pn{background:#fbf8f1;border-radius:12px;padding:26px 24px 24px}.sr-pn h3{font-size:19px;letter-spacing:.1em;color:var(--brown);margin:0 0 12px}.sr-pn p{font-size:14.5px;line-height:2.05;letter-spacing:.04em;margin:0 0 1em}.sr-pn p:last-child{margin:18px 0 0}
.sr-price{margin-top:22px;border:1px dashed #b9ad98;border-radius:12px;padding:24px 26px}.sr-price h3{font-size:18px;letter-spacing:.1em;color:var(--brown);margin:0 0 10px}.sr-price p{font-size:14.5px;line-height:2.05;margin:0 0 .8em}.sr-price .tbd{font-size:13px;color:#7a6a58;background:#f1ebde;border-radius:8px;padding:10px 14px}
.sr-learn{background:var(--green);color:#f6f1e7}.sr-learn h2{text-align:center}.sr-learn .sr-t p{color:#f6f1e7}
.sr-bubbles{display:grid;gap:12px;margin:30px 0}.sr-bubbles p{background:#f6f1e7;color:var(--ink);border-radius:99px;padding:14px 26px;text-align:center;font-size:15px;letter-spacing:.05em}
.sr-btn{text-align:center;margin-top:34px}.btn.w{background:#f6f1e7;color:var(--green)}
.sr-back{text-align:center;padding:36px 20px 56px;font-size:14px}
@media(max-width:820px){.sr{padding:56px 18px}.sr h2{font-size:21px;margin-bottom:22px}.sr-grid4,.sr-two,.sr-two.wide,.sr-two.story,.sr-three,.sr-two.panels{grid-template-columns:1fr}.sr-two{gap:26px}.sr-ph.side{position:static;aspect-ratio:3/2}.sr-ph.tall{aspect-ratio:3/2}.sr-t p,.sr-fin2 p,.sr-end p{font-size:14.5px;line-height:2.15}.sr-def{padding:64px 18px}.sr-def-a{font-size:14.5px}.sr-big{font-size:16.5px;padding:18px 18px}.sr-fin2{padding:24px 20px 8px}.sr-bubbles p{border-radius:16px;padding:14px 16px}.sr-end strong{font-size:21px}.sr-top{padding:38px 18px 0}}

/* 会いに行きます（全体構成） */
.v-intro{padding:56px 20px 8px}.v-intro .vj-intro{padding:0}
.v-seiri{padding-top:64px}.v-seiri h2{text-align:center;font-size:30px}
.v-four{list-style:none;padding:0;margin:0 0 30px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 14px}.v-four li{font-family:var(--head);font-size:16px;letter-spacing:.1em;color:var(--brown);border:1px solid #c9b79d;border-radius:99px;padding:8px 20px;background:#fbf8f1}
.v-ways{background:var(--paper);padding:64px 20px}
.v-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.v-card{background:#fbf8f1;border-radius:12px;padding:22px 18px 18px;display:flex;flex-direction:column;border-top:3px solid var(--brown)}
.v-n{font-family:var(--head);color:var(--brown);font-size:14px;margin:0 0 4px}.v-card h3{font-size:17px;letter-spacing:.06em;line-height:1.6;margin:0 0 6px}
.v-tg{font-family:var(--head);font-size:14px;color:var(--brown);line-height:1.8;margin:0 0 12px;letter-spacing:.05em}
.v-tx{font-size:13px;line-height:2;letter-spacing:.03em;margin:0 0 14px;flex:1}.v-more{margin:0;font-size:13px}.v-more a{color:var(--brown);border-bottom:1px solid currentColor}
.v-chap{padding:84px 20px 0;text-align:center}.v-chap h2{font-size:30px;margin-bottom:10px}.v-chap h2:after{content:"";display:block;width:28px;height:2px;background:var(--brown);margin:14px auto 0}.v-chap-s{font-family:var(--head);color:var(--brown);letter-spacing:.14em;margin:0}
.sr{scroll-margin-top:12px}
.v-hanashi{background:var(--cream)}.v-hanashi .sr-eb,.v-kojin .sr-eb,.v-prem .sr-eb{margin:0 0 6px}
.sr-two.rev{grid-template-columns:1fr 1.25fr}
.v-slot{margin-top:34px;border:1px dashed #b9ad98;border-radius:10px;padding:16px 20px;text-align:center;font-size:13px;color:#7a6a58;background:#f6f1e7}
.v-kojin{background:#f1ebde}.v-kojin h2{text-align:center}.v-kojin .sr-eb{text-align:center}
.v-bub p{border-radius:14px}
.v-prem{background:var(--cream)}
.v-three3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:36px 0 30px}
.v-prem-t{max-width:640px}
.v-end{background:var(--green);color:#f6f1e7;text-align:center}.v-end .sr-t p{color:#f6f1e7}.v-end h2{margin-bottom:20px}
.v-end-h{font-family:var(--hand);font-size:clamp(22px,3.4vw,32px);letter-spacing:.1em;margin:0 0 26px}
.v-four2 li{background:transparent;color:#f6f1e7;border-color:rgba(246,241,231,.5)}
.v-town{margin-top:52px;padding-top:40px;border-top:1px solid rgba(246,241,231,.3)}.v-town h3{font-size:24px;letter-spacing:.1em;margin:0 0 16px}.v-town p{font-size:15px;line-height:2.2;letter-spacing:.05em}
@media(max-width:1000px){.v-cards{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.v-seiri h2{font-size:24px}.v-cards,.v-three3{grid-template-columns:1fr}.sr-two.rev{grid-template-columns:1fr}.v-chap{padding-top:60px}.v-chap h2{font-size:24px}.v-ways{padding:48px 18px}.v-intro{padding:36px 18px 0}}
.v-cards{grid-template-columns:1fr 1fr}.v-tx{font-size:14px}.v-card{padding:24px 24px 20px}.v-card h3{font-size:18px}
.v-seiri .sr-in{max-width:760px}.v-seiri .sr-t,.v-seiri .sr-close{max-width:640px;margin-left:auto;margin-right:auto}.v-four li{padding:8px 18px;font-size:15.5px}
@media(max-width:820px){.v-cards{grid-template-columns:1fr}.v-card{padding:22px 18px 18px}.v-tx{font-size:13.5px}}

.v-three3{grid-template-columns:1fr;gap:10px;margin:24px 0 0}.v-three3 .sr-c{border-top:0;border-left:3px solid var(--brown);padding:14px 18px}
.v-prem-t{margin-top:34px}
.v-end .sr-in{max-width:760px}
@media(max-width:820px){.v-prem-t{margin-top:26px}}
.sr-page+footer{margin-top:0}

/* ===== 会いに行きます：1009d 追加 ===== */
.sr-mid{text-align:center;font-size:16px;line-height:2.2;letter-spacing:.06em;margin:34px 0 6px}
.sr-mid-b{text-align:center;font-family:var(--head);font-size:20px;line-height:2.1;letter-spacing:.08em;color:var(--brown);margin:0 0 30px}
.v-small{font-size:13px;color:#7a6a58;margin:22px 0 0}
.v-sub{font-size:20px;letter-spacing:.1em;margin:56px 0 20px;padding-left:14px;border-left:4px solid var(--brown);line-height:1.5}
.tb{color:#a89b88}
.btn.is-pending{background:#b9ad98;cursor:default}
.v-yc{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:start}
.v-cal{background:#fbf8f1;border-radius:12px;padding:16px}
.v-cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.v-cal-h span{font-size:17px;letter-spacing:.1em}
.v-cal-h button{border:0;background:var(--paper);width:34px;height:34px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink)}
.v-cal .cal-grid{padding:0;background:none}
.v-cal .cal-cell{min-height:40px}
.v-cal .cal-cell.some{background:#efe3cf}.v-cal .cal-cell.some .cal-d{color:var(--brown);font-weight:700}
.v-cal-n{font-size:12.5px;color:#a89b88;text-align:center;margin:10px 0 0}
.v-pr{display:grid;gap:12px}
.v-p{background:#fbf8f1;border-radius:12px;padding:16px 20px}
.v-p h4,.v-kc h4,.v-sess h4,.v-talk h4{margin:0 0 8px;font-family:var(--head);font-weight:500;letter-spacing:.06em}
.v-p h4{font-size:18px;color:var(--green)}
.v-p dl,.v-kc dl{margin:0;display:grid;grid-template-columns:5.5em 1fr;gap:4px 10px;font-size:14px;line-height:1.8}
.v-p dt,.v-kc dt{color:#7a6a58}.v-p dd,.v-kc dd{margin:0}
.v-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;-webkit-overflow-scrolling:touch}
.v-kc{flex:0 0 min(300px,80%);scroll-snap-align:start;background:#fbf8f1;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px}
.v-kc h4{font-size:17px}.v-kc .btn{align-self:flex-start;margin-top:auto;padding:9px 24px;font-size:13px}
.v-ask{margin-top:56px;background:var(--paper);border-radius:14px;padding:30px 24px;text-align:center}
.v-ask h3{font-size:21px;margin:4px 0 10px}.v-ask p{margin:0 0 18px}
.v-lem{font-family:var(--head);color:var(--brown);font-size:17px}
.v-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:34px}
.v-slot2{border:1px dashed #b9ad98;border-radius:10px;padding:14px 16px;font-size:14px;display:flex;flex-direction:column;gap:4px}
.v-slot2.wide{grid-column:1/-1}.v-slot2 b{font-weight:500;color:#7a6a58;font-size:13px}
.v-talks{display:grid;gap:18px}
.v-talk{background:#fbf8f1;border-radius:14px;padding:28px 26px}
.v-talk h4{font-size:20px;color:var(--green);line-height:1.7}
.v-talk p{font-size:15px;line-height:2.1;margin:0 0 12px}
.v-talk .btn{margin-top:10px}
.v-two2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:40px}
.v-box{background:var(--paper);border-radius:14px;padding:26px 24px}
.v-box h3{font-size:19px;margin:0 0 14px}.v-box p{font-size:14.5px;line-height:2;margin:0 0 10px}
.v-cond{margin:8px 0;padding-left:1.2em;font-size:15px;line-height:2}
.v-box .btn{margin-top:8px}
.v-now{margin-top:20px}
.v-sessions{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.v-sess{background:#fbf8f1;border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:6px}
.v-sl{font-size:12px;color:#7a6a58;margin:0}.v-sn{font-family:var(--head);font-size:22px;color:var(--green);margin:0 0 6px}
.v-sess h4{font-size:17px;line-height:1.7}.v-si{font-size:14.5px;line-height:1.9;margin:0}
.v-sess .btn{align-self:flex-start;margin-top:auto;padding:9px 26px;font-size:13px}
@media(max-width:820px){.v-yc,.v-two2{grid-template-columns:1fr}.sr-mid{font-size:14.5px}.sr-mid-b{font-size:17px}.v-sub{font-size:18px;margin-top:44px}.v-talk{padding:22px 18px}.v-talk h4{font-size:18px}.v-slots{grid-template-columns:1fr}}
.sr-learn p{margin:0 0 1.3em}
.sr-learn .v-lem{color:#f0e2c4;background:rgba(255,255,255,.08);border-radius:10px;padding:14px 18px;margin:26px 0}
.sr-learn .v-slot2{border-color:rgba(255,255,255,.4)}.sr-learn .v-slot2 b{color:#d9e0d2}.sr-learn .tb{color:#c9d3c2}
.v-box .btn{align-self:flex-start}
.v-kojin .sr-in.narrow p{margin:0 0 1.3em}.v-kojin .sr-bubbles p{margin:0}
@media(max-width:820px){.sr-t p,.sr-fin2 p,.v-talk p,.sr-learn p{font-size:13.5px;letter-spacing:.01em}.sr-t .sr-em{font-size:15px}}
.v-intro .sr-in{max-width:880px}.v-intro .vj-intro{text-align:center}.v-intro .vj-intro p,.vj-c p{text-wrap:balance}
.vj-c{text-align:center;max-width:760px}.v-seiri .sr-in{max-width:820px}.v-seiri .sr-t.vj-c{max-width:760px}
@media(max-width:820px){.v-intro .vj-intro p,.vj-c p{font-size:14px;letter-spacing:.02em}}
.v-intro .vj-intro p .k,.vj-c p .k{display:inline-block}
.v-intro .sr-in.narrow{max-width:960px}.v-intro .vj-intro{max-width:none}
.v-card h3{display:inline-block;align-self:flex-start;background:var(--green);color:#f6f1e7;font-weight:700;border-radius:99px;padding:6px 20px;font-size:16px;line-height:1.6;margin:0 0 12px}
.v-card h3{color:#5a4535}
.v-card:nth-child(1) h3{background:#cfdcbf}
.v-card:nth-child(2) h3{background:#f3cfbd}
.v-card:nth-child(3) h3{background:#f6e1a9}
.v-card:nth-child(4) h3{background:#e8c4c4}
.v-card h3{color:#fff}
.v-card:nth-child(1) h3{background:#6f8f62}
.v-card:nth-child(2) h3{background:#cf7f68}
.v-card:nth-child(3) h3{background:#b98230}
.v-card:nth-child(4) h3{background:#c27a86}
/* 入口カード：写真を上に、文字は下（リンク化） */
a.v-card{position:relative;overflow:hidden;color:var(--ink);text-decoration:none;border-top:0;padding:0;background:#fbf8f1;border-radius:14px;box-shadow:0 2px 10px rgba(80,60,40,.08);transition:transform .25s,box-shadow .25s}
a.v-card::before{content:"";display:block;aspect-ratio:3/2;background:#e8e0d0 var(--ph) var(--pp,center)/cover no-repeat}
a.v-card::after{content:"";position:absolute;left:0;right:0;top:0;aspect-ratio:3/2;background:linear-gradient(180deg,rgba(45,34,26,.35) 0%,rgba(45,34,26,0) 45%);pointer-events:none}
a.v-card h3{position:absolute;left:16px;top:16px;z-index:2;margin:0}
a.v-card .v-tg{margin:18px 24px 10px}
a.v-card .v-tx{margin:0 24px 24px;color:var(--ink)}
a.v-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(60,40,25,.2)}
a.v-card:focus-visible{outline:3px solid var(--green);outline-offset:2px}
a.v-card::before,a.v-card::after{aspect-ratio:2/1}
a.v-card::after{background:linear-gradient(180deg,rgba(45,34,26,.3) 0%,rgba(45,34,26,0) 30%,rgba(251,248,241,0) 40%,#fbf8f1 100%)}
a.v-card .v-tg{margin-top:6px}
@media(max-width:820px){a.v-card::before,a.v-card::after{aspect-ratio:16/9}}
a.v-card::after{background:linear-gradient(180deg,rgba(45,34,26,.3) 0%,rgba(45,34,26,0) 30%,rgba(251,248,241,0) 62%,#fbf8f1 100%)}
a.v-card::before{background-size:var(--sz,cover)}
@media(max-width:820px){a.v-card[href="#sec-kojin"]::before{background-size:150% auto;background-position:55% 68%}}
/* 各セクションのタイトルを、入口カードと同じ楕円に統一 */
.v-pill{display:inline-block;color:#fff;font-weight:700;border-radius:99px;padding:7px 24px;font-size:17px;letter-spacing:.1em;line-height:1.6;margin:0 0 14px}
.v-pill.c1{background:#6f8f62}.v-pill.c2{background:#cf7f68}.v-pill.c3{background:#b98230}.v-pill.c4{background:#c27a86}
.v-chap h2.v-pill{font-size:19px;margin-bottom:10px}.v-chap h2.v-pill:after{display:none}
.v-kojin .sr-eb.v-pill{display:block;width:max-content;margin:0 auto 14px}
.v-kojin .sr-eb.v-pill{display:table;margin-left:auto!important;margin-right:auto!important}
/* タイトル類を左揃えに統一（左端を他のセクションと同じ位置に） */
.v-chap{text-align:left}.v-chap .sr-in.narrow{max-width:960px}
.v-kojin .sr-in.narrow{max-width:960px}.v-kojin h2,.v-kojin .sr-eb{text-align:left}
.v-kojin .sr-eb.v-pill{display:inline-block;width:auto;margin-left:0!important;margin-right:0!important}
.v-kojin .sr-in.narrow>p,.v-kojin .sr-bubbles{max-width:640px}
.v-chap-s{font-size:26px;line-height:1.7;letter-spacing:.1em}
.sr-when h2{font-size:20px}
@media(max-width:820px){.v-chap-s{font-size:19px;letter-spacing:.06em}.sr-when h2{font-size:17px}}
@media(max-width:820px){.v-chap-s{font-size:17.5px;letter-spacing:.03em}.sr-when h2{font-size:15.5px;letter-spacing:.04em}}
/* 「そもそも、空ルートとは。」：やさしいコーラル背景・白文字・少ない改行 */
.sr-def{background:#c98a74;color:#fff}.sr-def .sr-in.narrow{max-width:880px}
.sr-def-a{font-size:17px;text-wrap:balance}
.sr-def-c{font-size:16px;line-height:2.2;letter-spacing:.08em;margin:22px 0 0}
.sr-def-c .k{display:inline-block}
.sr-def-c .sr-def-q{font-size:clamp(19px,3vw,28px);line-height:1.8;margin:0 4px;font-weight:700}
@media(max-width:820px){.sr-def-a{font-size:14px;letter-spacing:.03em}.sr-def-c{font-size:14.5px}.sr-def-c .sr-def-q{font-size:19px;margin:2px 0;display:block}}
.sr-def-c .sr-def-q .k{display:inline-block}
@media(max-width:820px){.sr-def-c .sr-def-q{font-size:18px}.sr-st{font-size:13.5px;letter-spacing:.02em}.sr-close{font-size:14.5px;letter-spacing:.03em}}
@media(max-width:820px){.sr-st{font-size:13px;letter-spacing:.01em;padding-left:18px;padding-right:12px}}
/* コーラルの帯を低く */
.sr-def{padding:44px 20px}.sr-def h2{margin-bottom:14px;font-size:24px}
.sr-def-a{line-height:1.9}.sr-def-c{margin-top:10px;line-height:1.9}
.sr-def-c .sr-def-q{font-size:clamp(18px,2.6vw,25px)}
@media(max-width:820px){.sr-def{padding:34px 18px}.sr-def h2{font-size:20px;margin-bottom:12px}.sr-def-c{margin-top:8px;line-height:1.9}.sr-def-c .sr-def-q{font-size:17.5px;line-height:1.7;margin:0}}
/* 四角い枠をなくし、ひとつづきの文章に */
.sr-flow{padding-top:56px;padding-bottom:64px}
.sr-flow .sr-in{text-align:center}
.sr-flow p{font-size:16px;line-height:2.3;letter-spacing:.07em;margin:0 0 1.9em}
.sr-flow p:last-child{margin-bottom:0}
.sr-flow .sr-mid-b{font-family:var(--head);font-size:19px;line-height:2.1;color:var(--brown);margin:0 0 1.9em}
@media(max-width:820px){.sr-flow{padding-top:44px;padding-bottom:48px}.sr-flow p{font-size:14.5px;line-height:2.2;letter-spacing:.03em}.sr-flow .sr-mid-b{font-size:16.5px}}
.sr-flow .k{display:inline-block}
/* 行数を減らす */
.sr-flow{padding-top:40px;padding-bottom:44px}.sr-flow .sr-in.narrow{max-width:860px}
.sr-flow p{text-wrap:balance;line-height:2.1;margin:0 0 1.2em}.sr-flow .sr-mid-b{margin:0 0 1.2em;line-height:2}
@media(max-width:820px){.sr-flow{padding-top:32px;padding-bottom:34px}.sr-flow p{line-height:2.05;margin-bottom:1.1em;font-size:14px;letter-spacing:.02em}.sr-flow .sr-mid-b{font-size:16px}}
/* 手描き風イラスト（左端） */
.sr-flow .sr-in.narrow.flow-grid{max-width:1000px;display:grid;grid-template-columns:260px 1fr;gap:6px;align-items:center}
.flow-fig{display:flex;justify-content:center}.flow-ill{width:100%;max-width:260px;height:auto}
.flow-txt{padding-right:0}
@media(max-width:820px){.sr-flow .sr-in.narrow.flow-grid{grid-template-columns:1fr;gap:6px}.flow-txt{padding-right:0}.flow-ill{max-width:170px}}
.sr-fig{margin:0}.sr-fig img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:12px;box-shadow:0 4px 18px rgba(80,60,40,.14)}
.sr-body .sr-fig{align-self:center}
/* きゅうたの写真2枚 */
.sr-two.story.ky{grid-template-columns:340px 1fr;grid-template-areas:"a t" "b t";align-items:start;row-gap:16px}
.ky-f{margin:0}.ky-f img{display:block;width:100%;height:auto;border-radius:12px;box-shadow:0 4px 16px rgba(80,60,40,.14)}
.ky-a{grid-area:a}.ky-b{grid-area:b}.ky-t{grid-area:t}
@media(max-width:820px){.sr-two.story.ky{grid-template-columns:1fr;grid-template-areas:"a" "t" "b";row-gap:22px}.ky-a img{aspect-ratio:4/5;object-fit:cover;object-position:center 30%}}
@media(min-width:821px){.ky-b{align-self:end}}
.sr-kyuta .sr-em{border-left:0;padding-left:0}
.sr-get .sr-fig{align-self:center}
/* 施術可能日カレンダー（スプレッドシート連動） */
.v-cal button.cal-cell{border:0;cursor:pointer;font:inherit;color:inherit;padding:0;background:#efe3cf;position:relative}
.v-cal .cal-cell.some{gap:3px}.v-cal .cal-cell.sel{outline:2px solid var(--brown);outline-offset:-2px}
.yc-dots{display:flex;gap:3px;justify-content:center;min-height:7px}.yc-dots i,.yc-dl i,.yc-legend i{display:inline-block;width:7px;height:7px;border-radius:50%}
.yc-detail{margin-top:10px}.yc-detail:empty{display:none}
.yc-dh{margin:0 0 4px;font-size:14px;color:var(--brown);letter-spacing:.06em}
.yc-dl{margin:0;font-size:14px;line-height:1.9;display:flex;align-items:center;gap:8px}
.yc-legend{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:center;margin-top:10px;font-size:12.5px;color:#7a6a58}.yc-legend span{display:inline-flex;align-items:center;gap:5px}.yc-legend:empty{display:none}
.v-other{margin:10px 0 0;padding-top:10px;border-top:1px dashed #d8cdb9;font-size:13px;line-height:1.8;color:#7a6a58}
.v-kc-empty{margin:0;padding:22px 18px;text-align:center;background:#fbf8f1;border:1px dashed #d1c5b0;border-radius:12px;font-size:14.5px;color:#7a6a58;line-height:1.9}
/* 各地の施術会カード：写真＋下に向かって白くなるグラデーション */
.v-kc{position:relative;padding:0;gap:0;overflow:hidden;box-shadow:0 2px 10px rgba(80,60,40,.08)}
.v-kc::before{content:"";display:block;height:150px;background:#e8e0d0 var(--ph) center/cover no-repeat}
.v-kc::after{content:"";position:absolute;left:0;right:0;top:0;height:150px;background:linear-gradient(180deg,rgba(45,34,26,.28) 0%,rgba(45,34,26,0) 30%,rgba(251,248,241,0) 45%,#fbf8f1 100%);pointer-events:none}
.v-kc h4{position:absolute;z-index:2;left:14px;top:14px;margin:0;background:#6f8f62;color:#fff;font-weight:700;font-size:15px;letter-spacing:.08em;line-height:1.5;padding:6px 18px;border-radius:99px;max-width:calc(100% - 28px)}
.v-kc dl{margin:2px 20px 0}
.v-kc .btn{margin:16px 20px 20px;align-self:flex-start}
.v-kc dl:last-child{margin-bottom:20px}

/* 施術会の見出しを目立たせる */
h3.v-sub.v-sub-em{font-size:27px;font-weight:700;letter-spacing:.12em;color:var(--green);margin:64px 0 26px;padding:16px 22px 16px 24px;background:linear-gradient(90deg,#e4ead6,rgba(228,234,214,0));border-left:7px solid var(--green);border-radius:4px 14px 14px 4px;line-height:1.4}
@media(max-width:820px){h3.v-sub.v-sub-em{font-size:21px;margin:48px 0 20px;padding:13px 16px 13px 18px;border-left-width:6px}}
h3.v-sub.v-sub-em{background:var(--green);color:#fff;border-left:0;border-radius:12px;box-shadow:0 4px 14px rgba(77,95,71,.22);padding:15px 26px}

/* 色の統一・学ぶセクション */
.v-kc h4{background:#c98a74}
.sr-learn{background:#c98a74;color:#fff}.sr-learn h2{text-align:left}.sr-learn .sr-t p,.sr-learn p{color:#fff}
.sr-learn .k{display:inline-block}
.sr-learn .v-lem{color:#fff;background:rgba(255,255,255,.16)}
.v-lask{margin-top:34px}.v-lbtn{margin:18px 0 0}
.v-lbtn .btn{background:#fff;color:#a8644d;border-color:#fff;font-weight:700}
.sr-learn p{margin-bottom:.9em}
@media(max-width:820px){.pcbr{display:none}}
.sr-learn .sr-bubbles p{color:#8a4f3b}
.sr-learn .v-lask{margin-top:44px;padding-top:30px;border-top:1px solid rgba(255,255,255,.5);font-size:19px;font-weight:700;letter-spacing:.08em;line-height:1.9}
.sr-learn .v-lask .k{display:inline-block}
@media(max-width:820px){.sr-learn .v-lask{margin-top:34px;padding-top:24px;font-size:16.5px}}
.sr-learn .ln-grid{max-width:1040px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:48px;align-items:start}
.sr-learn .ln-ph{position:sticky;top:24px;background:rgba(255,255,255,.18);border:1px dashed rgba(255,255,255,.7)}.sr-learn .ln-ph span{color:#fff}
@media(max-width:820px){.sr-learn .ln-grid{grid-template-columns:1fr;gap:30px}.sr-learn .ln-ph{position:static;aspect-ratio:3/2}}
.sr-learn .ln-img{aspect-ratio:4/5;border:0;background:none;border-radius:12px;overflow:hidden;box-shadow:0 6px 20px rgba(60,35,25,.25)}
.sr-learn .ln-img img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;display:block}
@media(max-width:820px){.sr-learn .ln-img{aspect-ratio:4/3}.sr-learn .ln-img img{object-position:50% 52%}}
.sr-learn{background:#b98230}
.sr-learn .v-lbtn .btn{color:#8f6420}
.hn-img{aspect-ratio:4/5;border-radius:12px;overflow:hidden;box-shadow:0 6px 20px rgba(60,40,25,.18)}
.hn-img img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block}
@media(max-width:820px){.hn-img{aspect-ratio:1/1}}
.v-talk.has-ph{display:grid;grid-template-columns:300px minmax(0,1fr);gap:36px;align-items:start}
.vt-ph{aspect-ratio:3/4;border-radius:12px;overflow:hidden;box-shadow:0 6px 18px rgba(60,40,25,.15);position:sticky;top:24px}
.vt-ph img{width:100%;height:100%;object-fit:cover;display:block}
.vt-b h4{margin-top:0}
@media(max-width:820px){.v-talk.has-ph{grid-template-columns:1fr;gap:20px}.vt-ph{aspect-ratio:4/5;position:static}.vt-ph img{object-position:50% 30%}}
.spbr{display:none}.ln-sp{display:none}
@media(max-width:820px){.spbr{display:inline}
.sr-learn .ln-grid>.ln-img{display:none}
.sr-learn .ln-sp{display:block;aspect-ratio:16/10;margin:30px 0 0}
.sr-learn .ln-sp img{object-position:50% 50%}
.sr-learn .v-lask{margin-top:30px}}
@media(max-width:820px){.sr-learn .v-lask{font-size:15px;letter-spacing:.05em}}
.kj-grid{max-width:1040px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:48px;align-items:start}
.kj-ph{display:grid;gap:18px;position:sticky;top:24px}
.kj-i{border-radius:12px;overflow:hidden;box-shadow:0 6px 18px rgba(60,40,25,.15)}.kj-i img{width:100%;display:block}
@media(max-width:820px){.kj-grid{grid-template-columns:1fr;gap:28px}.kj-ph{grid-template-columns:1fr 1fr;gap:12px;position:static}}
@media(max-width:820px){.kj-tx p{font-size:13.5px;letter-spacing:.02em}}
.kj-grid{grid-template-columns:minmax(0,1fr) 236px;gap:80px;max-width:980px}
.kj-ph{gap:14px;position:static}
@media(max-width:820px){.kj-grid{grid-template-columns:1fr;gap:28px}.kj-ph{grid-template-columns:1fr 1fr}}
.v-sessions{grid-template-columns:repeat(2,minmax(0,1fr))}
.v-sess{overflow:hidden;padding:0 0 24px}
.v-sess>*:not(.vs-ph){margin-left:24px;margin-right:24px}
.vs-ph{aspect-ratio:3/2;background:#e8e0d0;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.vs-ph span{font-size:13px;color:#7a6a58}
.vs-ph img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:820px){.v-sessions{grid-template-columns:1fr}}
.vs-ph{aspect-ratio:2/1}
/* 個人セッション：小さな丸写真 */
.v-sess{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:18px;row-gap:6px;align-content:start;padding:24px;overflow:visible}
.v-sess>*:not(.vs-ph){margin-left:0;margin-right:0;grid-column:2}
.v-sess .vs-ph{grid-column:1;grid-row:1/span 3;width:76px;height:76px;aspect-ratio:auto;border-radius:50%;margin:0;overflow:hidden;align-self:start}
.vs-ph span{font-size:10px;line-height:1.3;text-align:center;padding:4px}
.v-sess .btn{grid-column:2;align-self:start;justify-self:start;margin-top:10px}
.v-sess h4{font-size:16px;line-height:1.7}
@media(max-width:820px){.v-sess{padding:20px 18px;column-gap:14px}.v-sess h4{font-size:15px}}
/* 個人セッション：丸写真を右側へ */
.v-sess{grid-template-columns:minmax(0,1fr) 76px}
.v-sess>*:not(.vs-ph){grid-column:1}
.v-sess .vs-ph{grid-column:2}
.v-sess .btn{grid-column:1}
/* 個人セッション：名前を目立たせる */
.v-sess .v-sn{font-size:30px;font-weight:700;letter-spacing:.1em;color:var(--nc,var(--green));margin:2px 0 8px;line-height:1.3}
.v-sess .v-sn::after{content:"";display:block;width:44px;height:4px;border-radius:2px;background:var(--nc,var(--green));margin-top:6px}
@media(max-width:820px){.v-sess .v-sn{font-size:26px}}
.v-sess .v-si .k{display:inline-block}
.v-sess>.v-si{grid-column:1/-1}
.v-sess .v-wait{color:#7a6a58;margin:4px 0 6px}
.v-sess .v-wait .k{display:inline-block}
/* 泊まる：過ごし方の写真（写真＋文章をひとまとまりで中央に） */
.sd-grid{display:grid;grid-template-columns:150px minmax(0,1fr);gap:40px;align-items:start;margin-left:-95px;width:calc(100% + 190px)}
.sd-sec h2{margin-left:95px}
.sd-ph{display:grid;gap:12px}
.sd-ph div{aspect-ratio:1/1;border-radius:12px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.sd-ph img{width:100%;height:100%;object-fit:cover;display:block}
.sd-tx>*:first-child{margin-top:0}
@media(max-width:999px){.sd-grid{grid-template-columns:1fr;gap:20px;margin-left:0;width:auto}.sd-sec h2{margin-left:0}.sd-ph{grid-template-columns:repeat(3,1fr);gap:8px}.sd-ph div{border-radius:8px}}

/* 泊まる：場所の写真（文章の右横に2枚） */
.place{display:flex;flex-direction:column}
.pl-ph{order:3;margin:14px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:420px}
.pl-ph div{aspect-ratio:4/3;border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.pl-ph img{width:100%;height:100%;object-fit:cover;display:block}
@media(min-width:700px){.place{display:block;position:relative;min-height:140px}.pl-ph{position:absolute;right:0;top:12px;width:330px;margin:0;gap:10px}.place .body{max-width:calc(100% - 360px)}}

/* 泊まる：ページ上部の3つの入口（横長カードを縦に3つ。「会いに行く」のカードに合わせたデザイン） */
html{scroll-behavior:smooth}
#stay-detail{scroll-margin-top:24px}
.st-ways{padding-bottom:12px}
.st-cards{display:grid;grid-template-columns:1fr;gap:16px;margin-top:6px}
.st-card{display:grid;grid-template-columns:38% 1fr;grid-template-rows:auto auto 1fr;align-content:center;column-gap:0;overflow:hidden;background:#fbf8f1;border-radius:14px;box-shadow:0 2px 10px rgba(80,60,40,.08);color:var(--ink);text-decoration:none;transition:transform .25s,box-shadow .25s;min-height:170px}
.st-card::before{content:"";grid-column:1;grid-row:1/span 3;background:#e8e0d0 var(--ph) var(--pp,center)/cover no-repeat;min-height:170px}
.st-card h3{grid-column:2;grid-row:1;align-self:end;justify-self:start;margin:22px 24px 0;display:inline-block;color:#fff;font-weight:700;border-radius:99px;padding:5px 18px;font-size:16px;line-height:1.6}
.st-card:nth-child(1) h3{background:#6f8f62}
.st-card:nth-child(2) h3{background:#5f8f9a}
.st-card:nth-child(3) h3{background:#cf7f68}
.st-card:nth-child(4) h3{background:#b98230}
.st-tx{grid-column:2;grid-row:2;margin:12px 24px 0;font-size:14px;line-height:1.95;letter-spacing:.03em}
.st-go{grid-column:2;grid-row:3;margin:6px 24px 18px;font-size:13px;color:var(--brown);letter-spacing:.06em}
.st-card .st-tx:last-child{margin-bottom:22px}
a.st-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(60,40,25,.2)}
a.st-card:focus-visible{outline:3px solid var(--green);outline-offset:2px}
@media(max-width:820px){.st-card{grid-template-columns:34% 1fr;min-height:150px}.st-card::before{min-height:150px}.st-card h3{margin:16px 14px 0;font-size:14px;padding:4px 14px}.st-tx{margin:10px 14px 0;font-size:13px;line-height:1.85}.st-go{margin:4px 14px 14px;font-size:12px}.st-card .st-tx:last-child{margin-bottom:16px}}
.st-ways h2{text-wrap:balance}
@media(max-width:820px){.st-card h3{font-size:12.5px;padding:4px 10px;letter-spacing:.02em;white-space:nowrap}}
@media(max-width:820px){.st-card{grid-template-columns:40% 1fr}.st-card:nth-child(1)::before{background-position:68% center}.st-card:nth-child(2)::before{background-position:18% center}.st-card:nth-child(4)::before{background-position:62% center}}

/* 泊まる：カードの文章と、リンク先のタイトル */
.st-tx p{margin:0 0 .55em}.st-tx p:last-child{margin-bottom:0}
.st-title{margin:34px 0 0;padding:26px 0 0;border-top:1px solid rgba(138,91,66,.35)}
.st-title h2{font-size:30px;letter-spacing:.12em;line-height:1.5;color:var(--green);margin:0}
.st-title+.sec{padding-top:18px}
@media(max-width:520px){.st-title h2{font-size:24px}}
/* 泊まる：3つの入口は、PCでは本文より少し広く */
@media(min-width:1000px){.st-ways{width:min(1120px,calc(100vw - 80px));margin-left:50%;transform:translateX(-50%)}}
@media(max-width:820px){.st-card:nth-child(3)::before{background-position:10% center}}

/* 泊まる：4つのカード（PCは2列×2段）／リンク／詳しいご案内の目次 */
.st-card{position:relative;grid-template-rows:auto auto 1fr;align-content:stretch}
.st-go{grid-column:2;grid-row:3;align-self:end;margin:8px 24px 18px;font-size:13px;letter-spacing:.06em}
.st-lk{color:var(--brown);border-bottom:1px solid currentColor;padding-bottom:1px;text-decoration:none}
.st-lk:hover{opacity:.7}
.st-lk:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.st-go.st-go2{display:flex;flex-wrap:wrap;gap:6px 18px}
.st-go.st-soon{color:#a89a8a}
.st-card>.st-go:has(.st-lk:only-child) .st-lk::after{content:"";position:absolute;inset:0}
@media(min-width:900px){
.st-cards{grid-template-columns:1fr 1fr;gap:20px}
.st-card{grid-template-columns:38% 1fr}
.st-card h3{margin:20px 20px 0;font-size:15px;padding:4px 16px}
.st-tx{margin:10px 20px 0;font-size:13px;line-height:1.85}
.st-go{margin:8px 20px 16px;font-size:12.5px}
}
.st-title h2{text-wrap:balance}
.st-tabs{position:sticky;top:0;z-index:20;display:flex;gap:8px;margin:14px 0 4px;padding:10px 0;background:rgba(246,241,231,.96);backdrop-filter:blur(4px);overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
.st-tabs a{flex:0 0 auto;padding:7px 18px;border-radius:99px;border:1px solid rgba(77,95,71,.45);color:var(--green);font-size:14px;letter-spacing:.06em;text-decoration:none;background:#fbf8f1}
.st-tabs a.on{background:var(--green);color:#fff;border-color:var(--green)}
.st-tabs a.cal{background:var(--brown);border-color:var(--brown);color:#fff}
.st-tabs a.cal.on{outline:2px solid var(--brown);outline-offset:2px}
.st-tabs a:focus-visible{outline:3px solid var(--green);outline-offset:2px}
#d-stay,#d-price,#sec-cal,#d-guide{scroll-margin-top:64px}
@media(max-width:520px){.st-tabs{gap:6px;margin-left:-16px;margin-right:-16px;padding:9px 16px}.st-tabs a{padding:6px 14px;font-size:13px}}
@media(max-width:899px){.st-go{margin:6px 14px 14px;font-size:12px}.st-go.st-go2{flex-direction:column;gap:6px;align-items:flex-start}.st-lk{white-space:nowrap}}
@media(min-width:821px) and (max-width:899px){.st-go{margin:8px 24px 18px;font-size:13px}}

/* 泊まる：カードは写真を上に大きく（引きの写真が見えるように） */
.st-card{grid-template-columns:1fr!important;grid-template-rows:auto auto 1fr!important}
.st-card::before{grid-column:1!important;grid-row:1!important;aspect-ratio:3/2;min-height:0!important;background-position:center!important}
.st-card h3{grid-column:1!important;grid-row:1!important;align-self:start;justify-self:start;margin:14px!important;z-index:2;font-size:14px;padding:4px 14px}
.st-tx{grid-column:1!important;grid-row:2!important;margin:14px 18px 0!important;font-size:13.5px;line-height:1.9}
.st-go{grid-column:1!important;grid-row:3!important;margin:10px 18px 16px!important;font-size:13px}
@media(max-width:899px){.st-card::before{aspect-ratio:16/10}.st-go.st-go2{flex-direction:row;gap:6px 16px;flex-wrap:wrap}}
/* 泊まる：横長カード（写真が左、文章が右）を縦に4つ。狭いスマホだけ、写真を上に */
@media(min-width:1000px){.st-ways{width:min(1040px,calc(100vw - 80px))}}
@media(min-width:640px){
.st-cards{grid-template-columns:1fr!important;gap:18px}
.st-card{grid-template-columns:42% 1fr!important;grid-template-rows:auto auto 1fr!important}
.st-card::before{grid-column:1!important;grid-row:1/span 3!important}
.st-card h3{grid-column:2!important;grid-row:1!important;align-self:end;margin:24px 28px 0!important;font-size:16px;padding:5px 18px}
.st-tx{grid-column:2!important;grid-row:2!important;margin:12px 28px 0!important;font-size:14px;line-height:1.95}
.st-go{grid-column:2!important;grid-row:3!important;margin:10px 28px 22px!important;font-size:13px}
}
@media(min-width:640px) and (max-width:999px){.st-card::before{aspect-ratio:auto!important;min-height:200px!important}}
/* 泊まる：さらに横長に（写真を少し細く、文章の幅を広く） */
@media(min-width:1000px){.st-ways{width:min(1200px,calc(100vw - 64px))}}
@media(min-width:1000px){.st-card{grid-template-columns:34% 1fr!important}.st-card h3{margin:22px 24px 0!important}.st-tx{margin:10px 24px 0!important;font-size:14px;line-height:1.9}.st-tx p{margin-bottom:.4em}.st-go{margin:8px 24px 18px!important}}
/* 泊まる：「詳しいご案内」のタイトルを、カードの左端にそろえて、楕円の背景をつける */
.st-title{border-top:0;padding-top:0;margin-top:44px}
.st-title h2{display:inline-block;background:#6f8f62;color:#fff;font-weight:700;border-radius:99px;padding:8px 30px;font-size:22px;letter-spacing:.1em;line-height:1.6}
@media(min-width:1000px){.st-title{width:min(1200px,calc(100vw - 64px));margin-left:50%;transform:translateX(-50%)}}
@media(max-width:520px){.st-title h2{font-size:17px;padding:7px 20px;letter-spacing:.06em}}
@media(min-width:1000px){.st-tabs{width:min(1200px,calc(100vw - 64px));margin-left:50%;transform:translateX(-50%)}}

/* 泊まる：カードをタップして移動する先（土台） */
.st-t2 h2{background:#6f8f62}
.st-t2.st-c2 h2{background:#5f8f9a}
.st-t2.st-c3 h2{background:#cf7f68}
.st-t2.st-c4 h2{background:#b98230}
.st-t2{margin-top:48px;scroll-margin-top:24px}
.st-detail{display:block}
.st-intro{padding-top:16px}
.st-soon-note{color:#8a7c6d}
.st-links{display:flex;flex-wrap:wrap;gap:8px 24px}
.st-card:has(.st-lk){cursor:pointer;transition:transform .25s,box-shadow .25s}
.st-card:has(.st-lk):hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(60,40,25,.2)}
.st-card:has(.st-lk):focus-within{outline:3px solid var(--green);outline-offset:2px}
.st-card .st-lk:focus-visible{outline:none}

/* 泊まる：各紹介の問い合わせボタン／スマホの「お問合せ」ボタン */
.st-cta{margin:20px 0 0}
.st-cta .btn{display:inline-block}
.st-fab{display:none}
@media(max-width:820px){
.st-fab{display:flex;position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:30;align-items:center;justify-content:center;padding:11px 20px;border-radius:99px;background:var(--brown);color:#fff;font-size:14px;letter-spacing:.08em;text-decoration:none;box-shadow:0 4px 14px rgba(60,40,25,.3);transition:opacity .25s,transform .25s}
.st-fab.off{opacity:0;pointer-events:none;transform:translateY(10px)}
main.page{padding-bottom:64px}
}

/* 泊まる：詳しいご案内を1か所で切り替える／宿泊カレンダー／ご利用案内（開閉式） */
.st-pane[hidden]{display:none!important}
.st-panes{scroll-margin-top:16px;margin-top:8px}
.st-pane>.st-title{margin-top:0}
#sec-cal,#d-guide{scroll-margin-top:16px}
.st-card:nth-child(1){--c:#6f8f62}.st-card:nth-child(2){--c:#5f8f9a}.st-card:nth-child(3){--c:#cf7f68}.st-card:nth-child(4){--c:#b98230}
.st-card.is-on{box-shadow:0 0 0 3px var(--c),0 8px 22px rgba(60,40,25,.18)!important}
.st-card.is-on .st-lk{font-weight:700;color:var(--c)}
.st-card.is-on:has(.st-lk):hover{transform:none}
.st-cta2{display:flex;flex-wrap:wrap;gap:12px}
.st-cta2 .btn{margin:0}
.st-cta2 .btn-cal{background:var(--brown)}
body[data-pane="gasshuku"] .pcta,body[data-pane="volunteer"] .pcta,body[data-pane="volunteer"] .st-fab{display:none}
.st-calsec{margin-top:40px}
.st-guide{margin-top:40px}
.st-guide-note{font-size:14px;color:#6b5f52}
.acs{margin-top:16px;border-top:1px solid #e2d8c8}
.ac{border-bottom:1px solid #e2d8c8}
.ac summary{list-style:none;cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;padding:16px 36px 16px 4px;position:relative;font-size:16px;letter-spacing:.06em;color:var(--green);font-weight:600}
.ac summary::-webkit-details-marker{display:none}
.ac summary::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:400;color:var(--brown);line-height:1}
.ac[open] summary::after{content:"−"}
.ac summary:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.ac-for{font-size:12px;font-weight:400;letter-spacing:.04em;color:var(--brown);background:#efe7d8;border-radius:99px;padding:2px 10px}
.ac-b{padding:0 4px 20px}
.ac-b>*:first-child{margin-top:0}

/* 泊まる：「過ごし方」＝文章を左、写真（大1＋小2）を右。箇条書きは白い枠 */
.sd-box{background:#fffdf9;border:1px solid #e6dccb;border-radius:14px;padding:18px 24px;box-shadow:0 3px 12px rgba(80,60,40,.06);margin:18px 0}
.sd-box .dots{margin:0}
.sd-ph{grid-template-columns:1fr 1fr!important;gap:10px!important}
.sd-ph div{aspect-ratio:1/1;border-radius:10px}
.sd-ph div:first-child{grid-column:1/3;aspect-ratio:16/9}
.sd-grid{grid-template-columns:1fr!important;gap:20px!important;margin-left:0!important;width:auto!important}
.sd-sec h2{margin-left:0!important}
@media(min-width:1000px){
#d-stay,#d-kodomo,#d-gasshuku{width:min(1200px,calc(100vw - 64px));margin-left:50%;transform:translateX(-50%)}
.sd-grid{grid-template-columns:minmax(0,1fr) 340px!important;gap:56px!important}
.sd-ph{order:2;gap:12px!important}
.sd-tx{max-width:780px}
}

/* 泊まる：「宿泊について」＝文章は右、写真は左 */
.pr-grid{display:grid;grid-template-columns:1fr;gap:20px}
.pr-ph{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pr-ph div{aspect-ratio:4/3;border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.pr-ph img{width:100%;height:100%;object-fit:cover;display:block}
.pr-tx>h2:first-child{margin-top:0}
@media(min-width:1000px){
#d-price,#d-kprice{width:min(1200px,calc(100vw - 64px));margin-left:50%;transform:translateX(-50%)}
.pr-grid{grid-template-columns:300px minmax(0,720px);gap:56px;align-items:start}
.pr-ph{grid-template-columns:1fr;gap:12px;padding-top:56px}
}

/* 他人家族合宿・ボランティアを選んだときは、宿泊カレンダーを隠す */
body[data-pane="gasshuku"] #sec-cal,body[data-pane="volunteer"] #sec-cal,body[data-pane="gasshuku"] #cal-jump,body[data-pane="volunteer"] #cal-jump{display:none!important}

/* お問合せ：宿泊希望日を、カレンダーをタップして選ぶ */
.cform .dp{background:#fbf8f1;border-radius:10px;padding:14px 12px 12px;margin:4px 0 6px}
.cform .dp[hidden]{display:none}
.dp-lead{font-size:13px;line-height:1.8;margin:0 0 8px;color:#6b5f52}
.dp-nav{display:flex;align-items:center;justify-content:space-between;margin:4px 0 6px}
.dp-title{font-size:17px;letter-spacing:.1em}
.cform .dp-nav button{width:40px;height:36px;border:1px solid #c9bda8;border-radius:8px;background:#fff;color:var(--green);font-size:22px;line-height:1;cursor:pointer;padding:0}
.cform .dp-nav button[disabled]{opacity:.35;cursor:default}
.dp-load{font-size:13px;color:#7a6a58;padding:20px 0;text-align:center;margin:0}
.dp-grid{padding:0;background:none}
.cform button.dp-cell{border:0;font:inherit;color:inherit;padding:0;margin:0;width:auto;min-height:48px;cursor:pointer;background:transparent;border-radius:6px}
.cform button.dp-cell[disabled]{cursor:default}
.cform button.dp-cell:not([disabled]):hover{outline:2px solid #c9bda8;outline-offset:-2px}
.cform button.dp-cell.past{opacity:.35}
.cform button.dp-cell.no{opacity:.7}
.cform button.dp-cell.inrange{background:#e6dcc5}
.cform button.dp-cell.sel{background:var(--brown)!important;outline:none}
.cform button.dp-cell.sel .cal-d,.cform button.dp-cell.sel .cal-m{color:#fff!important}
.cform button.dp-cell:focus-visible{outline:3px solid var(--green);outline-offset:1px}
.dp-legend{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px}
.dp-legend li{display:flex;align-items:center;gap:5px}
.dp-legend .cal-mark{width:22px;height:22px;font-size:12px}
.dp-sum{font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--green);margin:12px 0 0;min-height:1.6em}
.dp-warn{font-size:13px;color:#a0502f;margin:4px 0 0}
.dp-warn:empty{display:none}
.dp-note{margin:6px 0 0}
@media(max-width:520px){.cform button.dp-cell{min-height:44px}.dp-legend{font-size:11.5px}}

/* 子供ひとり旅プラン：4枚目の写真（横長）は、2列ぶんの幅で見せる */
.sd-ph div:nth-child(4){grid-column:1/3;aspect-ratio:16/9}
.sd-ph div:nth-child(5){grid-column:1/3;justify-self:center;width:68%;aspect-ratio:4/5}

/* 「過ごし方」：写真の列を少し細くして、文章の幅を広げる（1行を長く、改行を少なく） */
@media(min-width:1000px){
.sd-grid{grid-template-columns:minmax(0,1fr) 320px!important;gap:44px!important}
.sd-tx{max-width:none}
}

/* 子供ひとり旅プラン「料金について」の写真：大1枚（縦長）＋小2枚 */
#d-kprice .pr-ph{grid-template-columns:1fr 1fr!important;gap:10px!important}
#d-kprice .pr-ph div{aspect-ratio:1/1}
#d-kprice .pr-ph div:first-child{grid-column:1/3;aspect-ratio:2/3}
@media(max-width:999px){#d-kprice .pr-ph div:first-child{width:72%;justify-self:center}}
/* 「料金について」の写真：縦長1枚＋横長1枚（切らずに全体を見せる） */
#d-kprice .pr-ph{grid-template-columns:1fr!important}
#d-kprice .pr-ph div:first-child{grid-column:1}
#d-kprice .pr-ph div:nth-child(2){aspect-ratio:4/3}
/* 合宿：右の写真4枚／下段の文章の改行 */
#d-gasshuku .sd-ph div:nth-child(n){aspect-ratio:2/3;grid-column:auto;width:auto;justify-self:stretch}
#d-gasshuku .sd-ph div:nth-child(1){grid-column:1/3;aspect-ratio:4/5}
#d-gasshuku .sd-ph div:nth-child(2){grid-column:1/3;aspect-ratio:4/3}
#d-gasshuku .gs-p .k{display:inline-block}
@media(max-width:999px){#d-gasshuku .sd-ph{grid-template-columns:1fr 1fr!important;gap:10px!important}}
#d-gasshuku .gs-p{text-wrap:balance}
/* 合宿：プランと料金 */
@media(min-width:1000px){#d-gprice{width:min(1200px,calc(100vw - 64px));margin-left:50%;transform:translateX(-50%)}}
.gp-sec{margin-top:36px}
.gp-plans{display:grid;grid-template-columns:1fr;gap:14px;margin:18px 0}
.gp-plan{background:#fffdf9;border:1px solid #e6dccb;border-radius:14px;padding:20px 22px;box-shadow:0 3px 12px rgba(80,60,40,.06)}
.gp-tag{display:inline-block;background:#cf7f68;color:#fff;border-radius:999px;padding:3px 16px;font-size:15px;letter-spacing:.08em}
.gp-who{margin:12px 0 8px;font-weight:700;color:var(--green);line-height:1.7}
.gp-d{margin:0;font-size:14px;line-height:1.9}
.gp-bonus{background:var(--paper);border-radius:12px;padding:14px 18px;font-size:14px;line-height:1.9;margin:0 0 8px}
.gp-bonus b{color:var(--brown)}
.gp-h{font-size:18px;color:var(--green);margin:30px 0 12px;padding-left:12px;border-left:4px solid var(--brown)}
.gp-table{width:100%;border-collapse:separate;border-spacing:0;background:#fffdf9;border:1px solid #e6dccb;border-radius:14px;overflow:hidden;box-shadow:0 3px 12px rgba(80,60,40,.06)}
.gp-table th,.gp-table td{padding:14px 10px;text-align:center;border-bottom:1px solid #eee4d3;font-size:15px;line-height:1.5}
.gp-table thead th{background:var(--green);color:#fff;font-size:13px;font-weight:600}
.gp-table tbody th{background:var(--paper);color:var(--green);white-space:nowrap}
.gp-table td{font-size:18px;color:#4a3a2e;font-variant-numeric:tabular-nums}
.gp-table tbody tr:last-child th,.gp-table tbody tr:last-child td{border-bottom:0}
.gp-base{font-size:14px;margin:12px 0 0;line-height:1.9}
.gp-in{background:#fffdf9;border:1px solid #e6dccb;border-radius:14px;padding:4px 24px 18px;margin:26px 0 0}
.gp-in .dots{margin:0 0 12px}
.gp-notes{list-style:none;margin:0;padding:12px 0 0;border-top:1px dashed #d9cdb8;font-size:13px;line-height:1.9;color:#6b5a4c}
.gp-notes li:before{content:"※";margin-right:4px}
@media(min-width:1000px){.gp-plans{grid-template-columns:repeat(3,1fr);gap:18px}}
@media(max-width:699px){
.gp-table,.gp-table tbody{display:block;background:none;border:0;box-shadow:none}
.gp-table thead{display:none}
.gp-table tr{display:block;background:#fffdf9;border:1px solid #e6dccb;border-radius:14px;margin-bottom:12px;overflow:hidden;box-shadow:0 3px 12px rgba(80,60,40,.06)}
.gp-table tbody th{display:block;text-align:left;padding:10px 16px;border:0;font-size:16px}
.gp-table td{display:flex;justify-content:space-between;align-items:center;text-align:right;padding:10px 16px;font-size:17px}
.gp-table td:before{content:attr(data-l);font-size:13px;color:#6b5a4c;text-align:left}
.gp-table tbody tr:last-child td{border-bottom:0}
.gp-table tbody tr:last-child td:last-child{border-bottom:0}
}
@media(max-width:999px){#d-gasshuku .gs-p .k{display:inline}#d-gasshuku .gs-p{text-wrap:auto}}
@media(min-width:1000px){.gp-in .dots{columns:2;column-gap:40px}.gp-in .dots li{break-inside:avoid}}
/* 合宿：料金（新） */
.gp-table th:first-child{text-align:left;padding-left:18px}
.gp-table thead th{font-size:15px;padding:18px 8px 14px;position:relative}
.gp-table thead th:first-child{font-size:13px}
.gp-table .gp-rec{background:#fbeee6}
.gp-table thead th.gp-rec{background:var(--brown);color:#fff}
.gp-table td.gp-rec{font-weight:700;color:var(--brown);box-shadow:inset 3px 0 0 #e8c9b8,inset -3px 0 0 #e8c9b8}
.gp-table tbody tr:last-child td.gp-rec{box-shadow:inset 3px 0 0 #e8c9b8,inset -3px 0 0 #e8c9b8}
.gp-badge{display:block;font-size:11px;background:#fff;color:var(--brown);border-radius:999px;padding:1px 10px;margin:0 auto 4px;width:max-content;letter-spacing:.1em}
.gp-intro,.gp-oya,.gp-end{max-width:760px}
.gp-intro .body b{color:var(--brown)}
.gp-two{display:grid;grid-template-columns:1fr;gap:16px;margin-top:26px}
.gp-two .gp-in{margin:0}
.gp-out{background:#fbf6ee}
.gp-end{margin-top:6px}
@media(min-width:1000px){.gp-two{grid-template-columns:1fr 1fr;gap:20px}.gp-two .dots{columns:1!important}}
@media(max-width:699px){
.gp-table{display:table!important;background:#fffdf9!important;border:1px solid #e6dccb!important;border-radius:14px!important;overflow:hidden}
.gp-table tbody{display:table-row-group!important}
.gp-table thead{display:table-header-group!important}
.gp-table tr{display:table-row!important;border:0!important;margin:0!important;border-radius:0!important;box-shadow:none!important}
.gp-table th,.gp-table td{display:table-cell!important;padding:12px 3px!important;font-size:13px!important;text-align:center!important;border-bottom:1px solid #eee4d3!important}
.gp-table td:before{content:none!important}
.gp-table th:first-child,.gp-table tbody th{text-align:left!important;padding-left:10px!important;font-size:12px!important;white-space:normal!important;width:25%}
.gp-table thead th{font-size:12px!important;padding:12px 2px 8px!important}
.gp-table td{font-size:13px!important;letter-spacing:-.02em}
.gp-badge{font-size:10px;padding:0 6px}
}
.gp-table tbody th{width:26%}
@media(max-width:699px){.gp-table th:first-child,.gp-table tbody th{width:33%!important;font-size:11.5px!important;padding-left:8px!important}.gp-table td{font-size:12.5px!important}}
.gp-intro{max-width:900px}
/* ボランティア */
.vl-tx{max-width:780px}
@media(min-width:1000px){#d-volunteer{width:min(1200px,calc(100vw - 64px));margin-left:50%;transform:translateX(-50%)}}
.vl-tx .body b{color:var(--brown)}
.vl-free{margin:18px 0 8px}.vl-free .body{margin:0}
.vl-btns{display:flex;flex-wrap:wrap;gap:12px}
/* ボランティア：写真と枠 */
#d-volunteer .vl-tx{max-width:none}
.vl-apply{margin:26px 0 0;padding:6px 24px 22px}
.vl-apply .gp-h{margin-top:20px}
#d-volunteer .sd-ph div:nth-child(n){aspect-ratio:3/4;grid-column:auto;width:auto;justify-self:stretch}
#d-volunteer .sd-ph div:nth-child(1){grid-column:1/3;aspect-ratio:1/1}
#d-volunteer .sd-ph div:nth-child(4){grid-column:1/3;aspect-ratio:4/3}
@media(max-width:999px){#d-volunteer .sd-ph{grid-template-columns:1fr 1fr!important;gap:10px!important}}
body[data-pane="volunteer"] #d-guide{display:none!important}
/* 泊まる：ほかのプランへのリンク */
.st-others{margin:44px 0 8px;padding-top:26px;border-top:1px dashed #d9cdb8}
.st-others-t{font-size:20px;color:var(--green);margin:0 0 14px}
.st-others-l{display:flex;flex-wrap:wrap;gap:10px}
.st-oth{display:inline-block;color:#fff;text-decoration:none;border-radius:999px;padding:11px 22px;font-size:15px;letter-spacing:.06em;box-shadow:0 3px 10px rgba(60,40,25,.14)}
.st-o-stay{background:#6f8f62}.st-o-kodomo{background:#5f8f9a}.st-o-gasshuku{background:#cf7f68}.st-o-volunteer{background:#b98230}
.st-oth:hover{opacity:.88}
@media(max-width:699px){.st-others-l{flex-direction:column}.st-oth{text-align:center}}
@media(min-width:1000px){.st-others{width:min(1200px,calc(100vw - 64px));margin-left:50%;transform:translateX(-50%)}}
/* 会いに行く：メニューを切り替えて下に表示 */
.vp-pane[hidden]{display:none!important}
a.v-card.is-on{box-shadow:0 0 0 3px var(--green),0 10px 24px rgba(60,40,25,.2)}
a.v-card:nth-child(1).is-on{box-shadow:0 0 0 3px #6f8f62,0 10px 24px rgba(60,40,25,.2)}
a.v-card:nth-child(2).is-on{box-shadow:0 0 0 3px #cf7f68,0 10px 24px rgba(60,40,25,.2)}
a.v-card:nth-child(3).is-on{box-shadow:0 0 0 3px #b98230,0 10px 24px rgba(60,40,25,.2)}
a.v-card:nth-child(4).is-on{box-shadow:0 0 0 3px #c27a86,0 10px 24px rgba(60,40,25,.2)}
.vp-panes{scroll-margin-top:16px}
.st-o-sora{background:#6f8f62}.st-o-hanashi{background:#cf7f68}.st-o-kojin{background:#b98230}.st-o-premium{background:#c27a86}
.vp-oth{padding:20px 0 56px}
.vp-oth .st-others{margin:0;padding-top:26px;width:auto;transform:none}
@media(min-width:1000px){.vp-oth .st-others{width:auto;margin-left:0;transform:none}}
@media(max-width:699px){.vp-oth .sr-in{padding-left:20px;padding-right:20px}}
.v-end .v-one{white-space:nowrap}
@media(max-width:699px){.v-end .v-one{white-space:normal}}
.v-town{margin-top:36px;padding-top:30px}.v-town h3{margin-bottom:10px}.v-town p{line-height:1.9}
.v-town-p{white-space:nowrap}
@media(max-width:699px){.v-town-p{white-space:normal}.v-town-p .pcbr{display:none}}
.mem .lead-m p{margin:0 0 10px;line-height:1.9}.mem .lead-m p:last-child{margin-bottom:0}
/* スマホ：読みやすい改行／子供ひとり旅の写真の並び */
.kd-mid{display:none}
@media(max-width:999px){
#d-kodomo .sd-ph div:nth-child(n+4){display:none}
.kd-mid{display:block;margin:18px 0 6px}
.kd-wide{aspect-ratio:16/9;border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.kd-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.kd-pair div{aspect-ratio:3/4;border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.kd-wide img,.kd-pair img{width:100%;height:100%;object-fit:cover;display:block}
}
@media(max-width:520px){
.plead{font-size:17px;letter-spacing:.04em;text-wrap:wrap}
.plead br.pc{display:none}
.st-ways h2{font-size:21px;line-height:1.7;letter-spacing:.06em}
}
@media(max-width:999px){.kd-mid{margin:18px 0 20px}}
/* スマホ：過ごし方の最後に写真3枚（上2枚・下1枚）。料金側の同じ写真はスマホでは隠す */
.kd-end{display:none}
@media(max-width:999px){
.kd-end{display:block;margin:22px 0 4px}
.kd-end .kd-pair{margin-top:0}
.kd-fruit{aspect-ratio:4/3;border-radius:10px;overflow:hidden;margin-top:10px;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.kd-fruit img{width:100%;height:100%;object-fit:cover;display:block}
#d-kprice .pr-ph{display:none}
}
/* スマホ：合宿・ボランティアの写真を文章の間に入れる */
.mb-wide,.mb-pair{display:none}
@media(max-width:999px){
#d-gasshuku .sd-ph div:nth-child(n+2),#d-volunteer .sd-ph div:nth-child(n+2){display:none}
.mb-wide{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;margin:18px 0;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.mb-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.mb-pair div{aspect-ratio:3/4;border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.mb-wide img,.mb-pair img{width:100%;height:100%;object-fit:cover;display:block}
}
/* スマホ：1枚だけ置いている写真は小さめにして、スクロールを減らす */
@media(max-width:999px){
#d-kodomo .sd-ph div:nth-child(1),#d-gasshuku .sd-ph div:nth-child(1),#d-volunteer .sd-ph div:nth-child(1){width:62%;justify-self:center}
.kd-wide,.mb-wide,.kd-fruit{width:62%;margin-left:auto;margin-right:auto}
}
/* 会いに行く（スマホ）：1枚だけの写真は小さめに */
@media(max-width:820px){
.sr-fig,.ky-f,.ln-sp,.hn-img,.vt-ph{width:64%;margin-left:auto;margin-right:auto;justify-self:center}
}
@media(max-width:820px){
.flow-ill{max-width:120px}
.sr-learn .ln-sp{width:64%;margin:26px auto 0;aspect-ratio:4/3}
.sr-learn .ln-sp img{object-position:50% 50%}
}
/* 他人家族とは（スマホ）：写真は小さめに中央へ */
@media(max-width:820px){
.ab-fig,.ab-fig.wide{max-width:none;width:66%;margin-left:auto;margin-right:auto}
.ab-fig{margin-top:22px;margin-bottom:22px}
.ab-fig.wide{margin-top:12px;margin-bottom:32px}
}
/* イベント一覧（スマホ）：はなえさんのカードは、左の女性の顔が入るように */
@media(max-width:520px){.erow .im img[src$="event-5.jpg"]{object-position:0% 30%}}
/* お問合せ：施術会を、カレンダー・一覧から選ぶ */
.vp{margin:6px 0 14px}
.vp-lead{font-size:13px;line-height:1.8;margin:0 0 10px;color:#6b5f52}
.vp-h{font-size:15px;color:var(--green);margin:16px 0 8px;padding-left:10px;border-left:4px solid var(--brown);letter-spacing:.06em;font-weight:600}
.vp-cal{background:#fff;border:1px solid #e0d5c2;border-radius:12px;padding:10px 10px 12px}
.vp-cnote{font-size:12.5px;color:#7a6a58;margin:8px 0 0}
.vp .yc-detail{margin-top:8px}
.vp .yc-legend{justify-content:flex-start}
.vp-list{display:grid;gap:8px}
.cform button.vp-item{display:block;width:100%;text-align:left;background:#fff;border:1px solid #d9cdb8;border-radius:10px;padding:11px 14px;margin:0;font:inherit;color:inherit;cursor:pointer;line-height:1.6}
.cform button.vp-item:hover{border-color:var(--brown)}
.cform button.vp-item.sel{background:#fbeee6;border-color:var(--brown);box-shadow:inset 0 0 0 1px var(--brown)}
.vp-it b{font-size:15px;color:var(--green);margin-right:8px}.vp-it em{font-style:normal;font-size:13px;color:#7a6a58}
.vp-ii{display:block;font-size:13px;color:#4a3a2e;margin-top:2px}
.vp-empty{margin:0;font-size:13px;color:#7a6a58}
.vp-tg{display:flex;align-items:center;justify-content:space-between;width:100%;margin:12px 0 0;padding:14px 16px;border:1px solid #cfc6b4;border-radius:10px;background:#fffdf8;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}
.vp-tg i{width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-4px 4px 0 10px;transition:transform .2s;flex:none}
.vp-tg.is-open i{transform:rotate(225deg);margin-top:4px}
.vp-tg.is-open{background:#f3ecdc}
.vp-cal[hidden],.vp-list[hidden]{display:none}
.cform .pv-box{margin:22px 0 26px;padding:16px 16px 14px;border:1px solid #e3dccb;border-radius:10px;background:#fbf8f1}
.cform .pv-box p{font-size:12.5px;line-height:1.9;margin:0 0 6px;color:#5c5448}
.cform .pv-h{font-size:13.5px;font-weight:700;margin:0 0 8px;color:inherit}
.cform .pv-ck{display:flex;align-items:flex-start;gap:10px;margin:12px 0 0;padding-top:12px;border-top:1px solid #e3dccb;font-size:14px;font-weight:700;cursor:pointer}
.cform .pv-ck input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:#7a5a3a}
.cform .pv-ck em{margin-left:8px}
.lt-h{font-size:15px;font-weight:700;margin:20px 0 8px;color:var(--green);letter-spacing:.04em}
.lt-h2{font-size:14px;margin-top:26px;color:#6b5a4c}
.lt-table{width:100%;border-collapse:separate;border-spacing:0;background:#fffdf9;border:1px solid #e6dccb;border-radius:14px;overflow:hidden;box-shadow:0 3px 12px rgba(80,60,40,.06)}
.lt-table th,.lt-table td{padding:13px 18px;border-bottom:1px solid #eee4d3;line-height:1.5}
.lt-table th{width:50%;text-align:left;font-size:15px;font-weight:600;background:var(--paper);color:var(--green);white-space:nowrap}
.lt-table td{text-align:right;font-size:18px;color:#4a3a2e;font-variant-numeric:tabular-nums}
.lt-table tr:last-child th,.lt-table tr:last-child td{border-bottom:0}
.lt-note{font-size:14px;line-height:1.8;margin:10px 0 0}
.lt-ex{margin:14px 0 0;padding:12px 16px;border:1px dashed #d8c9b0;border-radius:12px;background:#fbf8f1}
.lt-ex p{margin:0}
.lt-ex-t{font-size:13px;font-weight:700;color:var(--green)}
.lt-ex-b{font-size:14.5px;line-height:1.8;margin-top:4px!important}
.lt-ex-b b{font-size:16px;color:var(--brown)}
.lt-ex-s{font-size:12.5px;color:#6b5a4c;margin-top:2px!important}
.lt-kids{font-size:14px;margin-top:6px}
.lt-table,.lt-ex{max-width:480px}
.lt-ex{padding:10px 14px}
.lt-ex-t{font-size:12px}
.lt-ex-b{font-size:12.5px;line-height:1.7;margin-top:3px!important}
.lt-ex-b b{font-size:13.5px}
.lt-ex-s{font-size:11.5px}
#d-price .pr-ph{align-items:start}
#d-price .pr-ph .pr-sq{aspect-ratio:1/1}
@media(max-width:999px){#d-price .pr-ph .pr-sq{aspect-ratio:4/3}#d-price .pr-ph .pr-sq img{object-position:50% 72%}}
.pm-more{padding-top:20px}
.pm-more h2{font-size:22px}
.pm-more .pm-h{font-size:18px;letter-spacing:.08em;line-height:1.7;margin:44px 0 16px;color:var(--brown)}
.pm-more .sr-t b{font-weight:700}
@media(max-width:520px){.pm-more h2{font-size:19px}.pm-more .pm-h{font-size:16.5px;margin-top:36px}.pm-more .sr-t p{font-size:14.5px;line-height:2.1}}
.pm-more{padding-top:8px}
.pm-q{margin-top:26px}
.pm-grid{max-width:960px}
.pm-body .pm-h:first-child{margin-top:0}
@media(min-width:900px){.pm-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:56px;align-items:start}.pm-body{grid-column:2;max-width:560px}.pm-ph{grid-column:1}}
@media(max-width:899px){.pm-ph{display:none}.pm-body{max-width:640px;margin:0 auto}}
@media(min-width:900px){.pm-grid{grid-template-columns:300px minmax(0,1fr);gap:48px}.pm-body{max-width:612px}}
.pm-row{margin:0}
.pm-row+.pm-row{margin-top:8px}
.pm-i{border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14);aspect-ratio:4/5}
.pm-i img{width:100%;height:100%;object-fit:cover;display:block}
.pm-i+.pm-i{margin-top:12px}
@media(min-width:900px){.pm-grid{display:block}.pm-row{display:grid;grid-template-columns:300px minmax(0,1fr);gap:48px;align-items:start}.pm-row .pm-ph{grid-column:1;display:block;padding-top:44px}.pm-row .pm-body{grid-column:2;max-width:612px}.pm-row .pm-body .pm-h{margin-top:44px}}
@media(max-width:899px){.pm-row .pm-ph{display:block;max-width:300px;margin:24px auto 0}.pm-row{display:flex;flex-direction:column}.pm-row .pm-body{order:1}.pm-row .pm-ph{order:2}}
@media(min-width:900px){.pm-grid{display:grid!important;grid-template-columns:260px minmax(0,1fr);gap:48px;align-items:start}.pm-grid .pm-ph{grid-column:1;padding-top:0;max-width:none;margin:0;display:block;order:0}.pm-grid .pm-body{grid-column:2;max-width:612px;order:0}.pm-grid .pm-body .pm-h:first-child{margin-top:0}.pm-grid .pm-i+.pm-i{margin-top:10px}}
@media(max-width:899px){.pm-grid{display:flex!important;flex-direction:column}.pm-grid .pm-body{order:1}.pm-grid .pm-ph{order:2;display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:none;margin:28px 0 0;padding:0}.pm-grid .pm-i+.pm-i{margin-top:0}}
.pm-fin{max-width:760px;margin:56px auto 0;text-align:center;color:var(--brown)}
.pm-fin p{margin:0 0 1.1em;font-size:18px;line-height:2.1;letter-spacing:.08em;text-wrap:balance}
.pm-fin p span{display:inline-block}
.pm-fin-e{margin-bottom:0!important}
@media(max-width:520px){.pm-fin{margin-top:44px}.pm-fin p{font-size:16.5px;letter-spacing:.05em}}
@media(max-width:520px){.pm-fin p{font-size:15px;letter-spacing:.04em}}
.pr-mob,.pm-mob{display:none}
@media(max-width:999px){
#d-price .pr-ph div:nth-child(n+4){display:none}
.pr-mob{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px auto 6px;max-width:420px;justify-items:center}
.pr-mob div{width:100%;aspect-ratio:4/3;border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.pr-mob img{width:100%;height:100%;object-fit:cover;display:block}
.pm-grid .pm-ph{display:none!important}
.pm-mob{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:28px auto 0;max-width:420px}
.pm-mob-b{margin-top:34px}
.pm-mi{aspect-ratio:4/5;border-radius:10px;overflow:hidden;box-shadow:0 5px 16px rgba(60,40,25,.14)}
.pm-mi img{width:100%;height:100%;object-fit:cover;display:block}
}
footer .lgw,footer .lgw a{display:contents}
footer .ft-ev{display:none}
@media(max-width:520px){footer .ft-home{display:none!important}footer .in>a.ft-ev{display:block!important}}
@media(max-width:520px){footer .in>a.ft-ev{border-bottom:0!important;margin-top:0!important}footer .in>a:nth-of-type(n+5){border-bottom:1px solid rgba(255,255,255,.22)!important;margin-top:-1px}}
footer .ft-home{display:none!important}
footer .in>a.ft-ev{display:block!important}
@media(min-width:521px){footer .in>a.ft-ev{display:inline}}
.v-end .v-four{display:grid;grid-template-columns:repeat(2,auto);justify-content:center;gap:12px 30px;margin:0 0 30px}
.v-end .v-four li{border:0;background:transparent;border-radius:0;padding:0;text-align:center;font-size:16px}
@media(max-width:520px){.v-prem h2{font-size:min(26px,4.3vw);letter-spacing:.05em;white-space:nowrap}}
.v-end .v-four{display:block;text-align:center;margin:22px 0 30px;line-height:2.2}
.v-end .v-four li{display:inline-block;margin:0 13px;letter-spacing:.08em}
@media(max-width:520px){.v-end .v-four li{font-size:15px;margin:0 10px;letter-spacing:.05em}}
.v-end .sr-t+.sr-t{margin-top:1.6em}
.sp-br{display:none}
@media(max-width:699px){.sp-br{display:inline}}
#sec-kc[hidden],#sec-dated[hidden],#sec-always[hidden]{display:none}
.kc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin-top:18px}
.kc-grid .v-kc{flex:none;width:auto}
#sec-kc .v-kc-empty{margin-top:18px}
/* 出張(各地の施術会): PCは4列 / タブレット2列 / スマホ1列 */
@media(min-width:700px){#ev-kc{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}}
@media(min-width:1000px){
#ev-kc{grid-template-columns:repeat(4,1fr)}
#ev-kc .erow{grid-template-columns:1fr;grid-template-rows:140px 1fr auto;min-height:0}
#ev-kc .erow .im{height:140px}
#ev-kc .erow .tx{padding:12px 14px 14px}
#ev-kc .erow h3{font-size:16px}
#ev-kc .erow .go{align-self:end;justify-self:end;padding:0 14px 10px}
}
/* 空ルート: 「こんなときに…」見出しを左揃え・「空ルートを受ける」と同じ大きさに / 開催相談の見出し調整 */
.sr-when h2{text-align:left;font-size:26px;letter-spacing:.1em}
@media(max-width:820px){.sr-when h2{font-size:21px;letter-spacing:.1em}}
.v-ask h3{margin:4px 0 18px}
/* 各地の施術会カード全体をタップでフォームへ / 予約をするボタン */
.v-kc.is-link{cursor:pointer}
@media(prefers-reduced-motion:no-preference){.v-kc.is-link{transition:transform .2s,box-shadow .2s}.v-kc.is-link:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(74,63,53,.14)}}
.v-kc.is-link:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.yc-detail .yc-book{display:inline-block;margin-top:12px;padding:9px 26px;font-size:14px}
/* 施術者の丸い顔写真（個人セッションと同じ写真） */
.kc-faces{position:absolute;right:14px;bottom:14px;display:flex;gap:6px;z-index:3}
.kc-face{width:54px;height:54px;border-radius:50%;object-fit:cover;display:block;border:2px solid #fbf8f1;box-shadow:0 2px 8px rgba(60,40,25,.2);background:#e8e0d0}
.v-kc.has-face{padding-bottom:64px}
.v-kc.has-face .btn{margin-bottom:10px}
.v-kc.has-face dl:last-child{margin-bottom:10px}
.v-p{position:relative;padding-right:112px;min-height:112px}
.v-p .v-face{position:absolute;right:20px;top:50%;transform:translateY(-50%);width:76px;height:76px;border-radius:50%;overflow:hidden;box-shadow:0 2px 8px rgba(60,40,25,.15);background:#e8e0d0}
.v-p .v-face img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:520px){.v-p{padding-right:96px}.v-p .v-face{width:64px;height:64px;right:16px}}
.erow{position:relative}
.erow .kc-faces{right:12px;bottom:10px}
.erow .kc-face{width:44px;height:44px}
.erow.has-face .tx{padding-right:62px}
.erow.has-face .go{align-self:start;padding-top:14px}
@media(max-width:520px){.erow .kc-faces{right:8px;bottom:8px;gap:4px}.erow .kc-face{width:36px;height:36px}.erow.has-face .tx{padding-right:46px}.erow.has-face .go{padding-top:10px}}
@media(min-width:1000px){#ev-kc .erow.has-face .go{display:none}#ev-kc .erow.has-face{min-height:0}#ev-kc .erow .kc-face{width:48px;height:48px}}
@media(min-width:521px){.erow.has-face .tx{padding-right:18px;padding-bottom:62px}}
@media(min-width:1000px){#ev-kc .erow.has-face .tx{padding-bottom:62px}}
/* フッター右下：Instagram / note / 公式LINE */
footer .ft-sns{display:flex;gap:8px;margin-left:auto;align-self:flex-end}
footer .in>.ft-sns a{display:inline-block;padding:7px 14px;border:1px solid rgba(255,255,255,.55);border-radius:99px;font-size:12px;letter-spacing:.06em;line-height:1.4;color:#fff;text-decoration:none;transition:background .2s}
footer .in>.ft-sns a:hover{background:rgba(255,255,255,.16)}
@media(max-width:520px){footer .ft-sns{grid-column:1/-1;order:11;justify-self:center;margin:18px 0 0;gap:8px}footer .in>.ft-sns a{padding:8px 16px;font-size:12.5px;border-top:1px solid rgba(255,255,255,.55);border-bottom:1px solid rgba(255,255,255,.55);margin-top:0}}
/* フッターのSNSはアイコン表示 */
footer .in>.ft-sns a{display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;margin:0}
footer .in>.ft-sns svg{display:block}
@media(max-width:520px){footer .in>.ft-sns{gap:14px}footer .in>.ft-sns a{width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.55)}}
footer .in>.ft-sns img{display:block;width:22px;height:22px;object-fit:contain}
footer .in>.ft-sns a:nth-child(3) img{width:23px;height:23px}

/* 各地の施術会：スマホだけ、トップの「近々、会える場所」と同じ細い横長カードを4枚ずつ縦に並べて、横にスワイプ（パソコン・タブレットは今までどおり） */
.kc-m,.kc-wrap,.kc-dots{display:none}
@media(max-width:520px){
#kc-track{display:none}
.kc-wrap{display:block;position:relative}
.kc-dots{display:flex;justify-content:center;gap:8px;margin:2px 0 6px}
.kc-dots i{width:8px;height:8px;border-radius:50%;background:#d9cdb9}
.kc-dots i.on{background:var(--brown)}
.kc-btn{display:none}
.v-track.kc-m{display:grid;grid-auto-flow:column;grid-template-rows:repeat(4,auto);grid-auto-columns:100%;gap:12px;padding:4px 0 12px;scrollbar-width:none}
.v-track.kc-m::-webkit-scrollbar{display:none}
.v-track.kc-m>.kc-card{position:relative;min-width:0;scroll-snap-align:start;color:inherit;text-decoration:none}
.kc-card .tx{grid-column:2;min-width:0}
.kc-card .meta{flex-wrap:wrap;justify-content:flex-start;gap:4px 8px}
.kc-card h3{padding-top:2px}
.kc-card .who{font-size:12px}
.kc-card{min-height:0}
.kc-card .meta{padding-top:8px}
.kc-card p{padding-bottom:3px;line-height:1.55}
.kc-card .tx{padding-bottom:6px}
.kc-card .kc-faces{position:absolute;right:8px;top:8px;display:flex;gap:4px;z-index:2}
.kc-card .kc-face{width:34px;height:34px}
.kc-card.has-face .meta,.kc-card.has-face h3{padding-right:46px}
.kc-card.has-face.f2 .meta,.kc-card.has-face.f2 h3{padding-right:84px}
}

/* タブレット幅で、1行にしている文章が横にはみ出さないように */
@media(max-width:999px){.v-town-p{white-space:normal}.v-town-p .pcbr{display:none}}
