:root{
  --iron:#2E2925; --walnut:#6A4B37; --moss:#4C5A48; --moss-d:#3E4A3B;
  --stone:#E7E2DA; --washi:#F6F3EE; --sand:#C9B9A3; --note:#6E665E;
  --mincho:"Zen Old Mincho",serif; --gothic:"Zen Kaku Gothic Antique",sans-serif;
  --w:1120px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--washi);color:var(--iron);font-family:var(--gothic);font-size:16px;line-height:1.9;letter-spacing:0}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,.lead,.btn{word-break:auto-phrase;text-wrap:pretty}
h1,h2,h3{font-family:var(--mincho);font-weight:500;line-height:1.45;margin:0}
p{margin:0}
.wrap{max-width:var(--w);margin:0 auto;padding:0 24px}
.nowrap{white-space:nowrap}
:focus-visible{outline:2px solid var(--moss);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* demo band + header */
.demo-band{background:var(--iron);color:var(--washi);font-size:12px;line-height:1.6;padding:6px 24px;text-align:center}
.site-header{border-bottom:1px solid var(--sand);background:var(--washi)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;max-width:1280px}
.logo{display:flex;align-items:baseline;gap:12px;text-decoration:none}
.logo b{font-family:var(--mincho);font-weight:500;font-size:26px;letter-spacing:.08em}
.logo small{font-size:12px;color:var(--note)}
.gnav{display:flex;gap:28px;font-size:14px}
.gnav a{text-decoration:none}
.gnav a:hover{text-decoration:underline;text-underline-offset:6px}
@media (max-width:768px){.gnav{display:none}.logo small{display:none}}

/* river motif */
.river{display:block;width:100%;height:24px;color:var(--moss)}
.river path{fill:none;stroke:currentColor;stroke-width:1.2}
@media (prefers-reduced-motion:no-preference){
  .hero .river path{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 2.4s .3s ease-out forwards}
}
@keyframes draw{to{stroke-dashoffset:0}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 32px;border-radius:2px;font-family:var(--gothic);font-size:16px;font-weight:500;text-decoration:none;cursor:pointer;border:1px solid var(--moss);background:var(--moss);color:var(--washi)}
.btn:hover{background:var(--moss-d)}
.btn--line{background:transparent;color:var(--iron);border-color:var(--iron)}
.btn--line:hover{background:var(--stone)}

/* hero */
.hero{position:relative;display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);min-height:720px;width:100%}
.hero__text{position:relative;padding:72px 56px 64px max(24px,calc((100vw - 1280px)/2 + 24px));display:flex;gap:40px}
.hero__name{writing-mode:vertical-rl;font-family:var(--mincho);font-size:84px;line-height:1;letter-spacing:.18em;margin:0;flex:none}
.hero__body{display:flex;flex-direction:column;justify-content:flex-end;gap:28px;min-width:0}
.hero__lead{font-family:var(--mincho);font-size:24px;line-height:1.7}
.hero__photo{position:relative;min-height:100%}
.hero__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__cap{position:absolute;right:16px;bottom:12px;font-size:12px;color:var(--washi);text-shadow:0 0 8px rgba(0,0,0,.4)}

