:root{
  --navy:#001e3f;
  --orange:#fd761e;
  --cyan:#7aede6;
  --cream:#fbf8f6;
  --teal:#0b615c;
  --teal-soft:#e6f2f1;
  --ink:#172231;
  --sub:#596574;
  --line:#dce2e7;
  --soft:#f5f7f8;
  --white:#fff;
  --shadow:0 9px 28px rgba(0,30,63,.09);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Noto Sans JP",sans-serif;line-height:1.75}
button,input,select{font:inherit}
button,a{-webkit-tap-highlight-color:rgba(0,30,63,.12)}
a{color:var(--navy);text-underline-offset:.2em}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:5px}
.shell{width:min(100%,1080px);margin-inline:auto;padding-inline:16px}
.sr-only,.skip{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip:focus{z-index:100;top:8px;left:8px;width:auto;height:auto;margin:0;clip:auto;overflow:visible;padding:10px 14px;background:var(--orange);font-weight:800}

.topbar{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:86px;padding:0 12px 0 0;background:var(--navy);border-bottom:3px solid var(--cyan)}
.logo{display:flex;align-items:center;width:min(68vw,250px);height:83px;overflow:hidden;color:var(--cream);text-decoration:none}
.logo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.menu-button{display:flex;align-items:center;gap:7px;min-height:44px;padding:6px 10px;border:1px solid rgba(251,248,246,.45);border-radius:9px;background:transparent;color:var(--cream);font-size:12px;font-weight:750;cursor:pointer}
.menu-icon,.menu-icon::before,.menu-icon::after{display:block;width:17px;height:2px;background:currentColor;border-radius:99px}
.menu-icon{position:relative}.menu-icon::before,.menu-icon::after{content:"";position:absolute;left:0}.menu-icon::before{top:-5px}.menu-icon::after{top:5px}
.site-menu{position:absolute;top:calc(100% + 1px);right:12px;min-width:210px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--white);box-shadow:var(--shadow)}
.site-menu a{display:flex;align-items:center;min-height:44px;padding:7px 10px;border-radius:7px;color:var(--navy);font-size:14px;font-weight:700;text-decoration:none}
.site-menu a:hover{background:var(--teal-soft)}

.search-hero{padding:23px 0 18px;background:var(--cream);border-bottom:1px solid var(--line)}
.eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 7px;color:var(--sub);font-size:12px;font-weight:700;letter-spacing:.03em}
.eyebrow span{padding:2px 8px;border-radius:99px;background:var(--cyan);color:var(--navy);font-weight:850}
h1{margin:0;color:var(--navy);font-size:clamp(27px,8vw,39px);line-height:1.3;letter-spacing:.01em}
.intro{max-width:40em;margin:10px 0 17px;color:var(--sub);font-size:14px;line-height:1.75}
.finder{padding:13px;border:1px solid var(--line);border-radius:15px;background:var(--white);box-shadow:0 5px 18px rgba(0,30,63,.07)}
.searchbox{display:flex;align-items:center;gap:9px;height:50px;padding:0 13px;border:2px solid var(--navy);border-radius:11px;background:var(--white)}
.search-icon{position:relative;flex:0 0 17px;width:17px;height:17px;border:2px solid var(--navy);border-radius:50%}.search-icon::after{content:"";position:absolute;right:-5px;bottom:-3px;width:7px;height:2px;background:var(--navy);transform:rotate(45deg);border-radius:99px}
.searchbox input{width:100%;height:100%;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:16px}.searchbox input::placeholder{color:#6a717c;opacity:1}
.quick-filters{display:flex;gap:8px;margin:11px -13px 0;padding:0 13px 5px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.quick-filters::-webkit-scrollbar{display:none}
.filter-chip{flex:0 0 auto;min-height:42px;padding:6px 14px;border:1.5px solid var(--navy);border-radius:999px;background:var(--white);color:var(--navy);font-size:13px;font-weight:800;cursor:pointer;scroll-snap-align:start}
.filter-chip::before{content:"＋";margin-right:4px}.filter-chip[aria-pressed=true]{border-color:var(--teal);background:var(--teal-soft);color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}.filter-chip[aria-pressed=true]::before{content:"✓"}
.filter-chip.feature{border-style:dashed}
.finder-footer{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;margin-top:9px;padding-top:10px;border-top:1px solid var(--line)}
.finder-footer p{display:flex;align-items:baseline;gap:3px;margin:0;color:var(--sub);font-size:12px}.finder-footer strong{color:var(--navy);font-size:20px}.clear-button{justify-self:start;min-height:38px;padding:4px 9px;border:0;background:transparent;color:var(--teal);font-size:12px;font-weight:800;text-decoration:underline;cursor:pointer}
.sort-label{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--sub);font-size:12px}.sort-label select{min-height:42px;padding:6px 30px 6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--navy);font-size:13px;font-weight:700}

