/* イヌマチ style.css — 緑 #2F6B45 × ハニー #E9A13B × 紙 #F6F4EC */
:root {
  --green: #2F6B45;
  --green-dark: #245235;
  --honey: #E9A13B;
  --paper: #F6F4EC;
  --ink: #37352F;
  --line: #E2DDCE;
  --white: #FFFFFF;
  --radius: 14px;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.7;
}
h1, h2, h3, .logo { font-family: "Zen Maru Gothic", "Noto Sans JP", sans-serif; }
a { color: var(--green); text-decoration: none; }
img { max-width: 100%; }
.container { max-width: 1080px; margin: 0 auto; padding: 0 16px; }
.small { font-size: .8rem; color: #8b8574; }

.config-warn { background: #b3261e; color: #fff; text-align: center; padding: 8px; font-size: .85rem; }

/* header */
#site-header { background: var(--green); position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 0 rgba(0,0,0,.18), 0 2px 10px rgba(0,0,0,.10); }
.header-inner { max-width: 1080px; margin: 0 auto; padding: 10px 16px; display: flex; align-items: center; gap: 14px; flex-wrap: nowrap; min-height: 44px; }
.logo { color: #fff; font-size: 1.28rem; font-weight: 700; display: flex; align-items: baseline; gap: 9px; letter-spacing: .02em; }
.logo-sub { font-size: .72rem; font-weight: 400; color: #d8e6dd; }
.gnav-bar { background: rgba(0,0,0,.14); border-top: 1px solid rgba(255,255,255,.08); }
.gnav { max-width: 1080px; margin: 0 auto; padding: 0 10px; display: flex; gap: 2px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.gnav::-webkit-scrollbar { display: none; }
.gnav a { color: rgba(255,255,255,.9); font-size: .8rem; padding: 9px 11px; border-radius: 0; white-space: nowrap; border-bottom: 2px solid transparent; }
.gnav a:hover { color: #fff; border-bottom-color: var(--honey, #d9a13b); background: none; }

/* icons */
.icn { width: 1em; height: 1em; display: inline-block; vertical-align: -0.125em; color: var(--green); flex-shrink: 0; }
.gnav .icn, .logo .icn, .footer-inner .icn, .fac-cat-tag .icn { color: #fff; }
.logo .icn { width: 1.05em; height: 1.05em; }
.icn-cat { width: 44px; height: 44px; display: block; margin: 0 auto 6px; }
.fac-thumb .icn { width: 38px; height: 38px; }

/* hero */
.hero { background-image: url("../img/hero-desktop.webp"); background-size: cover; background-position: center right; color: #fff; padding: 44px 0 44px; position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(37,66,44,.88) 0%, rgba(37,66,44,.72) 32%, rgba(37,66,44,.32) 58%, rgba(37,66,44,.06) 80%, rgba(37,66,44,0) 100%); pointer-events: none; }
.hero .container { position: relative; }
.hero h1 { font-size: clamp(1.5rem, 4vw, 2.3rem); margin: 0 0 8px; text-shadow: 0 1px 8px rgba(0,0,0,.3); }
.hero p { color: #f0f5f1; margin: 0; text-shadow: 0 1px 6px rgba(0,0,0,.35); }
.hero .paw-bg { display: none; }

/* search panel（ヒーロー内・半透過） */
.search-panel { background: rgba(255,255,255,.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.6); border-radius: var(--radius); box-shadow: 0 8px 24px rgba(0,0,0,.18); padding: 20px; margin-top: 28px; position: relative; }
/* PCのみ：検索カードを左寄せ・幅を絞り、右側の犬の顔を見せる */
@media (min-width: 641px) {
  .hero .search-panel { max-width: 640px; margin-left: 0; }
  .hero .search-panel select { min-width: 0; flex: 1 1 150px; }
  .hero .search-panel input[type="text"] { flex: 1 1 150px; min-width: 0; }
}
.search-panel select { background: rgba(255,255,255,.85); }
.search-tabs button:not(.active) { background: rgba(255,255,255,.75); }
.search-tabs { display: flex; gap: 8px; margin-bottom: 14px; }
.search-tabs button { border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 6px 16px; font-size: .9rem; cursor: pointer; font-family: inherit; }
.search-tabs button.active { background: var(--honey); border-color: var(--honey); color: #fff; font-weight: 700; }
.search-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
select, .btn { font-family: inherit; font-size: .95rem; }
select { padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; min-width: 160px; }
.btn { display: inline-block; background: var(--honey); color: #fff; font-weight: 700; border: none; border-radius: 10px; padding: 10px 22px; cursor: pointer; }
.btn:hover { filter: brightness(1.06); }
.btn-green { background: var(--green); }

/* category grid */
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin: 28px 0; }
.cat-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 12px; text-align: center; transition: transform .15s, box-shadow .15s; }
.cat-card:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(47,107,69,.15); }
.cat-card .name { font-weight: 700; color: var(--ink); }
.cat-card .cnt { font-size: .78rem; color: #8b8574; }

section.block { margin: 36px 0; }
section.block > h2 { font-size: 1.25rem; border-left: 6px solid var(--honey); padding-left: 10px; margin-bottom: 14px; }

/* facility cards (search results) */
.fac-list { display: grid; gap: 12px; }
.fac-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; display: flex; gap: 14px; align-items: flex-start; position: relative; }
.fac-card.paid { border: 2px solid var(--honey); background: #fffdf6; }
.badge-paid { background: var(--honey); color: #fff; font-size: .7rem; font-weight: 700; border-radius: 999px; padding: 2px 10px; display: inline-block; }
.badge-public { background: #2E7F7A; color: #fff; font-size: .7rem; font-weight: 700; border-radius: 999px; padding: 2px 10px; display: inline-block; margin-left: 4px; }
.fac-thumb { width: 74px; height: 74px; border-radius: 12px; background: var(--paper); display: flex; align-items: center; justify-content: center; flex-shrink: 0; overflow: hidden; }
.fac-thumb img { width: 100%; height: 100%; object-fit: cover; }
.fac-body h3 { margin: 0 0 4px; font-size: 1.05rem; }
.fac-meta { font-size: .82rem; color: #6f6a5c; }
.fac-cat-tag { font-size: .72rem; background: var(--green); color: #fff; border-radius: 6px; padding: 1px 8px; margin-right: 6px; }

/* paw rating */
.paws { position: relative; display: inline-block; line-height: 1; vertical-align: middle; }
.paws .icn { width: 17px; height: 17px; margin-right: 2px; vertical-align: middle; }
.paws-bg { opacity: .5; white-space: nowrap; }
.paws-fill { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; }
.paws-num { font-size: .85rem; font-weight: 700; color: var(--honey); margin-left: 6px; }

/* facility detail */
.detail-head { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; margin-top: 20px; }
.detail-head h1 { margin: 6px 0; font-size: 1.5rem; }
.detail-head.paid { border: 2px solid var(--honey); }
.info-table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: .92rem; }
.info-table th { text-align: left; width: 8.5em; color: #6f6a5c; font-weight: 500; padding: 8px 6px; border-bottom: 1px dashed var(--line); vertical-align: top; }
.info-table td { padding: 8px 6px; border-bottom: 1px dashed var(--line); }
.banner-area img { border-radius: 10px; margin-top: 12px; }
.campaign { background: #fff6e5; border: 1px dashed var(--honey); border-radius: 10px; padding: 12px; margin-top: 12px; font-size: .92rem; }
#detail-map { height: 320px; border-radius: var(--radius); border: 1px solid var(--line); margin-top: 16px; }
.axes-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.axes-list span { background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 3px 12px; font-size: .8rem; }

/* nearby marquee */
.near-section { margin: 26px 0; }
.near-section h2 { font-size: 1.1rem; border-left: 6px solid var(--green); padding-left: 10px; }
.mq { overflow: hidden; position: relative; padding: 6px 0; }
.mq-static { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.mq-track { display: flex; gap: 12px; width: max-content; }
.mq-anim .mq-track { animation: mq-slide linear infinite; }
.mq:hover .mq-track { animation-play-state: paused; }
@keyframes mq-slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .mq-anim .mq-track { animation: none; } .mq { overflow-x: auto; } }
.mq-card { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; width: 230px; flex-shrink: 0; display: flex; flex-direction: column; gap: 2px; }
.mq-card.mq-paid { border: 2px solid var(--honey); background: #fffdf6; }
.mq-name { font-weight: 700; color: var(--ink); font-size: .92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mq-station { font-size: .78rem; color: var(--green); }
.mq-addr { font-size: .74rem; color: #8b8574; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* map page */
#map-full { height: 70vh; border-radius: var(--radius); border: 1px solid var(--line); }
.map-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0; }
.map-filters label { background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; font-size: .85rem; cursor: pointer; }
.map-filters input { accent-color: var(--green); }

/* filters on search page */
.filter-bar { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; margin: 18px 0; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.chip { display: inline-block; border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 5px 14px; font-size: .85rem; cursor: pointer; font-family: inherit; color: var(--ink); text-decoration: none; }
.chip.active { background: var(--green); color: #fff; border-color: var(--green); }
.toggle-dogmenu[hidden] { display: none; }
.toggle-dogmenu { background: #fff6e5; border: 1px solid var(--honey); border-radius: 999px; padding: 5px 14px; font-size: .85rem; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }

/* footer */
#site-footer { background: #fff; color: #3a3a34; margin-top: 56px; border-top: 1px solid #e9e2d2; }
.footer-main { max-width: 1080px; margin: 0 auto; padding: 44px 20px 26px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 28px; }
.footer-logo { font-family: "Zen Maru Gothic", sans-serif; font-size: 1.35rem; font-weight: 700; color: var(--green); display: inline-flex; align-items: center; gap: 8px; }
.footer-logo .icn { color: var(--green); width: 1.1em; height: 1.1em; }
.footer-tag { font-size: .78rem; color: #8b8574; margin: 8px 0 0; }
.footer-head { font-size: .72rem; font-weight: 700; letter-spacing: .14em; color: #a89f8a; margin: 0 0 12px; }
.footer-col { display: flex; flex-direction: column; gap: 0; }
.footer-col a { color: #3a3a34; font-size: .85rem; padding: 6px 0; }
.footer-col a:hover { color: var(--honey); }
.footer-note { font-size: .72rem; color: #a89f8a; line-height: 1.8; border-top: 1px solid #efe9da; margin-top: 34px; padding-top: 16px; }
.footer-note a { color: #8b8574; text-decoration: underline; }
.footer-bar { background: var(--green); color: #d8e6dd; text-align: center; font-size: .74rem; letter-spacing: .06em; padding: 12px 16px; }
@media (max-width: 760px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-main { padding: 32px 18px 20px; }
}

.loading { text-align: center; padding: 40px; color: #8b8574; }
.empty { background: var(--white); border: 1px dashed var(--line); border-radius: var(--radius); padding: 28px; text-align: center; color: #8b8574; }

@media (max-width: 640px) {
  .gnav-bar { display: none; }
  .fac-thumb { width: 56px; height: 56px; }
  .fac-thumb .icn { width: 28px; height: 28px; }
  /* スマホは2段構成：上=写真バナー（スクリム焼き込み済み・犬が引きで全身入る）/ 下=無地緑に検索カード */
  .header-inner { padding: 8px 14px; }
  .logo-sub { display: none; }
  .auth-link { font-size: .72rem; padding: 4px 10px; border-width: 1px; }
  .hero { background-image: url("../img/hero-mobile-v5.webp"); background-size: 100% auto; background-repeat: no-repeat; background-position: top center; background-color: #25422c; padding: 18px 0 36px; }
  .hero::before { display: none; }
  .hero h1 { font-size: min(5.8vw, 1.6rem); white-space: nowrap; margin: 0 0 6px; }
  .hero p { font-size: .86rem; line-height: 1.55; }
  .search-panel { margin-top: max(20px, calc(70vw - 78px)); }
  /* 1画面に収める：エリア検索は2カラムグリッド（都道府県｜市区町村を左右配置）＋余白圧縮 */
  .search-panel { padding: 14px; }
  .search-tabs { margin-bottom: 10px; }
  #panel-area .search-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  #panel-area .search-row select { width: 100%; min-width: 0; }
  #panel-area #sel-cat, #panel-area #zip, #panel-area #btn-area { grid-column: 1 / -1; }
  #panel-line .search-row select { width: 100%; min-width: 0; }
  .search-panel select { padding: 9px 12px; }
  .search-panel .btn { padding: 11px 0; text-align: center; }
  /* サブページ（検索結果・カテゴリ/エリア/駅ページ）の絞り込みパネルも同様に圧縮 */
  .sp-refine { padding: 12px; margin: 12px 0; }
  .sp-refine .sp-tabs { margin-bottom: 8px; }
  #spp-area .search-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  #spp-area .search-row select { width: 100%; min-width: 0; }
  #spp-area #sp-go-area { grid-column: 1 / -1; padding: 11px 0; text-align: center; }
  #spp-line .search-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  #spp-line .search-row select { width: 100%; min-width: 0; }
  #spp-line #sp-pref2, #spp-line #sp-line { grid-column: 1 / -1; }
  #spp-line .st-suggest-wrap { display: block; }
  .sp-refine select { padding: 9px 12px; }
  .filter-bar { padding: 10px 12px; gap: 8px; margin: 12px 0; }
}
:focus-visible { outline: 3px solid var(--honey); outline-offset: 2px; }

/* 郵便番号入力 */
.search-row input[type="text"] { padding: 10px 14px; border: 1px solid rgba(120,120,120,.5); border-radius: 8px; font-size: .95rem; width: 170px; background: rgba(255,255,255,.85); }

/* オーナーからの一言 */
.owner-comment { background: #fffdf6; border: 2px solid var(--honey); border-radius: 12px; padding: 14px 18px; margin: 18px 0; }
.owner-comment h3 { margin: 0 0 6px; font-size: .98rem; color: var(--green); }
.owner-comment p { margin: 0; line-height: 1.9; white-space: pre-wrap; }

/* Googleのクチコミ */
.greviews { margin-top: 30px; }
.greviews h2 { font-size: 1.15rem; border-left: 6px solid #4285F4; padding-left: 10px; }
.g-avg { font-size: .9rem; color: #6f6a5c; font-weight: 400; }
.g-item { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin: 10px 0; }
.g-head { font-size: .85rem; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.g-stars { color: #f4b400; letter-spacing: 1px; }
.g-time { color: #8b8574; font-size: .78rem; }
.g-item p { margin: 6px 0 0; font-size: .9rem; line-height: 1.8; white-space: pre-wrap; }
.g-attr { font-size: .78rem; color: #8b8574; }
@media (max-width: 640px) { .search-row input[type="text"] { width: 100%; } }

/* Googleクチコミのモザイクゲート */
.g-locked { position: relative; background: var(--white); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.g-blur { filter: blur(4px); user-select: none; pointer-events: none; padding: 16px 18px; opacity: .92; }
.g-blur p { margin: 4px 0 0; font-size: .9rem; color: #55503f; }
.g-dummy { padding: 10px 0; border-bottom: 1px dashed var(--line); }
.g-dummy:last-child { border-bottom: none; }
.dummy-paws .icn { width: 17px; height: 17px; margin-right: 2px; vertical-align: middle; }
.dummy-score { font-weight: 700; color: var(--honey); margin-left: 6px; font-size: .9rem; }
.g-gate { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; background: rgba(255,255,255,.55); backdrop-filter: blur(2px); padding: 16px; text-align: center; }
.g-gate-title { font-weight: 700; color: var(--green); margin: 0; }
.g-gate .small { margin: 0; color: #6f6a5c; }
.g-gate-row { display: flex; gap: 8px; margin: 6px 0; flex-wrap: wrap; justify-content: center; }
.g-gate-row input { padding: 10px 14px; border: 1px solid #c9c9c9; border-radius: 8px; font-size: 1rem; width: 160px; }

/* 口コミタブ */
.rev-tabs { display: flex; gap: 8px; margin: 12px 0; }
.rev-tabs button { padding: 8px 18px; border-radius: 999px; border: none; cursor: pointer; font-weight: 700; font-size: .9rem; background: #eee8db; color: #55503f; }
.rev-tabs button.active { background: var(--green); color: #fff; }
.rev-empty { background: var(--white); border: 1px dashed var(--line); border-radius: 12px; padding: 26px; text-align: center; color: #6f6a5c; }
.rev-empty .icn { width: 34px; height: 34px; opacity: .6; }
.rev-empty p { margin: 8px 0 0; }
.g-avg { font-size: .95rem; color: #6f6a5c; margin: 4px 0 8px; }

/* ===== フェーズ2: 認証・口コミ・マイページ ===== */
#auth-area { display: flex; align-items: center; margin-left: auto; }
.header-inner .ad-slot.ad-head + #auth-area, .header-inner:has(.ad-head) #auth-area { margin-left: 12px; }
.auth-link { color: #fff; font-size: .8rem; font-weight: 700; padding: 8px 16px; border-radius: 999px; border: none; background: var(--honey, #d9a13b); box-shadow: 0 2px 6px rgba(0,0,0,.22); white-space: nowrap; transition: background .15s; }
.auth-link:hover { background: #c8892a; }
.auth-link .icn { color: #fff; }


/* ログインページ */
.auth-card { max-width: 440px; margin: 36px auto; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px 24px; }
.auth-card h1 { font-size: 1.25rem; margin: 0 0 8px; }
.btn-google { width: 100%; background: #fff; color: var(--ink); border: 1.5px solid #c9c9c9; display: flex; align-items: center; justify-content: center; gap: 10px; margin: 14px 0 4px; }
.btn-google:hover { background: #f5f5f5; filter: none; }
.auth-sep { display: flex; align-items: center; gap: 12px; color: #9a9585; font-size: .8rem; margin: 14px 0; }
.auth-sep::before, .auth-sep::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.auth-row { display: flex; gap: 8px; margin: 6px 0; }
.auth-row input { flex: 1; padding: 10px 14px; border: 1px solid #c9c9c9; border-radius: 8px; font-size: 1rem; min-width: 0; }

/* お気に入り/行ったよ/行きたいボタン */
.act-btns { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 4px; }
.act-btn { display: inline-flex; align-items: center; gap: 6px; background: var(--white); border: 1.5px solid var(--line); border-radius: 999px; padding: 7px 14px; font-size: .85rem; font-weight: 700; color: #6f6a5c; cursor: pointer; font-family: inherit; }
.act-btn .icn { width: 1.05em; height: 1.05em; }
.act-btn:hover { border-color: var(--honey); color: var(--honey); }
.act-btn.on { background: var(--honey); border-color: var(--honey); color: #fff; }
.act-btn.on .icn { color: #fff; }
.act-cnt { font-weight: 400; font-size: .78rem; opacity: .85; }

/* イヌマチ口コミ一覧 */
.rev-item { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin: 10px 0; }
.rev-item p { margin: 8px 0 0; line-height: 1.85; white-space: pre-wrap; }
.rev-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rev-axes { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.rev-axes span { font-size: .74rem; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 2px 10px; color: #6f6a5c; }
.rev-status { font-size: .72rem; border-radius: 999px; padding: 2px 10px; font-weight: 700; }
.rev-pending { background: #fff3dc; color: #9a6a12; }
.rev-rejected { background: #f3e2e2; color: #a33; }
.rev-published { background: #e4efe7; color: var(--green); }

/* 投稿フォーム（モーダル） */
.rf-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(40,40,30,.5); display: flex; align-items: center; justify-content: center; padding: 14px; overflow-y: auto; }
.rf-modal { background: var(--white); border-radius: var(--radius); padding: 22px 20px; width: 100%; max-width: 480px; max-height: 92vh; overflow-y: auto; }
.rf-modal h3 { margin: 0 0 12px; color: var(--green); line-height: 1.5; }
.rf-field { display: block; margin: 10px 0; font-size: .88rem; font-weight: 700; }
.rf-field input { display: block; width: 100%; margin-top: 4px; padding: 10px 12px; border: 1px solid #c9c9c9; border-radius: 8px; font-size: 1rem; }
.rf-field .small { font-weight: 400; }
.rf-axis { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px dashed var(--line); }
.rf-axis-label { font-size: .88rem; font-weight: 700; }
.rf-paws button { background: none; border: none; cursor: pointer; padding: 2px; color: #c9c3b2; }
.rf-paws .icn { width: 26px; height: 26px; }
.rf-modal textarea { width: 100%; margin-top: 12px; padding: 10px 12px; border: 1px solid #c9c9c9; border-radius: 8px; font-size: 1rem; font-family: inherit; line-height: 1.7; }
.rf-btns { display: flex; gap: 10px; margin: 6px 0; }

/* マイページ */
.mp-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 20px; margin: 16px 0; }
.mp-card h2 { font-size: 1.05rem; margin: 0 0 10px; color: var(--green); }
.mp-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 8px 0; }
.mp-label { font-size: .85rem; font-weight: 700; min-width: 8.5em; }
.mp-row input { padding: 9px 12px; border: 1px solid #c9c9c9; border-radius: 8px; font-size: 1rem; }
.mp-review { border-bottom: 1px dashed var(--line); padding: 10px 0; }
.mp-review p { margin: 6px 0 0; font-size: .9rem; color: #55503f; }

/* 検索の並び替え */
.sort-select { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--white); margin-left: auto; }

/* ===== フェーズ2c: ペットプロフィール・口コミ著者バッジ ===== */
.rev-author { display: inline-flex; align-items: center; gap: 8px; }
.rev-avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; border: 2px solid var(--honey); background: var(--paper); flex: 0 0 auto; }
.rev-avatar-ph { display: inline-flex; align-items: center; justify-content: center; color: var(--honey); }
.rev-avatar-ph svg { width: 18px; height: 18px; }

.pet-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.pet-card { position: relative; display: flex; gap: 12px; align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.pet-card.main { border-color: var(--honey); box-shadow: 0 0 0 2px rgba(233,161,59,.25); }
.pet-photo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid var(--honey); background: var(--white); flex: 0 0 auto; }
.pet-photo-ph { display: inline-flex; align-items: center; justify-content: center; color: var(--honey); }
.pet-photo-ph svg { width: 26px; height: 26px; }
.pet-info b { font-size: 1rem; }
.pet-meta { font-size: .82rem; color: #6d6857; margin-top: 2px; }
.pet-tag { display: inline-block; background: var(--green); color: #fff; border-radius: 999px; font-size: .72rem; padding: 1px 9px; margin-right: 5px; }
.pet-main-badge { position: absolute; top: -8px; right: 10px; background: var(--honey); color: #fff; border-radius: 999px; font-size: .7rem; padding: 2px 9px; font-weight: 700; }
.pet-actions { margin-top: 6px; display: flex; gap: 10px; flex-wrap: wrap; }
.pet-actions button { background: none; border: none; padding: 0; color: var(--green); font-family: inherit; font-size: .8rem; cursor: pointer; text-decoration: underline; }
.pet-actions button.danger { color: #b00020; }

.pf-field { display: block; margin: 10px 0; font-size: .88rem; font-weight: 700; }
.pf-field input[type="text"], .pf-field input[type="date"] { width: 100%; box-sizing: border-box; margin-top: 4px; padding: 10px 12px; border: 1px solid #c9c9c9; border-radius: 8px; font-size: 1rem; font-family: inherit; font-weight: 400; }
.pf-sizes { display: flex; gap: 8px; margin-top: 4px; flex-wrap: wrap; }
.pf-sizes label { display: inline-flex; align-items: center; gap: 4px; font-weight: 400; font-size: .9rem; background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 5px 12px; cursor: pointer; }
.pf-sizes input:checked + span { color: var(--green); font-weight: 700; }
.pf-photo-row { display: flex; align-items: center; gap: 12px; margin-top: 4px; }

/* ===== フェーズ4-1: イベント ===== */
.ev-row { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin: 10px 0; }
.ev-row.hit { border-color: var(--honey); box-shadow: 0 0 0 2px rgba(233,161,59,.22); }
.ev-hit-msg { color: var(--green-dark); font-weight: 700; font-size: .9rem; margin-bottom: 6px; }
.ev-reason { display: inline-block; background: var(--honey); color: #fff; border-radius: 999px; font-size: .72rem; padding: 1px 9px; margin-left: 6px; font-weight: 700; vertical-align: 1px; }
.ev-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; line-height: 1.7; }
.ev-breed { display: inline-block; background: var(--green); color: #fff; border-radius: 999px; font-size: .72rem; padding: 1px 9px; }
.ev-breed.ev-all { background: #8a8577; }
.ev-date { font-weight: 700; color: var(--green-dark); font-size: .9rem; white-space: nowrap; }
.ev-name { font-size: 1rem; }
.ev-venue, .ev-place { font-size: .85rem; color: #6d6857; }
.ev-fee { font-size: .85rem; font-weight: 700; color: var(--honey); white-space: nowrap; }
.ev-src { font-size: .82rem; }
.ev-summary { margin: 6px 0 0; font-size: .85rem; color: #55503f; }
.ev-filters { display: flex; gap: 10px; flex-wrap: wrap; margin: 14px 0; }
.ev-filters select, .ev-filters input { padding: 9px 12px; border: 1px solid #c9c9c9; border-radius: 8px; font-size: .95rem; font-family: inherit; background: var(--white); }
.ev-banner { display: block; background: linear-gradient(90deg, var(--green), var(--green-dark)); color: #fff; border-radius: var(--radius); padding: 14px 18px; margin: 16px 0; text-decoration: none; font-weight: 700; }
.ev-banner:hover { opacity: .92; }
.ev-banner .small { color: #e8e4d5; font-weight: 400; }

/* ===== フェーズ4-1b: イベント詳細・応募フォーム ===== */
.ev-name { font-weight: 700; font-size: 1rem; color: var(--green-dark); text-decoration: underline; }
.ev-name:hover { color: var(--honey); }
.ev-detail-table { width: 100%; border-collapse: collapse; }
.ev-detail-table th { text-align: left; width: 90px; padding: 8px 6px; color: var(--green); font-size: .88rem; border-bottom: 1px dashed var(--line); vertical-align: top; }
.ev-detail-table td { padding: 8px 6px; border-bottom: 1px dashed var(--line); font-size: .95rem; }
.req { color: #b00020; font-size: .75rem; }
.ad-row2e { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
@media (max-width: 640px) { .ad-row2e { grid-template-columns: 1fr; } }
.ev-lp img { max-width: 100%; }

/* 犬種ピッカー（応募フォーム） */
.breed-picker { max-height: 216px; overflow-y: auto; border: 1px solid #c9c9c9; border-top: none; border-radius: 0 0 8px 8px; background: var(--white); display: grid; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .breed-picker { grid-template-columns: 1fr; } }
.breed-opt { display: flex; align-items: center; gap: 8px; padding: 8px 12px; font-weight: 400; font-size: .92rem; cursor: pointer; border-bottom: 1px dashed var(--line); }
.breed-opt:hover { background: var(--paper); }
.breed-opt input:checked + span { color: var(--green); font-weight: 700; }
.breed-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.breed-chips:empty { display: none; }
.breed-chip { display: inline-flex; align-items: center; gap: 5px; background: var(--green); color: #fff; border-radius: 999px; font-size: .82rem; padding: 4px 6px 4px 12px; font-weight: 700; }
.breed-chip button { background: rgba(255,255,255,.25); color: #fff; border: none; border-radius: 50%; width: 18px; height: 18px; line-height: 1; cursor: pointer; font-size: .8rem; padding: 0; }

/* フェーズ4-6: イベント有料掲載ハイライト */
.ev-row.paid { border: 2px solid var(--honey); background: #fffdf6; }

/* 未評価店舗の肉球ティザー表示 */
.paws-blur { filter: blur(3px); opacity: .75; }

/* ===== 駅名サジェスト・トップ最新口コミ（2026-07 追加） ===== */
.st-suggest-wrap { position: relative; }
.st-suggest { position: absolute; top: calc(100% + 4px); left: 0; z-index: 30; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.12); min-width: 260px; max-height: 320px; overflow-y: auto; }
.st-suggest button { display: block; width: 100%; text-align: left; background: none; border: none; padding: 10px 14px; cursor: pointer; font-family: inherit; font-size: .93rem; }
.st-suggest button:hover { background: #fff7e0; }
.st-suggest .st-lines { display: block; font-size: .76rem; color: #8b8574; }
.latest-rev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.latest-rev-card { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; color: inherit; }
.latest-rev-card:hover { box-shadow: 0 6px 16px rgba(47,107,69,.12); }
.latest-rev-card .fac { font-weight: 700; }
.latest-rev-card .body { font-size: .9rem; color: #555; line-height: 1.7; }
.latest-rev-card .meta { font-size: .78rem; color: #8b8574; }
.latest-rev-card.blog { border-left: 5px solid var(--honey); }
.latest-rev-card .blog-title { font-weight: 700; }
.latest-rev-card .avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; margin-right: 6px; vertical-align: middle; }

/* ===== 検索結果ページの絞り込みパネル（2026-07 追加） ===== */
.sp-refine { background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; margin: 14px 0; }
.sp-refine .sp-tabs { display: flex; gap: 6px; margin-bottom: 10px; }
.sp-refine .sp-tab { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 6px 16px; font-size: .85rem; font-weight: 700; cursor: pointer; font-family: inherit; }
.sp-refine .sp-tab.on { background: var(--green); color: #fff; border-color: var(--green); }
.sp-refine .search-row select { min-width: 130px; }

/* 公営ドッグランのGoogle写真 */
.fac-thumb { position: relative; }
.fac-thumb .gphoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gphoto-hero { position: relative; margin: 12px 0; border-radius: 12px; overflow: hidden; }
.gphoto-hero img { display: block; width: 100%; max-height: 320px; object-fit: cover; }
.gphoto-credit { position: absolute; right: 8px; bottom: 6px; background: rgba(0,0,0,.55); color: #fff; font-size: .7rem; padding: 2px 8px; border-radius: 8px; }

/* 郵便番号検索：駅から探すボックス */
.zip-st-box { background: var(--white); border: 1.5px solid var(--line); border-radius: 12px; padding: 10px 12px 12px; margin: 10px 0; max-width: 460px; }
.zip-st-head { font-weight: 700; font-size: .88rem; margin-bottom: 2px; }
.zip-st-btn { display: flex; justify-content: space-between; align-items: center; border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; margin-top: 8px; font-weight: 700; color: var(--green); background: #fff; }
.zip-st-btn:hover { border-color: var(--green); }
.zip-st-arrow { color: #aaa; font-size: 1.1rem; }

/* 駅名標風ナビ（駅ページ） */
.eki-sign { background: #fff; border: 2px solid #23282d; border-radius: 12px; padding: 10px 14px 8px; margin: 12px 0; max-width: 460px; text-align: center; }
.eki-line-name { font-size: .72rem; color: #667; letter-spacing: .1em; }
.eki-main { font-size: 1.45rem; font-weight: 700; letter-spacing: .18em; line-height: 1.3; }
.eki-band { position: relative; height: 10px; background: #23282d; border-radius: 4px; margin: 8px 0 6px; }
.eki-band .eki-dot { position: absolute; top: -3px; left: 14%; width: 10px; height: 16px; background: #fff; border: 2px solid #23282d; border-radius: 2px; }
.eki-band .eki-dot.r { left: auto; right: 14%; }
.eki-nb { display: flex; justify-content: space-between; font-size: .88rem; }
.eki-nb a { font-weight: 700; color: var(--green); }
.eki-nb a:hover { text-decoration: underline; }

/* 広告バナー枠 */
.ad-slot { position: relative; max-width: 640px; margin: 14px auto; text-align: center; }
.ad-slot img { max-width: 100%; border-radius: 12px; box-shadow: 0 1px 6px rgba(0,0,0,.1); }
.ad-slot .ad-tag { position: absolute; top: 6px; left: 6px; background: rgba(0,0,0,.55); color: #fff; font-size: .62rem; letter-spacing: .1em; border-radius: 6px; padding: 2px 7px; z-index: 1; }
.ad-slot.ad-wide { max-width: 1100px; padding: 0 14px; }
.ad-slot.ad-wide img { border-radius: 10px; }

/* ヘッダー内広告（トップページ・ロゴ右）。ナビと区切ってログインと右クラスタに */
.ad-slot.ad-head { margin: 0 0 0 auto; padding: 0; border: none; max-width: none; min-width: 0; flex: 0 1 auto; }
.ad-slot.ad-head img { width: auto; max-width: 100%; height: auto; max-height: 38px; border-radius: 8px; box-shadow: 0 1px 4px rgba(0,0,0,.25); outline: 1px solid rgba(255,255,255,.25); display: block; }
.ad-slot.ad-head .ad-tag { display: none; }
@media (max-width: 640px) {
  .ad-slot.ad-head { margin-left: auto; border-left: none; padding-left: 0; }
  .ad-slot.ad-head img { max-height: 28px; }
  .header-inner:has(.ad-head) #auth-area { margin-left: 8px; }
}

/* 犬連れ情報ボックス */
.dog-info-box{background:#f4f8f1;border:1px solid #d8e6cf;border-radius:12px;padding:14px 16px;margin:14px 0}
.dog-info-box h3{margin:0 0 8px;font-size:1rem}
.dog-info-tags{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.dog-info-tags span{border-radius:999px;padding:3px 10px;font-size:.82rem;background:#fff}
.di-yes{border:1px solid #4c7a3d;color:#39602e}
.di-no{border:1px solid #ccc;color:#999}
.di-notes{margin:8px 0 2px;font-size:.92rem}
.di-src{color:#8a8a80;margin:6px 0 0}
/* AI検索 */
.ai-box{background:#fff;border:2px solid #4c7a3d;border-radius:14px;padding:18px}
.ai-box textarea{width:100%;box-sizing:border-box;border:1px solid #cfd8c6;border-radius:10px;padding:10px;font-size:1rem;font-family:inherit;resize:vertical;min-height:64px}
.ai-pets{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.ai-pets .pet-chip{border:1px solid #cfd8c6;border-radius:999px;padding:5px 12px;cursor:pointer;background:#fff;font-size:.9rem}
.ai-pets .pet-chip.on{background:#4c7a3d;color:#fff;border-color:#4c7a3d}
.ai-answer{background:#f4f8f1;border-radius:12px;padding:14px 16px;margin:14px 0;line-height:1.7}
.ai-reason{font-size:.85rem;color:#39602e;background:#eef5e8;border-radius:8px;padding:6px 10px;margin-top:6px}
.ai-ex{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ai-ex button{border:1px dashed #9db98d;background:#fff;border-radius:999px;padding:4px 10px;font-size:.82rem;cursor:pointer;color:#39602e}

/* AI検索導線 */
.gnav-ai{background:#e8933a;border-radius:999px;padding:2px 12px;color:#fff !important}
.ai-cta{display:block;margin-top:12px;background:rgba(255,255,255,.92);border:1.5px solid #e8933a;border-radius:12px;padding:10px 14px;text-decoration:none;color:#2e5a27;font-weight:700}
.ai-cta-sub{display:block;font-weight:400;font-size:.82rem;color:#666;margin-top:2px}

/* AI検索の統合デザイン */
.ai-cta-head{font-weight:700;color:#2e5a27;margin-bottom:6px}
.ai-cta-row{display:flex;gap:8px}
.ai-cta-row input{flex:1;min-width:0;border:1px solid #cfd8c6;border-radius:10px;padding:9px 12px;font-size:.95rem;font-family:inherit}
.ai-cta-row .btn{white-space:nowrap;background:#e8933a}
.ai-head{display:flex;align-items:center;gap:14px;margin:24px 0 14px}
.ai-mascot{border-radius:50%;background:#fff;border:2px solid #d8e6cf;padding:4px;flex-shrink:0}

/* dog_infoこだわりチップ */
.dogneeds{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.dn-chip{border:1.5px solid #cfd8c6;border-radius:999px;padding:5px 13px;background:#fff;font-size:.86rem;cursor:pointer;font-family:inherit;color:#39602e}
.dn-chip.on{background:#4c7a3d;color:#fff;border-color:#4c7a3d}