/* sentence search */
.ss{background:var(--washi);border-top:1px solid var(--sand);border-bottom:1px solid var(--sand);padding:24px 0}
.ss__line{font-family:var(--mincho);font-size:26px;line-height:2.3}
.ss__row{display:block;white-space:nowrap}
.ss__slot{position:relative;display:inline-block}
.ss__slot select{appearance:none;-webkit-appearance:none;font:inherit;color:var(--moss);background:transparent;border:0;border-bottom:2px solid var(--moss);border-radius:0;padding:0 28px 0 4px;margin:0 6px 0 0;cursor:pointer;field-sizing:content;min-width:4em;max-width:100%}
.ss__slot::after{content:"";position:absolute;right:12px;top:50%;width:8px;height:8px;border-right:1.5px solid var(--moss);border-bottom:1.5px solid var(--moss);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.ss__foot{display:flex;align-items:center;gap:20px;margin-top:16px;flex-wrap:wrap}
.ss__count{font-size:14px;color:var(--note)}
.ss__count b{font-family:var(--mincho);font-size:22px;color:var(--iron);font-weight:500;margin-right:2px}
.ss__more{font-size:14px}

@media (max-width:768px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__photo{order:-1;height:300px}
  .hero__text{padding:28px 20px 40px;gap:18px}
  .hero__name{font-size:48px}
  .hero__lead{font-size:18px}
  .ss__line{font-size:19px;line-height:2.4}
  .ss__slot select{margin:0 2px}
  .ss__foot .btn{width:100%}
}

/* sections */
.sec{padding:104px 0}
.sec--stone{background:var(--stone)}
.sec__head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:end;margin-bottom:48px}
.sec__head h2{font-size:36px}
.sec__head p{color:var(--note);max-width:30em}
@media (max-width:768px){.sec{padding:64px 0}.sec__head{grid-template-columns:1fr;gap:12px;margin-bottom:28px}.sec__head h2{font-size:28px}}

/* concern index */
.cidx{list-style:none;margin:0;padding:0;border-top:1px solid var(--iron)}
.cidx li{border-bottom:1px solid var(--sand)}
.cidx a{display:grid;grid-template-columns:minmax(0,1fr) auto 32px;align-items:center;gap:24px;padding:22px 4px;text-decoration:none}
.cidx a:hover{background:var(--stone)}
.cidx__name{font-family:var(--mincho);font-size:24px}
.cidx__note{display:block;font-family:var(--gothic);font-size:14px;color:var(--note);margin-top:2px}
.cidx__n{font-size:14px;color:var(--note)}
.cidx__n b{font-family:var(--mincho);font-size:26px;color:var(--walnut);font-weight:500;margin-right:4px}
.cidx__go{width:10px;height:10px;border-right:1.5px solid var(--iron);border-top:1.5px solid var(--iron);transform:rotate(45deg);justify-self:center}
@media (max-width:768px){.cidx__name{font-size:19px}.cidx a{gap:12px;padding:18px 2px}}

/* feature (overlap) */
.feat{position:relative}
.feat__photo img{width:100%;aspect-ratio:21/9;object-fit:cover}
.feat__card{position:relative;margin:-160px 0 0 auto;width:min(560px,92%);background:var(--washi);padding:44px 48px;z-index:1}
.feat__card h2{font-size:32px;margin-bottom:16px}
.feat__card p{margin-bottom:24px}
.mini{list-style:none;margin:0 0 28px;padding:0;border-top:1px solid var(--sand)}
.mini li{border-bottom:1px solid var(--sand)}
.mini a{display:flex;justify-content:space-between;gap:16px;padding:14px 0;text-decoration:none}
.mini a:hover .mini__name{text-decoration:underline}
.mini__name{font-family:var(--mincho);font-size:18px}
.mini__meta{font-size:13px;color:var(--note);white-space:nowrap}
@media (max-width:768px){.feat__photo img{aspect-ratio:4/3}.feat__card{margin:-48px 12px 0;width:auto;padding:28px 22px}.feat__card h2{font-size:24px}}