.results{padding-top:25px;padding-bottom:45px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:13px}.section-kicker{margin:0 0 2px;color:var(--teal);font-size:10px;font-weight:850;letter-spacing:.12em}.section-heading h2,.promise h2{margin:0;color:var(--navy);font-size:21px;line-height:1.4}.freshness{margin:0;color:var(--teal);font-size:10px;font-weight:750;text-align:right}.freshness span{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--teal-soft)}
.facility-list{display:grid;gap:12px}.facility-card{position:relative;display:grid;padding:15px;border:1px solid var(--line);border-left:5px solid var(--navy);border-radius:13px;background:var(--white);box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease}.facility-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,30,63,.14)}.facility-card:focus-within{box-shadow:0 0 0 3px var(--cyan),var(--shadow)}
.card-link{position:absolute;inset:0;border-radius:inherit}.card-link:focus-visible{outline:0}.card-topline{display:flex;justify-content:space-between;gap:8px;color:var(--sub);font-size:11px;font-weight:700}.card-topline p{margin:0}.location span{color:var(--teal)}.distance{white-space:nowrap}
.facility-card h3{min-height:2.75em;margin:7px 0 5px;color:var(--navy);font-size:18px;line-height:1.38}.card-price{display:flex;align-items:baseline;gap:3px;margin:0 0 8px;color:var(--sub);font-size:12px}.card-price strong{color:var(--navy);font-size:21px;line-height:1.3}.status-list{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:5px;list-style:none;margin:0;padding:0}.status-list li{padding:3px 8px;border:1px solid var(--teal);border-radius:99px;background:var(--teal-soft);color:var(--teal);font-size:10px;font-weight:800}.status-list li::before{content:"✓";margin-right:3px}.status-list .special{border-style:dashed;background:var(--white)}
.card-desc{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin:10px 0 0;color:var(--sub);font-size:13px;line-height:1.7}.card-more{align-self:end;margin:11px 0 0;padding-top:9px;border-top:1px solid var(--line);color:var(--navy);font-size:12px;font-weight:850;text-align:right}.card-more span{color:#bf4b00;font-size:15px}
.empty{padding:28px 16px;border:2px dashed var(--line);border-radius:13px;background:var(--soft);text-align:center}.empty p{margin:0 0 10px;color:var(--navy);font-weight:800}.empty button{min-height:44px;padding:6px 14px;border:0;border-radius:8px;background:var(--orange);color:var(--navy);font-weight:850}.prototype-note{margin:18px 0 0;padding:10px 12px;border-radius:8px;background:var(--soft);color:var(--sub);font-size:11px}

.promise{padding:38px 0;background:var(--navy);color:var(--cream)}.promise .section-kicker{color:var(--cyan)}.promise h2{color:var(--cream);font-size:23px}.promise ul{display:grid;gap:9px;list-style:none;margin:21px 0 0;padding:0}.promise li{display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid rgba(122,237,230,.33);border-radius:9px;color:var(--cream);font-size:13px}.promise li span{color:var(--cyan);font-size:11px;font-weight:850;letter-spacing:.08em}
footer{padding:29px 0;background:var(--cream);color:var(--sub);font-size:12px}footer strong{color:var(--navy);font-size:15px;letter-spacing:.04em}footer p{margin:4px 0 13px}footer nav{display:grid;gap:0;margin-bottom:18px}footer nav a{display:flex;align-items:center;min-height:42px;border-bottom:1px solid var(--line);font-weight:700}footer small{color:var(--sub)}

@media(min-width:720px){
  .topbar{padding:0 max(24px,calc((100vw - 1080px)/2));min-height:92px}.logo{width:270px;height:90px}.menu-button{display:none}.site-menu[hidden]{display:flex!important;position:static;min-width:0;padding:0;border:0;background:transparent;box-shadow:none}.site-menu a{color:var(--cream);padding-inline:12px}.site-menu a:hover{background:rgba(251,248,246,.12)}
  .search-hero{padding:44px 0 27px}.search-hero .shell{display:grid;grid-template-columns:minmax(0,.8fr) minmax(500px,1.2fr);gap:42px;align-items:end}.eyebrow,h1,.intro{grid-column:1}.finder{grid-column:2;grid-row:1/4}.intro{font-size:15px}.quick-filters{flex-wrap:wrap;overflow:visible;margin-inline:0;padding-inline:0}.filter-chip{min-height:44px}.sort-label{grid-column:auto;justify-content:flex-end}.finder-footer{grid-template-columns:auto auto 1fr}
  .results{padding-top:38px}.facility-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.facility-card{padding:17px}.section-heading h2{font-size:25px}.promise ul{grid-template-columns:repeat(3,1fr)}footer nav{display:flex;gap:24px}footer nav a{border:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.facility-card{transition:none}}


/* ここから下は、試作に無かったページのぶん（同じ変数を使っている） */
:root{--faint:#6a717c;--red:#b3261e;--orange-ink:#bf4b00;--tap:44px}
main{display:block}
img{max-width:100%}
.wrap{width:min(100%,1080px);margin-inline:auto;padding-inline:16px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

nav.crumb{font-size:12px;margin:16px 0 0}
nav.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0}
nav.crumb li:not(:last-child)::after{content:"／";color:var(--faint);margin-left:6px}
nav.crumb a{padding:6px 0;display:inline-block;color:var(--sub)}

h1.page{margin:16px 0 6px;color:var(--navy);font-size:clamp(22px,6vw,30px);line-height:1.35}
.lead{color:var(--sub);font-size:14px;margin:0 0 18px}
h2.sec{font-size:18px;margin:34px 0 12px;padding-left:11px;border-left:4px solid var(--orange);color:var(--navy)}
.page-body{padding-bottom:48px}
.page-body h2{margin:32px 0 10px;color:var(--navy);font-size:19px}
.page-body p,.page-body li{color:var(--ink);font-size:15px;line-height:1.9}
.page-body ul{padding-left:1.2em}

.preset{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:11px 14px;
  border:1px solid var(--teal);border-left:5px solid var(--teal);border-radius:10px;
  background:var(--teal-soft);color:var(--teal);font-size:13px;font-weight:700;line-height:1.7}

.detail-head{margin:6px 0 0}
.detail-meta{margin:0 0 10px;color:var(--sub);font-size:13px;font-weight:700}
.detail-price{display:flex;align-items:baseline;gap:4px;margin:12px 0 6px;color:var(--sub);font-size:13px}
.detail-price strong{color:var(--navy);font-size:28px;line-height:1.2}
.detail-desc{margin:6px 0 0;color:var(--ink);font-size:15px;line-height:1.9}

.actions{display:grid;gap:10px;margin:22px 0}
.btn,.btn2{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:54px;
  padding:10px 22px;border-radius:11px;font-weight:850;font-size:16px;text-decoration:none;text-align:center}
.btn{background:var(--orange);color:var(--navy);border:2px solid var(--orange);box-shadow:0 4px 0 var(--orange-ink)}
.btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--orange-ink)}
.btn2{background:var(--white);color:var(--navy);border:2px solid var(--navy)}
.btn2:hover{background:var(--navy);color:var(--cream)}
.ext{font-size:11px;font-weight:600;opacity:.85}

.checked{display:inline-flex;align-items:center;gap:7px;background:var(--teal-soft);color:var(--teal);
  border-radius:9px;padding:9px 14px;font-size:14px;font-weight:800;margin:0}
.checked::before{content:"✓";display:inline-grid;place-items:center;width:19px;height:19px;
  border-radius:50%;background:var(--teal);color:var(--white);font-size:11px}

table.spec{border-collapse:collapse;width:100%;font-size:15px;margin:0 0 18px}
table.spec th,table.spec td{border:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:top}
table.spec th{background:var(--soft);font-weight:700;white-space:nowrap;width:9em;color:var(--navy)}
.st{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:13px;font-weight:800}
.st-yes{border:1px solid var(--teal);background:var(--teal-soft);color:var(--teal)}
.st-no{border:1px solid var(--line);background:var(--soft);color:var(--sub)}
.st-unknown{border:1px dashed var(--line);background:var(--white);color:var(--faint);font-weight:700}
h3.group{font-size:15px;margin:20px 0 8px;color:var(--navy)}

.note{background:var(--soft);border-radius:10px;padding:14px;font-size:13.5px;color:var(--sub);line-height:1.85}
.note strong{color:var(--navy)}
.trust{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.trust li{font-size:14px;padding-left:26px;position:relative;color:var(--sub)}
.trust li::before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:800}

form.contact label{display:block;margin:18px 0 5px;font-size:15px;font-weight:700;color:var(--navy)}
form.contact .req{color:var(--red);font-size:12px;margin-left:6px}
form.contact input,form.contact textarea,form.contact select{width:100%;padding:12px;font-size:16px;
  border:1px solid var(--line);border-radius:9px;font-family:inherit;background:var(--white)}
form.contact textarea{min-height:160px}
form.contact .ex{font-size:12px;color:var(--sub);margin:5px 0 0}
form.contact button{width:100%;min-height:54px;border:0;cursor:pointer}
.hp{position:absolute;left:-9999px}

/* スマホでは基本情報の表を縦に積む。ただし条件の表(.cond)は値が短いので2列のまま */
@media(max-width:719px){
  table.spec:not(.cond),table.spec:not(.cond) tbody,table.spec:not(.cond) tr,
  table.spec:not(.cond) th,table.spec:not(.cond) td{display:block;width:auto}
  table.spec:not(.cond) tr{border:1px solid var(--line);border-radius:9px;margin-bottom:10px;overflow:hidden}
  table.spec:not(.cond) th{border:0;border-bottom:1px solid var(--line);font-size:12px;color:var(--sub)}
  table.spec:not(.cond) td{border:0;padding-top:9px}
  table.spec.cond{border:0}
  table.spec.cond tr{border:0}
  table.spec.cond th,table.spec.cond td{border:0;border-bottom:1px solid var(--line);padding:8px 4px}
  table.spec.cond th{width:42%;background:transparent;font-size:13px;white-space:normal}
  table.spec.cond td{text-align:right}
}
@media(min-width:720px){
  .actions{grid-auto-flow:column;justify-content:start}
}

/* ── 修正1：ヘッダーを「画像＋文字」に ── */
.topbar{min-height:78px;padding:0 12px}
.logo{display:flex;align-items:center;gap:10px;width:auto;height:auto;overflow:visible;
  padding:8px 0;color:var(--cream);text-decoration:none}
.logo img{width:88px;height:auto;border-radius:7px;object-fit:contain}
.logo-text{display:block;line-height:1.25}
.logo-text strong{display:block;font-size:13.5px;font-weight:850;letter-spacing:.02em;white-space:nowrap}
.logo-text small{display:block;margin-top:2px;font-size:9.5px;font-weight:600;opacity:.78;white-space:nowrap}

/* ── 修正2：横スクロールできると分かるようにする ── */
.filters-wrap{position:relative}
.filters-wrap::after{content:"";position:absolute;top:0;right:0;bottom:5px;width:44px;
  background:linear-gradient(to left,var(--white) 18%,rgba(255,255,255,0));
  pointer-events:none;opacity:1;transition:opacity .18s ease}
.filters-wrap.at-end::after{opacity:0}
.scroll-hint{display:flex;align-items:center;gap:5px;margin:6px 0 0;color:var(--sub);
  font-size:10.5px;font-weight:700;transition:opacity .18s ease}
.scroll-hint::before{content:"→"}
.scroll-hint.done{opacity:0}

/* ── 修正3：「そのほかの条件」を押せるボタンに ── */
.more-cond{margin-top:10px}
.more-cond summary{display:flex;align-items:center;gap:7px;min-height:44px;padding:6px 14px;
  border:1px solid var(--line);border-radius:10px;background:var(--white);color:var(--navy);
  font-size:13px;font-weight:800;cursor:pointer;list-style:none}
.more-cond summary::-webkit-details-marker{display:none}
.more-cond summary:hover{border-color:var(--navy)}
.more-cond .lbl-open{display:none}
.more-cond[open] .lbl-closed{display:none}
.more-cond[open] .lbl-open{display:inline}
.more-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;
  border-radius:99px;background:var(--teal);color:var(--white);font-size:11px;font-weight:850}
.quick-filters.flat{flex-wrap:wrap;overflow:visible;margin:9px 0 0;padding:0}

/* ── 修正4：スマホでは施設名を1回だけにする ── */
.back-link{display:none;align-items:center;gap:6px;min-height:44px;margin:10px 0 0;
  color:var(--sub);font-size:13px;font-weight:700;text-decoration:none}
.back-link span{color:var(--teal);font-size:17px;font-weight:900}
@media(max-width:719px){
  .crumb.pc-only{display:none}
  .back-link{display:flex}
}
@media(min-width:720px){
  .topbar{min-height:88px}
  .logo img{width:104px}
  .logo-text strong{font-size:16px}
  .logo-text small{font-size:11px}
  .filters-wrap::after,.scroll-hint{display:none}
}
