*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:#f5f7f4;color:#152019;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Helvetica Neue",Arial,sans-serif}
a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.header{height:66px;background:#fff;border-bottom:1px solid #e3e8e3;display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100% - 1100px)/2));position:sticky;top:0;z-index:10}
.brand{text-decoration:none;color:#173f22;line-height:.9}.brand small{display:block;font-size:9px;letter-spacing:.18em;color:#68736b}.brand strong{font-size:17px;letter-spacing:.04em}.beta{font-size:10px;font-weight:800;background:#eff4ef;padding:7px 9px;border-radius:999px;color:#526156}
.hero{max-width:1100px;margin:auto;padding:52px 20px 30px}.hero>small{color:#317844;font-weight:900;letter-spacing:.17em}.hero h1{font-size:clamp(34px,6vw,62px);line-height:1.08;letter-spacing:-.045em;margin:10px 0 14px}.hero em{font-style:normal;color:#317844}.hero p{color:#67726a;line-height:1.7}
.finder{max-width:1100px;margin:auto;background:#fff;border:1px solid #e1e7e1;border-radius:20px;padding:16px;box-shadow:0 10px 34px rgba(0,0,0,.035)}
.row{display:flex;gap:8px}.row.second{margin-top:10px}.row select,.row input{flex:1;min-width:0;border:1px solid #d5ded6;border-radius:11px;padding:14px;font-size:15px;background:#fff}.row button{border:0;background:#173f22;color:#fff;border-radius:11px;padding:0 20px;font-weight:900;cursor:pointer}.row button:disabled{opacity:.55;cursor:default}
.status{max-width:1100px;margin:14px auto 0;padding:12px 16px;background:#edf5ee;border-radius:12px;color:#35633f;font-size:12px}
.toolbar{max-width:1100px;margin:18px auto 10px;padding:0 20px;display:flex;justify-content:space-between;align-items:center}.toolbar select{border:1px solid #d8dfd8;border-radius:8px;padding:7px;background:#fff}
.cards{max-width:1100px;margin:auto;padding:0 20px 30px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.card{background:#fff;border:1px solid #e1e7e1;border-radius:18px;overflow:hidden}.photo{height:160px;background:#e6efe7;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover}.body{padding:15px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{display:inline-block;background:#e7f3e9;color:#276335;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900}.tag.verified{background:#173f22;color:#fff}.card h2{font-size:18px;margin:8px 0 4px}.desc{font-size:12px;color:#727b74;line-height:1.6}.meta{display:flex;justify-content:space-between;gap:10px;margin-top:11px;font-size:11px;font-weight:800}.link{display:block;text-align:center;text-decoration:none;color:#fff;background:#173f22;border-radius:10px;padding:11px;margin-top:12px;font-size:12px;font-weight:900}
.notice{max-width:1060px;margin:0 auto 30px;padding:22px 20px;border-radius:20px;background:#183e23;color:#fff}.notice h2{margin-top:0}.notice p{font-size:12px;color:#d4e0d6;line-height:1.8}
.empty{grid-column:1/-1;background:#fff;padding:36px 20px;border-radius:15px;text-align:center;color:#6b756e}
footer{border-top:1px solid #e0e6e0;background:#fff;padding:28px 20px 40px;text-align:center;color:#657068;font-size:11px}footer nav{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}footer p{margin:18px 0}
@media(max-width:820px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.cards{grid-template-columns:1fr}.row{flex-direction:column}.row button{height:44px}.hero{padding-top:36px}}

.legal{max-width:820px;margin:0 auto;padding:52px 20px 72px}.legal .eyebrow{color:#317844;font-weight:900;letter-spacing:.16em;font-size:11px}.legal h1{font-size:clamp(30px,5vw,48px);letter-spacing:-.035em;margin:8px 0 28px}.legal h2{font-size:19px;margin:32px 0 10px}.legal p{color:#5f6b62;line-height:1.9}.legal a{color:#276335;font-weight:700}
@media(max-width:720px){.header{height:60px}.hero h1{font-size:clamp(32px,10vw,48px)}.finder{margin-left:14px;margin-right:14px}.status{margin-left:14px;margin-right:14px}.toolbar{padding-left:16px;padding-right:16px}.cards{padding-left:14px;padding-right:14px}.card h2{font-size:17px}.notice{margin-left:14px;margin-right:14px}.photo{height:190px}}
@media(max-width:380px){.hero{padding-left:16px;padding-right:16px}.row select,.row input{font-size:16px}.toolbar{font-size:13px}.photo{height:165px}footer nav{gap:12px}}

/* v1.3: 店舗カード内の詳細ボタン位置を統一 */
.card{display:flex;flex-direction:column;height:100%}
.card .body{display:flex;flex-direction:column;flex:1}
.card .link{margin-top:auto}

/* v1.4: 全文表示を維持しつつ、カードの窮屈さを解消 */
.cards{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  align-items:start;
}
.card{
  height:auto;
  min-width:0;
}
.card .body{
  padding:20px;
  gap:0;
}
.card h2{
  font-size:18px;
  line-height:1.55;
  margin:10px 0 10px;
  overflow-wrap:anywhere;
}
.card .desc{
  font-size:13px;
  line-height:1.85;
  overflow-wrap:anywhere;
}
.card .meta{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid #edf0ed;
  line-height:1.6;
  flex-wrap:wrap;
}
.card .link{
  margin-top:20px;
  padding:13px 12px;
}
.photo{
  height:210px;
}
@media(max-width:820px){
  .cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
  }
  .card .body{padding:17px}
  .photo{height:180px}
}
@media(max-width:680px){
  .cards{
    grid-template-columns:1fr;
    gap:16px;
  }
  .card .body{padding:18px}
  .photo{height:220px}
}
@media(max-width:420px){
  .card .body{padding:17px}
  .card h2{font-size:17px}
  .card .desc{font-size:12.5px;line-height:1.8}
  .photo{height:190px}
}