/* reviews zigzag */
.voices{display:grid;gap:56px}
.voice{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:start}
.voice:nth-child(even){grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.voice:nth-child(even) .voice__q{order:2}
.voice__q{font-family:var(--mincho);font-size:22px;line-height:1.9;border-left:1px solid var(--moss);padding-left:28px}
.voice__meta{font-size:14px;color:var(--note);padding-top:6px}
.voice__meta a{font-family:var(--mincho);font-size:18px;color:var(--iron);display:block;margin-bottom:4px}
.stars{color:var(--walnut);letter-spacing:.1em}
.stars b{font-family:var(--mincho);font-weight:500;color:var(--iron);margin-left:6px;letter-spacing:0}
@media (max-width:768px){.voice,.voice:nth-child(even){grid-template-columns:1fr;gap:12px}.voice:nth-child(even) .voice__q{order:0}.voice__q{font-size:18px;padding-left:18px}}

/* area along the river */
.areas{position:relative;margin-top:16px}
.areas .river{position:absolute;left:0;right:0;top:22px;height:40px}
.areas ol{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.areas a{display:block;text-decoration:none;padding-top:0}
.areas__dot{display:block;width:13px;height:13px;border-radius:50%;background:var(--washi);border:1.5px solid var(--moss);margin:36px 0 18px}
.areas__name{font-family:var(--mincho);font-size:22px;display:block}
.areas__n{font-size:13px;color:var(--note)}
.areas a:hover .areas__name{text-decoration:underline;text-underline-offset:6px}
@media (max-width:768px){
  .areas .river{display:none}
  .areas ol{grid-template-columns:1fr;gap:0;border-left:1.5px solid var(--moss);margin-left:6px}
  .areas a{display:flex;align-items:baseline;gap:14px;padding:12px 0 12px 22px;position:relative}
  .areas__dot{position:absolute;left:-8px;top:22px;margin:0}
  .areas__name{font-size:19px}
}

/* about band */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.about img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px}
.about h2{font-size:32px;margin-bottom:20px}
.about p+p{margin-top:16px}
.about .note{font-size:13px;color:var(--note)}
@media (max-width:768px){.about{grid-template-columns:1fr;gap:24px}.about h2{font-size:24px}}

/* footer */
.site-footer{background:var(--iron);color:var(--washi);padding:56px 0 40px;font-size:14px}
.site-footer .river{color:var(--sand);margin-bottom:32px}
.site-footer .wrap{display:grid;gap:24px}
.site-footer nav{display:flex;flex-wrap:wrap;gap:12px 28px}
.site-footer a{text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer .demo{font-size:12px;color:#CFC7BD;line-height:1.8;max-width:46em}
.site-footer .copy{font-size:12px;color:#CFC7BD}

/* sp menu */
.menu-btn{display:none;background:none;border:1px solid var(--iron);border-radius:2px;font:inherit;font-size:13px;padding:6px 14px;cursor:pointer;color:var(--iron)}
@media (max-width:768px){
  .menu-btn{display:block}
  .gnav.is-open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--washi);border-bottom:1px solid var(--sand);z-index:10}
  .gnav.is-open a{padding:16px 20px;border-top:1px solid var(--sand)}
  .site-header{position:relative}
}
.feat{padding-top:0}

/* page head (lower pages) */
.crumb{font-size:13px;color:var(--note);padding-top:20px}
.crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 10px}
.crumb li+li::before{content:"／";margin-right:10px;color:var(--sand)}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}

/* search page */
.shead{padding:40px 0 32px;border-bottom:1px solid var(--sand)}
.shead h1{font-size:34px;line-height:1.6}
.shead h1 em{font-style:normal;color:var(--moss);border-bottom:1.5px solid var(--moss)}
.shead h1 .ph{display:inline-block}
.shead__n{font-family:var(--gothic);font-size:15px;color:var(--note);margin-left:12px;white-space:nowrap}
.shead__n b{font-family:var(--mincho);font-size:30px;color:var(--iron);font-weight:500;margin-right:2px}
.slayout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;padding:40px 0 104px}
.filters fieldset{border:0;margin:0 0 28px;padding:0}
.filters legend{font-family:var(--mincho);font-size:18px;margin-bottom:10px;padding:0}
.chk{display:flex;align-items:center;gap:10px;font-size:15px;padding:5px 0;cursor:pointer}
.chk input{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1px solid var(--iron);border-radius:2px;margin:0;flex:none;display:grid;place-content:center;background:var(--washi)}
.chk input[type=radio]{border-radius:50%}
.chk input:checked{background:var(--moss);border-color:var(--moss)}
.chk input:checked::after{content:"";width:5px;height:9px;border:solid var(--washi);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.chk input[type=radio]:checked::after{width:6px;height:6px;border:0;border-radius:50%;background:var(--washi);transform:none}
.chk small{margin-left:auto;color:var(--note);font-size:13px}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--iron);border-radius:2px;overflow:hidden}
.seg label{position:relative;text-align:center;font-size:14px;padding:9px 4px;cursor:pointer;border-right:1px solid var(--iron);border-bottom:1px solid var(--iron)}
.seg label:first-child{grid-column:1/-1;border-right:0}
.seg label:nth-child(2n+1){border-right:0}
.seg label:nth-last-child(-n+2){border-bottom:0}
.seg input{position:absolute;opacity:0}
.seg label:has(input:checked){background:var(--iron);color:var(--washi)}
.seg label:has(input:focus-visible){outline:2px solid var(--moss);outline-offset:-4px}
.kw{width:100%;font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--iron);border-radius:2px;background:var(--washi);color:var(--iron)}
.clear{font-size:14px;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer;color:var(--iron);font-family:inherit}
.rbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--iron)}
.rbar__sel{font-size:14px;white-space:nowrap;display:flex;align-items:center;gap:8px}
.rbar select{font:inherit;padding:6px 10px;border:1px solid var(--sand);border-radius:2px;background:var(--washi);color:var(--iron)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{text-decoration:none;white-space:nowrap;font-size:13px;border:1px solid var(--moss);color:var(--moss);border-radius:2px;padding:2px 10px;background:none;font-family:inherit;cursor:pointer}
.results{list-style:none;margin:0;padding:0}
.row{border-bottom:1px solid var(--sand)}
.row a{display:grid;grid-template-columns:200px minmax(0,1fr) 140px;gap:28px;padding:28px 0;text-decoration:none}
.row a:hover .row__name{text-decoration:underline;text-underline-offset:6px}
.row__ph,.row__body{display:block;min-width:0}
.row__ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.row__kind{font-size:13px;color:var(--note)}
.row__name{font-family:var(--mincho);font-size:24px;line-height:1.5;margin:2px 0 6px;display:block}
.row__catch{display:block;font-size:15px;margin-bottom:12px}
.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.tags li,.tags .tag{font-size:12px;line-height:1.6;border:1px solid var(--sand);border-radius:2px;padding:1px 8px;color:var(--iron)}
.tags li.hit,.tags .tag.hit{background:var(--moss);border-color:var(--moss);color:var(--washi)}
.row__side{text-align:right;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.price{font-size:12px;color:var(--note)}
.price b{display:block;font-family:var(--mincho);font-size:30px;line-height:1.2;color:var(--walnut);font-weight:500}
.price b small{font-size:15px;margin-left:2px}
.rv{font-size:13px;color:var(--note);white-space:nowrap;margin-left:8px}
.pager{display:flex;justify-content:center;gap:8px;margin-top:40px}
.pager a,.pager span{min-width:44px;height:44px;display:grid;place-content:center;border:1px solid var(--iron);border-radius:2px;text-decoration:none;font-family:var(--mincho)}
.pager span[aria-current],.pager .current{background:var(--iron);color:var(--washi)}
.pager .prev,.pager .next{padding:0 14px;font-family:var(--gothic);font-size:14px}
.pager .dots{border:0}
.empty{padding:56px 0;border-bottom:1px solid var(--sand)}
.empty h2{font-size:24px;margin-bottom:12px}
.empty p{margin-bottom:20px}
.sp-filter{display:none}
@media (max-width:900px){.row a{grid-template-columns:180px minmax(0,1fr);}.row__side{grid-column:2;align-items:flex-start;text-align:left;flex-direction:row;gap:16px}}
@media (max-width:768px){
  .shead{padding:24px 0 20px}.shead h1{font-size:22px}.shead__n b{font-size:24px}
  .slayout{grid-template-columns:1fr;gap:0;padding:16px 0 96px}
  .filters{display:none}
  .filters.is-sheet{display:block;position:fixed;left:0;right:0;bottom:0;max-height:82vh;overflow:auto;background:var(--washi);border-top:1px solid var(--iron);padding:24px 20px 96px;z-index:30}
  .sp-filter{display:flex;position:fixed;left:0;right:0;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--washi);border-top:1px solid var(--sand);z-index:31;gap:12px}
  .sp-filter .btn{flex:1}
  .row a{grid-template-columns:112px minmax(0,1fr);gap:14px;padding:20px 0}
  .row__name{font-size:19px}.row__catch{display:none}
  .row__side{grid-column:1/-1}
  .price b{font-size:22px;display:inline;margin-right:6px}
}

/* salon detail */
.dhero{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;margin-top:20px}
.dhero img{width:100%;height:100%;object-fit:cover;border-radius:4px}
.dhero figure{margin:0;min-height:0;position:relative;overflow:hidden;border-radius:4px}
.dhero figure:not(:first-child) img{position:absolute;inset:0}
.dhero figure:first-child{grid-row:1/3;aspect-ratio:3/2}
.dtitle{padding:36px 0 32px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;border-bottom:1px solid var(--sand)}
.dtitle h1{font-size:48px;line-height:1.3;margin:4px 0 10px}
.dtitle p.catch{font-family:var(--mincho);font-size:20px}
.dlayout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:64px;padding:48px 0 104px;align-items:start}
.dsec{padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid var(--sand)}
.dsec:last-child{border-bottom:0;margin-bottom:0}
.dsec h2{font-size:28px;margin-bottom:20px}
.dsec>p{max-width:36em}
.feats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--sand);border-left:1px solid var(--sand)}
.feats li{border-right:1px solid var(--sand);border-bottom:1px solid var(--sand);padding:16px 12px;text-align:center;font-size:14px}
.feats li.off{color:var(--note);background:var(--stone);text-decoration:line-through;text-decoration-color:var(--sand)}
.feats li b{display:block;font-family:var(--mincho);font-weight:500;font-size:20px;line-height:1.2;margin-bottom:4px}
.menu{width:100%;border-collapse:collapse}
.menu th,.menu td{border-bottom:1px solid var(--sand);padding:16px 0;text-align:left;vertical-align:top}
.menu tr:first-child th,.menu tr:first-child td{border-top:1px solid var(--iron)}
.menu th{font-weight:400;font-family:var(--mincho);font-size:18px}
.menu th small{display:block;font-family:var(--gothic);font-size:13px;color:var(--note);margin-top:2px}
.menu td{text-align:right;white-space:nowrap;padding-left:16px}
.menu td.min{color:var(--note);font-size:14px}
.menu td.yen{font-family:var(--mincho);font-size:22px;color:var(--walnut)}
.info{display:grid;grid-template-columns:7em minmax(0,1fr);margin:0;border-top:1px solid var(--iron)}
.info dt,.info dd{margin:0;padding:12px 0;border-bottom:1px solid var(--sand)}
.info dt{color:var(--note);font-size:14px}
.aside{position:sticky;top:24px;border:1px solid var(--iron);padding:28px 24px;background:var(--washi)}
.aside .price b{font-size:40px}
.aside__menu{font-size:14px;margin:2px 0 18px}
.aside__rv{display:flex;align-items:baseline;gap:8px;padding:14px 0;border-top:1px solid var(--sand);border-bottom:1px solid var(--sand);margin-bottom:20px}
.aside__rv a{font-size:14px}
.aside .btn{width:100%;margin-bottom:10px}
.aside .demo-note{font-size:12px;color:var(--note);line-height:1.7}
.rsum{display:grid;grid-template-columns:auto minmax(0,1fr);gap:40px;align-items:center;margin-bottom:28px}
.rsum__big{font-family:var(--mincho);font-size:72px;line-height:1;color:var(--walnut)}
.rsum__big small{display:block;font-family:var(--gothic);font-size:13px;color:var(--note);margin-top:8px}
.dist{list-style:none;margin:0;padding:0;font-size:13px}
.dist li{display:grid;grid-template-columns:3em minmax(0,1fr) 2em;gap:10px;align-items:center;padding:3px 0}
.dist i{display:block;height:6px;background:var(--stone);position:relative}
.dist i span{position:absolute;left:0;top:0;bottom:0;background:var(--walnut)}
.dist em{font-style:normal;text-align:right;color:var(--note)}
.rfilter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.rfilter button{font:inherit;font-size:13px;border:1px solid var(--sand);background:var(--washi);border-radius:2px;padding:4px 12px;cursor:pointer;color:var(--iron)}
.rfilter button[aria-pressed=true]{background:var(--iron);border-color:var(--iron);color:var(--washi)}
.rlist{list-style:none;margin:0;padding:0}
.rlist li{padding:28px 0;border-bottom:1px solid var(--sand)}
.rlist h3{font-size:20px;margin:6px 0 10px}
.rlist .meta{font-size:13px;color:var(--note);margin-top:12px}
.sample{display:inline-block;font-size:11px;border:1px solid var(--sand);padding:0 6px;border-radius:2px;color:var(--note);margin-left:8px;vertical-align:2px}
.rwrite{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:28px;padding:24px;background:var(--stone)}
.near{list-style:none;margin:0;padding:0}
.near li{border-bottom:1px solid var(--sand)}
.near a{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;padding:14px 0;text-decoration:none;align-items:center}
.near img{aspect-ratio:1;object-fit:cover;border-radius:4px}
.near b{font-family:var(--mincho);font-weight:500;font-size:17px;display:block}
.near span{font-size:13px;color:var(--note)}
.sp-cta{display:none}
@media (max-width:768px){
  .dhero{grid-template-columns:1fr;grid-template-rows:auto;margin:12px -24px 0}
  .dhero figure:not(:first-child){display:none}
  .dhero figure:first-child{grid-row:auto}
  .dhero img,.dhero figure{border-radius:0}
  .dtitle{grid-template-columns:1fr;padding:20px 0}
  .dtitle h1{font-size:30px}.dtitle p.catch{font-size:17px}
  .dlayout{grid-template-columns:1fr;gap:0;padding:32px 0 120px}
  .dlayout .aside{display:none}
  .feats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dsec h2{font-size:24px}
  .rsum{gap:24px}.rsum__big{font-size:56px}
  .rwrite{flex-direction:column;align-items:stretch}
  .sp-cta{display:flex;position:fixed;left:0;right:0;bottom:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--washi);border-top:1px solid var(--sand);align-items:center;gap:14px;z-index:20}
  .sp-cta .price b{font-size:22px;display:inline}
  .sp-cta .btn{flex:1;min-height:48px;padding:0 12px}
}

/* review form */
.form-wrap{max-width:720px;margin:0 auto;padding:40px 24px 104px}
.form-wrap h1{font-size:36px;margin-bottom:8px}
.form-for{display:flex;gap:16px;align-items:center;padding:20px 0;margin:24px 0 8px;border-top:1px solid var(--sand);border-bottom:1px solid var(--sand)}
.form-for img{width:88px;aspect-ratio:1;object-fit:cover;border-radius:4px}
.form-for b{font-family:var(--mincho);font-weight:500;font-size:20px;display:block}
.form-for span{font-size:13px;color:var(--note)}
.f{margin-top:32px}
.f>label,.f legend{display:block;font-weight:500;margin-bottom:8px;padding:0}
.f fieldset{border:0;margin:0;padding:0}
.req{font-size:12px;color:var(--washi);background:var(--walnut);border-radius:2px;padding:1px 6px;margin-left:8px;font-weight:400;vertical-align:2px}
.opt{font-size:12px;color:var(--note);margin-left:8px;font-weight:400}
.help{font-size:13px;color:var(--note);margin-top:6px}
.f input[type=text],.f select,.f textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--iron);border-radius:2px;background:#FFFDFA;color:var(--iron)}
.f textarea{min-height:200px;line-height:1.8;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.rate{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.rate input{position:absolute;opacity:0}
.rate label{font-size:36px;line-height:1;color:var(--sand);cursor:pointer;padding:0 2px}
.rate input:checked~label,.rate label:hover,.rate label:hover~label{color:var(--walnut)}
.rate input:focus-visible+label{outline:2px solid var(--moss);outline-offset:2px}
.rate-text{font-size:14px;color:var(--note);margin-top:4px}
.count{text-align:right;font-size:13px;color:var(--note);margin-top:4px}
.hp{position:absolute;left:-9999px}
.agree{margin-top:36px;padding:20px;background:var(--stone)}
.agree p{font-size:14px;margin-bottom:12px}
.submit{margin-top:32px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.done{max-width:640px;margin:0 auto;padding:96px 24px 120px;text-align:left}
.done h1{font-size:36px;margin-bottom:20px}
.done p{margin-bottom:16px}
.done .river{margin:32px 0}
@media (max-width:768px){.form-wrap h1,.done h1{font-size:26px}.two{grid-template-columns:1fr}.submit .btn{width:100%}}

/* simple pages */
.simple{max-width:760px;margin:0 auto;padding:56px 24px 104px}
.simple h1{font-size:40px;margin-bottom:28px}
.simple h2{font-size:24px;margin:40px 0 12px}
.simple p,.simple li{margin-bottom:12px}
@media (max-width:768px){.simple h1{font-size:28px}}
@media (max-width:768px){.rbar{flex-direction:column-reverse;align-items:stretch;gap:12px}.rbar__sel select{flex:1}}
@media (max-width:768px){
  .menu tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;border-bottom:1px solid var(--sand);padding:14px 0}
  .menu tr:first-child{border-top:1px solid var(--iron)}
  .menu th,.menu td,.menu tr:first-child th,.menu tr:first-child td{border:0;padding:0}
  .menu th{grid-column:1/-1;margin-bottom:6px}
  .menu td.min{text-align:left}
}
@media (min-width:600px) and (max-width:768px){.row a{grid-template-columns:168px minmax(0,1fr)}.row__catch{display:block}}
@media (max-width:768px){.mini a{flex-direction:column;gap:0}.mini__meta{white-space:normal}}
@media (max-width:768px){.feat__card h2{font-size:21px}}

/* ---- WordPressテーマで足したもの ---- */
.filters__title{display:none}
.legend-note{font-family:var(--gothic);font-size:12px;color:var(--note);margin-left:8px}
.filters__go{position:sticky;bottom:0;background:var(--washi);padding:16px 0 8px;border-top:1px solid var(--sand);display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.filters__go .btn{width:100%}
.empty__try{list-style:none;margin:0 0 24px;padding:0;border-top:1px solid var(--sand)}
.empty__try li{padding:12px 0;border-bottom:1px solid var(--sand)}
.empty__try span{font-size:13px;color:var(--note);margin-left:6px}
.done__links{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-top:28px}
.form-error{color:#8A3B2E;border:1px solid #8A3B2E;padding:12px 16px;margin-top:24px;font-size:14px}
.form-error[hidden]{display:none}
.dsec>p+p{margin-top:1em}
.simple ul{padding-left:1.4em}
.sheet-close{display:none}
@media (max-width:768px){
  .filters.is-sheet .filters__go{display:none}
  .filters.is-sheet .filters__title{display:block;font-family:var(--mincho);font-size:22px;margin-bottom:16px}
  .sheet-close{display:block;position:absolute;top:16px;right:16px;background:none;border:1px solid var(--iron);border-radius:2px;font:inherit;font-size:13px;padding:4px 12px;color:var(--iron);cursor:pointer}
  .filters.is-sheet{padding-top:20px}
}
.btn--off{background:var(--stone);border-color:var(--sand);color:var(--note);cursor:default}
.btn--off:hover{background:var(--stone)}

/* 日本語の改行（site-line-breaks スキル）
   本文は phrase_wrap.py が「、」「。」までを .ph で包む。.ph の途中では折れず、句読点の位置で次の行へ送る。
   見出し・リード・ボタンは語の切れ目で折る。<br> を入れた要素に text-wrap: balance は使わない（<br> と喧嘩する）。 */
h1, h2, h3, h4, .lead, .btn, summary { word-break: auto-phrase; text-wrap: pretty; }
.ph { display: inline-block; word-break: auto-phrase; text-wrap: pretty; }
/* 句読点の無い短い文（帯・カードのラベル・住所・口コミの項目）も、語の途中で折らない */
body { word-break: auto-phrase; }
.demo-band { text-wrap: balance; }
.btn { white-space: nowrap; }
.nb { display: inline-block; }
.aside__menu { text-wrap: balance; }
