.pfs-shell{--pfs-border:#dfe4ea;--pfs-ink:#18212f;--pfs-muted:#657083;max-width:1120px;margin:0 auto;padding:28px 18px 56px;color:var(--pfs-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}.pfs-hero{padding:30px;border:1px solid var(--pfs-border);border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(20,35,60,.06)}.pfs-kicker{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.08em;color:#526078}.pfs-hero h1{font-size:clamp(28px,4vw,42px);line-height:1.25;margin:0 0 12px}.pfs-hero>p{color:var(--pfs-muted)}.pfs-form{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.8fr) auto;gap:12px;align-items:end;margin-top:24px}.pfs-form label{display:grid;gap:6px;font-weight:700;font-size:14px}.pfs-form select,.pfs-form input{width:100%;min-height:48px;border:1px solid #cbd3dd;border-radius:10px;padding:10px 12px;background:#fff;font-size:16px}.pfs-form button,.pfs-pagination button{border:0;border-radius:10px;background:#1e4f91;color:#fff;font-weight:700;cursor:pointer}.pfs-form button{min-height:48px;padding:0 24px}.pfs-form button:hover,.pfs-pagination button:hover{filter:brightness(.95)}.pfs-form button:focus,.pfs-form input:focus,.pfs-form select:focus,.pfs-pagination button:focus{outline:3px solid rgba(30,79,145,.25);outline-offset:2px}.pfs-help{font-size:13px!important;margin:12px 0 0!important}.pfs-health{display:flex;gap:10px;align-items:center;margin-top:16px;padding:10px 12px;border-radius:10px;font-size:13px}.pfs-health.is-ready{background:#eff9f3;color:#17653a}.pfs-health.is-waiting{background:#fff6e9;color:#8a5a13}.pfs-results{margin-top:28px}.pfs-status{font-weight:700;margin-bottom:14px}.pfs-grid{display:grid;gap:14px}.pfs-card{border:1px solid var(--pfs-border);border-radius:14px;padding:20px;background:#fff}.pfs-card-head{display:flex;gap:8px;align-items:center}.pfs-type,.pfs-pref{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700;background:#eef3f8;color:#44546a}.pfs-card h2{font-size:20px;margin:10px 0 14px}.pfs-card dl{display:grid;gap:8px;margin:0}.pfs-card dl div{display:grid;grid-template-columns:74px 1fr;gap:8px}.pfs-card dt{font-weight:700;color:#59667a}.pfs-card dd{margin:0;overflow-wrap:anywhere}.pfs-card-note{font-size:12px;color:var(--pfs-muted);margin:14px 0 0}.pfs-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:18px}.pfs-pagination button{padding:9px 16px}.pfs-pagination button:disabled{opacity:.4;cursor:default}.pfs-empty{border:1px dashed #c9d1db;border-radius:12px;padding:24px;color:var(--pfs-muted);text-align:center}.pfs-source{margin-top:38px;padding-top:24px;border-top:1px solid var(--pfs-border)}.pfs-source h2{font-size:20px}.pfs-source p{color:var(--pfs-muted);font-size:14px;line-height:1.75}@media(max-width:720px){.pfs-shell{padding-left:12px;padding-right:12px}.pfs-hero{padding:20px}.pfs-form{grid-template-columns:1fr}.pfs-form button{width:100%}.pfs-card dl div{grid-template-columns:64px 1fr}}

body.pfs-standalone-page{margin:0;background:#f5f7fa;color:#18212f}.pfs-sitebar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid #dfe4ea;backdrop-filter:blur(10px)}.pfs-sitebar-inner{max-width:1160px;margin:0 auto;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.pfs-brand{font-size:21px;font-weight:800;color:#173f75;text-decoration:none}.pfs-sitebar-nav{display:flex;gap:4px;flex-wrap:wrap}.pfs-sitebar-nav a{padding:8px 10px;border-radius:9px;color:#35445a;text-decoration:none;font-size:14px;font-weight:700}.pfs-sitebar-nav a:hover{background:#eef3f8}.pfs-page-main{min-height:70vh}.pfs-site-footer{border-top:1px solid #dfe4ea;background:#fff;padding:24px 18px;text-align:center;color:#657083;font-size:12px;line-height:1.8}.pfs-kind-tabs{max-width:760px;margin:0 auto 18px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pfs-kind-tabs a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid #d7dee7;border-radius:12px;background:#fff;color:#39495f;text-decoration:none;font-weight:800}.pfs-kind-tabs a.is-current{background:#1e4f91;border-color:#1e4f91;color:#fff}.pfs-card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.pfs-card-actions a{display:inline-flex;align-items:center;min-height:36px;padding:7px 11px;border-radius:9px;background:#f0f4f8;color:#1e4f91;text-decoration:none;font-size:13px;font-weight:800}.pfs-card-actions a:hover{background:#e3ebf4}@media(max-width:720px){.pfs-sitebar-inner{align-items:flex-start;flex-direction:column;gap:8px}.pfs-sitebar{position:static}.pfs-sitebar-nav{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:2px}.pfs-sitebar-nav a{white-space:nowrap}.pfs-kind-tabs{grid-template-columns:1fr 1fr 1fr;gap:5px}.pfs-kind-tabs a{font-size:12px;padding:7px 5px}.pfs-health{align-items:flex-start;flex-direction:column;gap:3px}}

/* v1.0.4: nearby facility + unified home search tabs */
.pfs-card-actions button{font:inherit}.pfs-nearby-btn{display:inline-flex;align-items:center;min-height:36px;padding:7px 11px;border:1px solid #b8ddd5;border-radius:9px;background:#edf9f6;color:#0f6d5d;font-size:13px;font-weight:800;cursor:pointer}.pfs-nearby-btn:hover{background:#dcf3ed}.pfs-nearby-btn:disabled{opacity:.6;cursor:wait}.pfs-nearby-panel{margin-top:14px;border:1px solid #cfe4df;border-radius:12px;background:#f8fcfb;padding:14px}.pfs-nearby-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;color:#154e45}.pfs-nearby-head span{font-size:12px;color:#61776f}.pfs-nearby-list{display:grid;gap:8px}.pfs-nearby-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px;border-radius:9px;background:#fff;border:1px solid #e2ece9}.pfs-nearby-item strong{font-size:14px}.pfs-nearby-item p{margin:3px 0 0;color:#657083;font-size:12px;line-height:1.5}.pfs-nearby-item>a{white-space:nowrap;font-size:12px;font-weight:800;color:#0f6d5d;text-decoration:none}.pfs-distance{display:inline-block;margin-left:8px;padding:2px 6px;border-radius:999px;background:#e5f6f1;color:#0f6d5d;font-size:11px;font-weight:800}.pfs-nearby-loading,.pfs-nearby-empty{margin:0;color:#657083;font-size:13px}.pfs-nearby-empty a{font-weight:800;color:#0f6d5d}

.pfs-home-switcher{max-width:1120px;margin:0 auto 14px;padding:0 18px}.pfs-home-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 10px}.pfs-home-tab{min-height:48px;border:1px solid #d4dce7;border-radius:12px;background:#fff;color:#33435a;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 2px 8px rgba(20,35,60,.03)}.pfs-home-tab:hover{background:#f7f9fc}.pfs-home-tab.is-current[data-pfs-home-tab="medical-drug"]{background:#1e4f91;border-color:#1e4f91;color:#fff}.pfs-home-tab.is-current[data-pfs-home-tab="otc"]{background:#b56716;border-color:#b56716;color:#fff}.pfs-home-tab.is-current[data-pfs-home-tab="facility"]{background:#0f766e;border-color:#0f766e;color:#fff}
.pfs-home-panel{padding:30px;border:1px solid #dfe4ea;border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(20,35,60,.06)}.pfs-home-kicker{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.08em;color:#526078}.pfs-home-panel h2{font-size:clamp(28px,4vw,42px);line-height:1.25;margin:0 0 12px;color:#18212f}.pfs-home-lead{margin:0;color:#657083;font-size:16px;line-height:1.7}.pfs-home-form{display:grid;grid-template-columns:minmax(130px,.62fr) minmax(160px,.75fr) minmax(250px,1.45fr) auto;gap:12px;align-items:end;margin-top:24px}.pfs-home-form--single{grid-template-columns:minmax(280px,1fr) auto}.pfs-home-form label{display:grid;gap:6px;font-weight:700;font-size:14px;color:#18212f}.pfs-home-form select,.pfs-home-form input{width:100%;min-height:48px;border:1px solid #cbd3dd;border-radius:10px;padding:10px 12px;background:#fff;font-size:16px;box-sizing:border-box}.pfs-home-form button{min-height:48px;border:0;border-radius:10px;color:#fff;padding:0 24px;font-weight:800;cursor:pointer}.pfs-home-panel--facility .pfs-home-form button{background:#0f766e}.pfs-home-panel--otc .pfs-home-form button{background:#b56716}.pfs-home-form button:hover{filter:brightness(.95)}.pfs-home-panel--facility .pfs-home-form input:focus,.pfs-home-panel--facility .pfs-home-form select:focus{outline:3px solid rgba(15,118,110,.20);outline-offset:2px}.pfs-home-panel--otc .pfs-home-form input:focus{outline:3px solid rgba(181,103,22,.20);outline-offset:2px}
.pfs-home-otc-message{margin-top:12px;padding:10px 12px;border-radius:10px;background:#fff7ed;color:#8a4f13;font-size:13px;font-weight:700}.pfs-home-data-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.pfs-home-data-status>div{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:10px;font-size:13px}.pfs-home-data-status span{color:#667285}.pfs-home-data-status strong{font-size:14px}.pfs-home-data-status--facility>div{background:#eff9f3;color:#17653a}.pfs-home-data-status--otc{grid-template-columns:repeat(3,minmax(0,1fr))}.pfs-home-data-status--otc>div{background:#fff7ed;color:#8a4f13}
@media(max-width:900px){.pfs-home-form{grid-template-columns:1fr 1fr}.pfs-home-keyword{grid-column:1/-1}.pfs-home-form button{width:100%}.pfs-home-data-status{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.pfs-nearby-item{flex-direction:column}.pfs-home-switcher{padding:0 12px}.pfs-home-tabs{gap:5px}.pfs-home-tab{font-size:12px;min-height:44px;padding:7px 5px}.pfs-home-panel{padding:20px}.pfs-home-panel h2{font-size:28px}.pfs-home-form,.pfs-home-form--single{grid-template-columns:1fr}.pfs-home-keyword{grid-column:auto}.pfs-home-data-status,.pfs-home-data-status--otc{grid-template-columns:1fr 1fr}}

/* v1.1.0: unify TOP search panels with the existing medical-drug hero */
.pfs-home-switcher{max-width:none;width:100%;margin:0 0 14px;padding:0;box-sizing:border-box}
.pfs-home-tabs{max-width:1084px;margin:0 auto 14px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pfs-home-tab{min-height:48px;border:1px solid #cfd9e5;border-radius:12px;background:#fff;color:#163755;font-weight:800;font-size:15px;box-shadow:none}
.pfs-home-tab.is-current[data-pfs-home-tab="medical-drug"]{background:#24599d;border-color:#24599d;color:#fff}
.pfs-home-tab.is-current[data-pfs-home-tab="otc"]{background:#bd6d16;border-color:#bd6d16;color:#fff}
.pfs-home-tab.is-current[data-pfs-home-tab="facility"]{background:#158278;border-color:#158278;color:#fff}
.pfs-home-panel{width:100%;box-sizing:border-box;padding:30px;border:1px solid #cfd9e5;border-top:5px solid #164a69;border-radius:0;background:#fff;box-shadow:none}
.pfs-home-panel--otc{border-top-color:#bd6d16}.pfs-home-panel--facility{border-top-color:#158278}
.pfs-home-kicker{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.03em;color:#194f70}
.pfs-home-panel h2{font-size:clamp(30px,3vw,42px);line-height:1.2;margin:0 0 10px;color:#062f4b}
.pfs-home-lead{margin:0;color:#264c68;font-size:16px;line-height:1.6}
.pfs-home-main-search{margin-top:25px;max-width:980px}
.pfs-home-main-search>label{display:block;font-size:14px;font-weight:800;color:#172c3c}
.pfs-home-searchbox{display:grid;grid-template-columns:minmax(0,1fr) 112px;margin-top:8px}
.pfs-home-searchbox input{min-width:0;height:58px;border:2px solid #6e9bc0;border-right:0;border-radius:0;padding:0 16px;font-size:18px;background:#fff;box-sizing:border-box}
.pfs-home-searchbox button{height:58px;border:0;border-radius:0;background:#164a69;color:#fff;font-size:16px;font-weight:800;cursor:pointer}
.pfs-home-panel--otc .pfs-home-searchbox input{border-color:#cf9b61}.pfs-home-panel--otc .pfs-home-searchbox button{background:#bd6d16}
.pfs-home-panel--facility .pfs-home-searchbox input{border-color:#69aaa3}.pfs-home-panel--facility .pfs-home-searchbox button{background:#158278}
.pfs-home-help{margin:9px 0 0;color:#64778a;font-size:12px;line-height:1.6}
.pfs-home-filters{display:flex;gap:28px;align-items:end;margin-top:20px;padding-top:16px;border-top:1px solid #dce4ec}
.pfs-home-filters label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:#20364a}
.pfs-home-filters select{min-width:180px;height:38px;border:1px solid #9db5c9;background:#fff;padding:0 10px;font-size:14px}
.pfs-home-nearby-callout{display:flex;gap:12px;align-items:center;margin-top:16px;padding:10px 14px;border-left:4px solid #158278;background:#edf8f6;color:#275a55;font-size:13px}
.pfs-home-nearby-callout strong{white-space:nowrap;color:#116c63}.pfs-home-nearby-callout span{line-height:1.55}
.pfs-home-data-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:20px;border:1px solid #d5dee7}
.pfs-home-data-status>div{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-radius:0;background:#fff!important;border-right:1px solid #d5dee7;font-size:12px}
.pfs-home-data-status>div:last-child{border-right:0}.pfs-home-data-status span{color:#617386}.pfs-home-data-status strong{font-size:16px;color:#173d59}.pfs-home-data-status--facility strong{color:#147269}.pfs-home-data-status--otc{grid-template-columns:repeat(4,minmax(0,1fr))}.pfs-home-data-status--otc strong{color:#a55f14}

.pfs-global-tabs{max-width:1084px;margin:0 auto 14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pfs-global-tabs a{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #cfd9e5;border-radius:12px;background:#fff;color:#163755;text-decoration:none;font-weight:800}.pfs-global-tabs a.is-current.is-medical-drug{background:#24599d;border-color:#24599d;color:#fff}.pfs-global-tabs a.is-current.is-otc{background:#bd6d16;border-color:#bd6d16;color:#fff}.pfs-global-tabs a.is-current.is-facility{background:#158278;border-color:#158278;color:#fff}
.pfs-nearby-pitch{display:flex;gap:12px;align-items:center;margin:16px 0 0;padding:11px 14px;border-left:4px solid #158278;background:#edf8f6;color:#355f5a;font-size:13px}.pfs-nearby-pitch strong{color:#0f6d63;white-space:nowrap}.pfs-nearby-pitch span{line-height:1.55}
.pfs-nearby-basis{display:inline-block;margin-left:7px;padding:2px 6px;border-radius:999px;background:#eef2f6;color:#607083;font-size:10px;font-weight:800}

/* OTC public surface */
.pfs-hero--otc{border-top:5px solid #bd6d16;border-radius:0;box-shadow:none}.pfs-otc-form{max-width:980px;margin-top:24px}.pfs-otc-form label{display:block;font-size:14px;font-weight:800}.pfs-searchbox{display:grid;grid-template-columns:minmax(0,1fr) 112px;margin-top:8px}.pfs-searchbox input{height:56px;border:2px solid #cf9b61;border-right:0;border-radius:0;padding:0 15px;font-size:17px}.pfs-searchbox button{height:56px;border:0;border-radius:0;background:#bd6d16;color:#fff;font-weight:800;font-size:16px}.pfs-otc-status-grid{margin-top:18px}.pfs-otc-grid{display:grid;gap:14px}.pfs-otc-card{padding:20px;border:1px solid #dfe4ea;background:#fff}.pfs-otc-card h2{margin:8px 0 12px;font-size:20px;color:#172638}.pfs-otc-badges{display:flex;gap:6px;flex-wrap:wrap}.pfs-otc-badges span{padding:3px 7px;border-radius:999px;background:#fff3e6;color:#9b5711;font-size:11px;font-weight:800}.pfs-otc-ingredients{margin:0 0 10px;color:#39495d;line-height:1.6}.pfs-otc-ingredients strong{margin-right:10px}.pfs-otc-card dl{margin:0;display:grid;gap:6px}.pfs-otc-card dl>div{display:grid;grid-template-columns:84px 1fr;gap:8px}.pfs-otc-card dt{font-weight:800;color:#637083}.pfs-otc-card dd{margin:0}.pfs-commerce{margin-top:15px;padding-top:14px;border-top:1px solid #e2e7ed}.pfs-commerce-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.pfs-commerce-link{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid #d9e0e8;background:#fff;color:#19344d;text-decoration:none;font-weight:800}.pfs-commerce-link img{width:42px;height:42px;object-fit:contain}.pfs-commerce-link span{display:flex;flex-direction:column;gap:2px}.pfs-commerce-link b{font-size:12px;color:#8e5b1c}.pfs-otc-source{margin:12px 0 0;font-size:12px}.pfs-otc-source a{color:#1d5f90;text-decoration:none;font-weight:700}

@media(max-width:900px){.pfs-home-filters{flex-wrap:wrap;gap:12px}.pfs-home-nearby-callout,.pfs-nearby-pitch{align-items:flex-start;flex-direction:column;gap:3px}.pfs-home-data-status,.pfs-home-data-status--otc{grid-template-columns:1fr 1fr}.pfs-home-data-status>div:nth-child(2){border-right:0}.pfs-home-data-status>div{border-bottom:1px solid #d5dee7}.pfs-home-data-status>div:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:720px){.pfs-home-tabs,.pfs-global-tabs{gap:4px;padding:0 8px}.pfs-home-tab,.pfs-global-tabs a{font-size:11px;min-height:42px;padding:6px 3px}.pfs-home-panel{padding:20px 14px}.pfs-home-searchbox,.pfs-searchbox{grid-template-columns:minmax(0,1fr) 82px}.pfs-home-searchbox input,.pfs-searchbox input{font-size:15px;padding:0 10px}.pfs-home-searchbox button,.pfs-searchbox button{padding:0 8px}.pfs-home-filters{display:grid;grid-template-columns:1fr}.pfs-home-filters label{display:grid;grid-template-columns:86px 1fr}.pfs-home-filters select{min-width:0;width:100%}.pfs-home-data-status,.pfs-home-data-status--otc{grid-template-columns:1fr 1fr}.pfs-nearby-pitch strong,.pfs-home-nearby-callout strong{white-space:normal}.pfs-commerce-list{display:grid}.pfs-commerce-link{width:100%;box-sizing:border-box}}


/* v1.2.2 reliability guards */
.pfs-reliability-note,.pfs-distance-pending{font-size:12px;color:#7a5b00;background:#fff8dc;border:1px solid #ead99a;border-radius:8px;padding:6px 9px;display:inline-block}
.pfs-nearby-limit{display:flex;align-items:center;gap:6px;margin:8px 0}.pfs-nearby-limit span{font-size:12px;color:#666}.pfs-nearby-limit button{padding:4px 9px;border:1px solid #ccd5d9;background:#fff;border-radius:7px;cursor:pointer}.pfs-nearby-limit button:disabled{background:#e8f1ed;color:#315d4c;cursor:default}.pfs-nearby-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pfs-nearby-actions a{white-space:nowrap}


/* PFS FACILITY DETAIL v1.2.6 */
.pfs-detail-shell{
  max-width:1000px;
  margin:0 auto;
}
.pfs-detail-breadcrumb{
  display:flex;
  gap:.55rem;
  align-items:center;
  flex-wrap:wrap;
  margin:0 0 1rem;
  font-size:.92rem;
}
.pfs-detail-card{
  background:#fff;
  border:1px solid #e3e7eb;
  border-radius:18px;
  overflow:hidden;
}
.pfs-detail-hero{
  padding:1.5rem 1.5rem 1rem;
}
.pfs-detail-hero h1{
  margin:.65rem 0 0;
  line-height:1.35;
}
.pfs-detail-actions{
  display:flex;
  gap:.65rem;
  flex-wrap:wrap;
  padding:0 1.5rem 1.5rem;
}
.pfs-detail-actions a,
.pfs-detail-link,
.pfs-detail-nearby-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  border:1px solid #cfd7df;
  border-radius:10px;
  padding:.65rem .9rem;
  font-weight:700;
}
.pfs-detail-actions .pfs-detail-primary{
  border-color:currentColor;
}
.pfs-detail-section{
  border-top:1px solid #e8ecef;
  padding:1.4rem 1.5rem;
}
.pfs-detail-section h2{
  margin:0 0 1rem;
  font-size:1.25rem;
}
.pfs-detail-data{
  margin:0;
}
.pfs-detail-data>div{
  display:grid;
  grid-template-columns:8rem 1fr;
  gap:1rem;
  padding:.7rem 0;
  border-bottom:1px solid #f0f2f4;
}
.pfs-detail-data>div:last-child{
  border-bottom:0;
}
.pfs-detail-data dt{
  font-weight:700;
}
.pfs-detail-data dd{
  margin:0;
}
.pfs-detail-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
.pfs-detail-limit{
  display:flex;
  gap:.4rem;
}
.pfs-detail-limit button{
  border:1px solid #ccd5dd;
  border-radius:8px;
  padding:.45rem .7rem;
  background:#fff;
  cursor:pointer;
}
.pfs-detail-limit button:disabled{
  opacity:.55;
  cursor:default;
}
.pfs-detail-note,
.pfs-detail-source p{
  line-height:1.7;
}
.pfs-detail-nearby-list{
  display:grid;
  gap:.75rem;
}
.pfs-detail-nearby-item{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  border:1px solid #e1e6ea;
  border-radius:12px;
  padding:1rem;
}
.pfs-detail-nearby-item h3{
  margin:0 0 .35rem;
  font-size:1rem;
}
.pfs-detail-nearby-item p{
  margin:.3rem 0 0;
}
.pfs-detail-nearby-actions{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  align-items:center;
}
.pfs-detail-empty{
  padding:2rem;
  border:1px solid #e1e6ea;
  border-radius:14px;
  background:#fff;
}

@media(max-width:640px){
  .pfs-detail-data>div{
    grid-template-columns:1fr;
    gap:.25rem;
  }
  .pfs-detail-nearby-item{
    flex-direction:column;
  }
  .pfs-detail-actions a{
    width:100%;
  }
}


/* PFS STANDALONE DETAIL v1.2.7 */

body.pfs-standalone-page{
    margin:0;
    background:#f5f7fa;
    color:#172033;
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        "Noto Sans JP",
        "Hiragino Kaku Gothic ProN",
        "Yu Gothic",
        Meiryo,
        sans-serif;
}

body.pfs-standalone-page *{
    box-sizing:border-box;
}

.pfs-app-header{
    background:#fff;
    border-bottom:1px solid #dfe5eb;
    position:sticky;
    top:0;
    z-index:50;
}

.pfs-app-header-inner{
    max-width:1180px;
    margin:0 auto;
    padding:16px 24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.pfs-app-brand{
    display:flex;
    align-items:baseline;
    gap:10px;
    text-decoration:none;
    color:#172033;
    white-space:nowrap;
}

.pfs-app-brand span{
    font-size:20px;
    font-weight:800;
    letter-spacing:.03em;
    color:#315e9b;
}

.pfs-app-brand strong{
    font-size:14px;
    font-weight:700;
    color:#59687c;
}

.pfs-app-nav{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.pfs-app-nav a{
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:0 13px;
    border-radius:9px;
    text-decoration:none;
    color:#31445d;
    font-weight:700;
    font-size:14px;
}

.pfs-app-nav a:hover{
    background:#eef4fb;
    color:#174f91;
}

.pfs-app-main{
    max-width:1180px;
    margin:0 auto;
    padding:28px 24px 56px;
}

.pfs-app-main .pfs-detail-shell{
    max-width:none;
    margin:0;
}

.pfs-app-main .pfs-detail-breadcrumb{
    margin-bottom:14px;
    color:#68778b;
}

.pfs-app-main .pfs-detail-card{
    border:1px solid #dfe5eb;
    border-radius:18px;
    background:#fff;
    box-shadow:
        0 10px 30px rgba(30,50,80,.05);
}

.pfs-app-main .pfs-detail-hero{
    padding:28px 30px 18px;
    background:
        linear-gradient(
            180deg,
            #fbfdff 0%,
            #ffffff 100%
        );
}

.pfs-app-main .pfs-detail-hero h1{
    margin-top:12px;
    font-size:clamp(25px,3vw,38px);
    letter-spacing:-.02em;
}

.pfs-app-main .pfs-detail-actions{
    padding:0 30px 28px;
}

.pfs-app-main .pfs-detail-actions a{
    min-height:44px;
    padding:0 16px;
    background:#fff;
    color:#205895;
    border:1px solid #cbd8e6;
}

.pfs-app-main .pfs-detail-actions .pfs-detail-primary{
    background:#245d9b;
    border-color:#245d9b;
    color:#fff;
}

.pfs-app-main .pfs-detail-section{
    padding:28px 30px;
}

.pfs-app-main .pfs-detail-section h2{
    padding:0;
    background:none;
    color:#172033;
    border:0;
    font-size:22px;
}

.pfs-app-main .pfs-detail-data>div{
    grid-template-columns:140px 1fr;
    padding:14px 0;
}

.pfs-app-main .pfs-detail-data dt{
    color:#58677b;
}

.pfs-app-main .pfs-detail-nearby-item{
    background:#fbfcfe;
}

.pfs-app-footer{
    border-top:1px solid #dfe5eb;
    background:#fff;
}

.pfs-app-footer-inner{
    max-width:1180px;
    margin:0 auto;
    padding:24px;
    display:flex;
    gap:12px 24px;
    flex-wrap:wrap;
    align-items:center;
    color:#66758a;
    font-size:13px;
}

.pfs-app-footer-inner strong{
    color:#315e9b;
}

@media(max-width:760px){

    .pfs-app-header{
        position:static;
    }

    .pfs-app-header-inner{
        padding:14px 16px;
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }

    .pfs-app-brand{
        flex-direction:column;
        gap:2px;
    }

    .pfs-app-nav{
        width:100%;
        overflow-x:auto;
        flex-wrap:nowrap;
        padding-bottom:3px;
    }

    .pfs-app-nav a{
        flex:0 0 auto;
        background:#f3f6fa;
    }

    .pfs-app-main{
        padding:18px 12px 36px;
    }

    .pfs-app-main .pfs-detail-card{
        border-radius:14px;
    }

    .pfs-app-main .pfs-detail-hero{
        padding:22px 18px 14px;
    }

    .pfs-app-main .pfs-detail-actions{
        padding:0 18px 22px;
    }

    .pfs-app-main .pfs-detail-section{
        padding:22px 18px;
    }

    .pfs-app-main .pfs-detail-data>div{
        grid-template-columns:1fr;
    }
}

/* PHARMADI COMPACT SEARCH META v1.0 START */

/*
 * Search UI authority:
 * forms / filters / result cards / navigation are untouched.
 * Only auxiliary data-count/status blocks are compacted.
 */

/* ---------- Desktop: Facility + OTC ---------- */
@media (min-width:1000px){

  .pfs-home-panel--facility,
  .pfs-home-panel--otc,
  .pfs-hero--facility,
  .pfs-hero--otc{
    position:relative;
  }

  /*
   * Home search switcher:
   * move the former 4-column status bar to the upper-right.
   */
  .pfs-home-data-status,
  .pfs-home-data-status--facility,
  .pfs-home-data-status--otc{
    position:absolute;
    top:18px;
    right:20px;
    width:auto;
    max-width:58%;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    align-items:center;
    gap:5px 12px;
  }

  .pfs-home-data-status>div,
  .pfs-home-data-status--facility>div,
  .pfs-home-data-status--otc>div{
    display:flex;
    flex-direction:row;
    align-items:baseline;
    gap:4px;
    min-width:0;
    padding:0;
    border:0!important;
    background:transparent!important;
    font-size:10px;
    line-height:1.35;
    white-space:nowrap;
  }

  .pfs-home-data-status span{
    color:#738092;
    font-size:10px;
  }

  .pfs-home-data-status strong{
    color:#43546a;
    font-size:11px;
    font-weight:700;
  }

  .pfs-home-data-status--facility strong{
    color:#147269;
  }

  .pfs-home-data-status--otc strong{
    color:#8e5b22;
  }

  /*
   * Reserve the title area so the compact metadata cannot overlap it.
   */
  .pfs-home-panel--facility>.pfs-home-kicker,
  .pfs-home-panel--facility>h2,
  .pfs-home-panel--facility>.pfs-home-lead,
  .pfs-home-panel--otc>.pfs-home-kicker,
  .pfs-home-panel--otc>h2,
  .pfs-home-panel--otc>.pfs-home-lead{
    max-width:48%;
  }

  /*
   * Dedicated Facility search shortcode:
   * compact the green health strip in the same way.
   */
  .pfs-hero--facility .pfs-health,
  .pfs-hero--otc .pfs-health{
    position:absolute;
    top:18px;
    right:22px;
    width:auto;
    max-width:48%;
    margin:0;
    padding:3px 6px;
    border:0;
    background:transparent;
    display:flex;
    justify-content:flex-end;
    gap:5px;
    font-size:10px;
    line-height:1.35;
  }

  .pfs-hero--facility .pfs-health strong,
  .pfs-hero--facility .pfs-health span,
  .pfs-hero--otc .pfs-health strong,
  .pfs-hero--otc .pfs-health span{
    font-size:10px;
    white-space:nowrap;
  }

  .pfs-hero--facility>h1,
  .pfs-hero--facility>.pfs-kicker,
  .pfs-hero--otc>h1,
  .pfs-hero--otc>.pfs-kicker{
    max-width:56%;
  }
}


/* ---------- Tablet / Mobile ---------- */
@media (max-width:999px){

  .pfs-home-data-status,
  .pfs-home-data-status--facility,
  .pfs-home-data-status--otc{
    position:static;
    width:auto;
    max-width:none;
    margin-top:12px;
    padding:0;
    border:0;
    display:flex;
    flex-wrap:wrap;
    gap:6px 12px;
  }

  .pfs-home-data-status>div{
    display:flex;
    flex-direction:row;
    align-items:baseline;
    gap:4px;
    width:auto;
    padding:0;
    border:0!important;
    background:transparent!important;
    font-size:10px;
  }

  .pfs-home-data-status span{
    font-size:10px;
  }

  .pfs-home-data-status strong{
    font-size:11px;
  }
}

/* PHARMADI COMPACT SEARCH META v1.0 END */


/* PFS INLINE RESULTS v2 START */

/*
 * TOP検索パネルの外観は変更しない。
 * 検索結果だけ検索エリア直下へ追加。
 */

.pfs-home-inline-results{
    display:none;
}

.pfs-home-inline-results:has(.pfs-status:not(:empty)){
    display:block;
    margin-top:24px;
    padding-top:18px;
    border-top:1px solid #d7e0e8;
}

.pfs-home-panel .pfs-home-inline-results .pfs-grid,
.pfs-home-panel .pfs-home-inline-results .pfs-otc-grid{
    width:100%;
    max-width:none;
}

/* PFS INLINE RESULTS v2 END */

/* PFS RESULT READABILITY v1 START */

/*
 * 検索結果表示時に縦スクロールバーが出ても
 * 画面全体が左右に動かないように領域を予約。
 */
html{
    scrollbar-gutter:stable;
}

/*
 * インライン検索結果のレイアウトは変更せず、
 * 結果同士の境界だけ明確にする。
 */
.pfs-home-inline-results{
    overflow-anchor:none;
}

.pfs-home-inline-results .pfs-grid > *,
.pfs-home-inline-results .pfs-otc-grid > *{
    padding-top:20px;
    padding-bottom:20px;
}

.pfs-home-inline-results .pfs-grid > * + *,
.pfs-home-inline-results .pfs-otc-grid > * + *{
    border-top:1px solid #d7e0e8;
}

/* PFS RESULT READABILITY v1 END */


/* PFS SEARCH STRUCTURE v1 START */

/*
 * 医療用医薬品検索と同じ考え方:
 * 上部検索UIと下部Resultsを独立。
 */
.pfs-home-results-host{
    width:100%;
    margin:0;
    padding:0;
}

.pfs-home-results-host
.pfs-home-inline-results{
    width:100%;
}

.pfs-home-results-host
.pfs-grid,
.pfs-home-results-host
.pfs-otc-grid{
    width:100%;
    max-width:none;
}


/* 市区町村filter */
.pfs-municipality-filter{
    display:flex;
    align-items:center;
    gap:8px;
}

.pfs-municipality-filter span{
    font-weight:700;
    white-space:nowrap;
}

.pfs-municipality-filter select{
    min-width:190px;
    min-height:42px;
}


/* filter変更時も上部UIは固定 */
.pfs-home-panel{
    overflow-anchor:none;
}


/* Mobile */
@media(max-width:720px){
    .pfs-municipality-filter{
        width:100%;
        align-items:flex-start;
        flex-direction:column;
        gap:5px;
    }

    .pfs-municipality-filter select{
        width:100%;
        min-width:0;
    }
}

/* PFS SEARCH STRUCTURE v1 END */


/* PFS TAB RESULT VISIBILITY v1 START */

/*
 * 非選択タブの検索結果は必ず非表示。
 * 既存 :has() display:block より強くする。
 */
.pfs-tab-result-hidden{
    display:none !important;
}

/* PFS TAB RESULT VISIBILITY v1 END */

/* PFS OTC COMPACT ROW v1.2.20 START */

.pfs-otc-compact-table{
  width:100%;
  overflow-x:auto;
  border-top:1px solid #dfe4ea;
  border-bottom:1px solid #dfe4ea;
  background:#fff;
}

.pfs-otc-row{
  display:grid;
  grid-template-columns:
    minmax(180px,1.35fr)
    minmax(280px,2.15fr)
    78px
    68px
    78px
    155px;
  min-width:900px;
  align-items:center;
  border-bottom:1px solid #e9edf2;
}

.pfs-otc-row:last-child{
  border-bottom:0;
}

.pfs-otc-row-head{
  min-height:34px;
  background:#f7f8fa;
  font-size:12px;
  font-weight:700;
  color:#4b5563;
}

.pfs-otc-row-head > div,
.pfs-otc-cell{
  padding:8px 9px;
}

.pfs-otc-cell{
  min-width:0;
  font-size:13px;
  line-height:1.45;
}

.pfs-otc-product{
  font-weight:700;
  color:#1f2937;
}

.pfs-otc-ingredient{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#374151;
}

.pfs-otc-shop,
.pfs-otc-pmda{
  white-space:nowrap;
}

.pfs-otc-shop-link,
.pfs-otc-pmda a{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  text-decoration:none;
  font-weight:700;
}

.pfs-otc-shop-amazon{
  color:#b45309;
}

.pfs-otc-shop-rakuten{
  color:#b91c1c;
}

.pfs-otc-shop-yahoo{
  color:#7c3aed;
}

.pfs-otc-pmda a{
  color:#2563eb;
}

.pfs-otc-shop-link:hover,
.pfs-otc-pmda a:hover{
  text-decoration:underline;
}

.pfs-otc-na{
  color:#9ca3af;
}

@media (max-width: 768px){

  .pfs-otc-compact-table{
    -webkit-overflow-scrolling:touch;
  }

  .pfs-otc-row{
    grid-template-columns:
      160px
      250px
      72px
      62px
      72px
      145px;
    min-width:790px;
  }

  .pfs-otc-row-head > div,
  .pfs-otc-cell{
    padding:7px 8px;
  }

  .pfs-otc-cell{
    font-size:12px;
  }
}

/* PFS OTC COMPACT ROW v1.2.20 END */


/* OTC FINAL COMMERCE STYLE */

.pfs-otc-row{
  display:grid !important;
  grid-template-columns:
    320px
    520px
    350px
    140px !important;
  align-items:center !important;
}

.pfs-otc-product{
  white-space:nowrap !important;
}

.pfs-otc-ingredient{
  white-space:nowrap !important;
  overflow:visible !important;
}

.pfs-otc-commerce{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:6px !important;
  white-space:nowrap !important;
}

.pfs-otc-commerce .pfs-otc-shop-link{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:105px !important;
  min-width:105px !important;
  height:32px !important;
  padding:0 !important;
  flex:none !important;
  border-radius:4px !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:700 !important;
  text-decoration:none !important;
}

/* Amazon */
.pfs-otc-shop-amazon{
  background:#ff9900 !important;
}

/* 楽天市場 */
.pfs-otc-shop-rakuten{
  background:#e6323a !important;
}

/* Yahooショッピング */
.pfs-otc-shop-yahoo{
  background:#4285d4 !important;
}

/* PMDA */
.pfs-otc-pmda{
  white-space:nowrap !important;
}

.pfs-otc-pmda a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:130px !important;
  height:32px !important;
  background:#fff !important;
  border:1px solid #b8c0cc !important;
  border-radius:4px !important;
  color:#475569 !important;
  text-decoration:none !important;
}


/* OTC Display Final Adjustment */

.pfs-otc-row{
  display:grid !important;
  grid-template-columns:
    34%
    44%
    17%
    5% !important;
  align-items:center !important;
}

/* 商品名 */
.pfs-otc-product{
  white-space:nowrap !important;
}

/* 成分名 */
.pfs-otc-ingredient{
  white-space:nowrap !important;
  overflow:visible !important;
}

/* 購入先 */
.pfs-otc-commerce{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:6px !important;
  white-space:nowrap !important;
}

/* PMDA右寄せ */
.pfs-otc-pmda{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  white-space:nowrap !important;
}


/* OTC FINAL UI */

.pfs-otc-row{
  display:grid !important;
  grid-template-columns:
    minmax(300px,1fr)
    minmax(420px,1.4fr)
    420px !important;
  align-items:center !important;
  gap:12px !important;
}


.pfs-otc-product{
  white-space:nowrap !important;
}


.pfs-otc-ingredient{
  white-space:nowrap !important;
  overflow:visible !important;
}


.pfs-otc-commerce{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:6px !important;
  white-space:nowrap !important;
}


.pfs-otc-shop-link{
  display:inline-flex !important;
  width:105px !important;
  height:32px !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:4px !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:700 !important;
}


.pfs-otc-shop-amazon{
  background:#ff9900 !important;
}


.pfs-otc-shop-rakuten{
  background:#e6323a !important;
}


.pfs-otc-shop-yahoo{
  background:#4285d4 !important;
}


.pfs-otc-pmda{
  display:flex !important;
  justify-content:flex-end !important;
}


.pfs-otc-pmda a{
  width:130px !important;
  height:32px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#fff !important;
  border:1px solid #b8c0cc !important;
  color:#475569 !important;
}


/* OTC FINAL ONE LINE ROW */

.pfs-otc-row{
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  gap:12px !important;
}


/* 商品名 */

.pfs-otc-product{
  flex:0 0 28% !important;
  white-space:nowrap !important;
}


/* 成分 */

.pfs-otc-ingredient{
  flex:1 1 auto !important;
  white-space:nowrap !important;
  overflow:visible !important;
}


/* 購入 */

.pfs-otc-commerce{
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  white-space:nowrap !important;
}


/* PMDA */

.pfs-otc-pmda{
  flex:0 0 130px !important;
  display:flex !important;
  justify-content:flex-end !important;
  white-space:nowrap !important;
}


.pfs-otc-shop-link{
  width:105px !important;
  height:32px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* PFS OTC REPRESENTATIVE IMAGE v1.0 START */

.pfs-otc-product-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.pfs-otc-product-image-link{
  display:block;
  flex:0 0 auto;
  line-height:0;
  border-radius:8px;
  overflow:hidden;
}

.pfs-otc-product-image{
  display:block;
  width:56px;
  height:56px;
  object-fit:contain;
}

.pfs-otc-product-name{
  min-width:0;
}

@media (max-width:720px){
  .pfs-otc-product-wrap{
    gap:8px;
  }

  .pfs-otc-product-image{
    width:48px;
    height:48px;
  }
}

/* PFS OTC REPRESENTATIVE IMAGE v1.0 END */


/* PFS OTC COMPARE CSS v1.0 */

.pfs-otc-compare-button{
 margin:12px 0;
 padding:10px 18px;
 cursor:pointer;
}

.pfs-otc-compare-modal{
 position:fixed;
 inset:0;
 background:rgba(0,0,0,.5);
 z-index:9999;
 display:flex;
 align-items:center;
 justify-content:center;
}

.pfs-otc-compare-inner{
 background:#fff;
 padding:24px;
 max-width:900px;
 width:90%;
 max-height:80vh;
 overflow:auto;
}

.pfs-otc-compare-grid{
 display:flex;
 gap:20px;
}

.pfs-otc-compare-card{
 flex:1;
 border:1px solid #ddd;
 padding:16px;
}

.pfs-otc-compare-card img{
 max-width:120px;
}

.pfs-otc-compare-close{
 float:right;
}


/* =========================================================
   PHARMADI BRAND UNIFY v1.0
   OTC / Facility -> Medical Search Design Language
   ========================================================= */

.pfs-sitebar{
    background:var(--msjp-navy,#16324f);
    border-bottom:4px solid #78a8c3;
}

.pfs-sitebar-inner{
    max-width:1480px;
    padding:14px 24px;
}

.pfs-brand{
    color:#fff!important;
    font-size:20px;
    font-weight:800;
}

.pfs-sitebar-nav{
    gap:18px;
}

.pfs-sitebar-nav a{
    color:#fff!important;
    background:transparent;
    border-radius:0;
    padding:4px 0;
    font-size:13px;
}

.pfs-sitebar-nav a:hover{
    border-bottom:1px solid #fff;
    background:transparent;
}


.pfs-home-switcher{
    max-width:1480px;
}

.pfs-home-tabs{
    max-width:1084px;
}

.pfs-home-tab{
    background:#fff;
    border-color:#cfd9e5;
    color:#163755;
}

.pfs-home-tab.is-current[data-pfs-home-tab="medical-drug"],
.pfs-home-tab.is-current[data-pfs-home-tab="otc"],
.pfs-home-tab.is-current[data-pfs-home-tab="facility"]{
    background:#24599d;
    border-color:#24599d;
    color:#fff;
}


.pfs-home-panel{
    border-top:5px solid #164a69;
    border-radius:0;
    box-shadow:none;
}

.pfs-home-panel--otc,
.pfs-home-panel--facility{
    border-top-color:#164a69;
}


.pfs-home-kicker{
    color:#194f70;
}

.pfs-home-panel h2{
    color:#062f4b;
}

.pfs-home-lead{
    color:#264c68;
}


.pfs-home-searchbox input{
    border-color:#6e9bc0;
}

.pfs-home-searchbox button,
.pfs-home-panel--otc .pfs-home-searchbox button,
.pfs-home-panel--facility .pfs-home-searchbox button{
    background:#164a69;
}


.pfs-home-data-status>div{
    background:#fff!important;
    border-color:#d5dee7;
}

.pfs-home-data-status strong{
    color:#173d59;
}



/* ==================================================
   Facility Detail Surface v1.0
   ================================================== */

.pfs-standalone-page .msjp-front-shell{
    max-width:1480px;
    margin:0 auto;
    padding:50px 24px;
}

.pfs-standalone-page .msjp-result-card{
    background:#fff;
    border:1px solid #d9e2ec;
    border-radius:18px;
    overflow:hidden;
}

.pfs-standalone-page .msjp-result-card h1{
    margin:20px 40px 30px;
    font-size:42px;
    line-height:1.3;
    font-weight:800;
    color:#102a43;
}

.pfs-standalone-page .msjp-kicker{
    margin:40px 40px 0;
    color:#245b9b;
    font-size:16px;
    font-weight:700;
}

.pfs-standalone-page .msjp-result-card .pfs-detail-title{
    font-size:42px;
}

.pfs-standalone-page .pfs-app-main{
    max-width:1480px;
}


/* =========================================================
   PFS OTC COMPARE COMMERCE v1.1
   ========================================================= */

.pfs-otc-compare-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  margin:12px 0 16px;
  padding:9px 18px;
  border:1px solid #94a9bb;
  border-radius:8px;
  background:#eef3f7;
  color:#294b63;
  font-weight:800;
  cursor:pointer;
}

.pfs-otc-compare-button:disabled{
  opacity:.55;
  cursor:not-allowed;
}

.pfs-otc-compare-button.is-ready{
  background:#164a69;
  border-color:#164a69;
  color:#fff;
}

.pfs-otc-compare-modal{
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(9,28,42,.68);
  box-sizing:border-box;
}

.pfs-otc-compare-inner{
  width:min(1180px,96vw);
  max-height:90vh;
  overflow:auto;
  padding:28px;
  border-radius:16px;
  background:#fff;
  box-shadow:0 24px 70px rgba(0,0,0,.25);
}

.pfs-otc-compare-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:8px;
}

.pfs-otc-compare-head p{
  margin:0 0 3px;
  color:#47667d;
  font-size:12px;
  font-weight:800;
}

.pfs-otc-compare-head h2{
  margin:0;
  color:#123b58;
  font-size:28px;
  line-height:1.25;
}

.pfs-otc-compare-close{
  width:42px;
  height:42px;
  border:1px solid #cbd6df;
  border-radius:50%;
  background:#fff;
  color:#24485f;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}

.pfs-otc-compare-note{
  margin:0 0 20px;
  color:#667b8a;
  font-size:13px;
}

.pfs-otc-compare-grid{
  display:grid;
  grid-template-columns:repeat(
    var(--pfs-compare-cols,3),
    minmax(0,1fr)
  );
  gap:16px;
}

.pfs-otc-compare-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:20px;
  border:1px solid #d6e0e8;
  border-radius:12px;
  background:#fff;
}

.pfs-otc-compare-image{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:150px;
  margin-bottom:15px;
}

.pfs-otc-compare-image img{
  display:block;
  width:auto;
  max-width:150px;
  max-height:150px;
  object-fit:contain;
}

.pfs-otc-compare-image-empty{
  color:#8b9aa5;
  font-size:12px;
}

.pfs-otc-compare-card h3{
  margin:0 0 15px;
  color:#123b58;
  font-size:18px;
  line-height:1.45;
}

.pfs-otc-compare-facts{
  margin:0;
}

.pfs-otc-compare-facts>div{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:9px;
  padding:10px 0;
  border-top:1px solid #edf1f4;
}

.pfs-otc-compare-facts dt{
  color:#647987;
  font-size:12px;
  font-weight:800;
}

.pfs-otc-compare-facts dd{
  margin:0;
  color:#243b4b;
  font-size:13px;
  line-height:1.55;
  overflow-wrap:anywhere;
}

.pfs-otc-compare-commerce{
  display:grid;
  gap:8px;
  margin-top:auto;
  padding-top:18px;
}

.pfs-otc-compare-commerce>strong{
  color:#314f63;
  font-size:13px;
}

.pfs-otc-compare-buy{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:8px 12px;
  border-radius:7px;
  color:#fff!important;
  text-decoration:none!important;
  font-size:13px;
  font-weight:800;
}

.pfs-otc-compare-buy.pfs-otc-shop-yahoo{
  background:#24599d;
}

.pfs-otc-compare-buy.pfs-otc-shop-rakuten{
  background:#a93636;
}

.pfs-otc-compare-buy.pfs-otc-shop-amazon{
  background:#26343e;
}

.pfs-otc-compare-nooffer{
  padding:10px 12px;
  border:1px solid #dce4ea;
  border-radius:7px;
  color:#71828f;
  text-align:center;
  font-size:12px;
}

@media(max-width:900px){
  .pfs-otc-compare-grid{
    grid-template-columns:1fr;
  }

  .pfs-otc-compare-inner{
    padding:20px;
  }

  .pfs-otc-compare-card{
    padding:16px;
  }
}


/* =========================================================
   PFS OTC RESULT ALIGNMENT + COMPARE TOOLBAR v1.0
   ========================================================= */

.pfs-otc-compare-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 14px;
  padding:12px 16px;
  border:1px solid #d6e1e8;
  border-radius:8px;
  background:#f8fbfd;
}

.pfs-otc-compare-toolbar__text{
  color:#536b7b;
  font-size:13px;
  line-height:1.5;
}

.pfs-otc-row-head > div{
  display:flex;
  align-items:center;
  min-height:38px;
  font-weight:800;
  white-space:nowrap;
}

.pfs-otc-row-head .pfs-otc-head-compare,
.pfs-otc-row-head .pfs-otc-head-shop,
.pfs-otc-row-head .pfs-otc-head-pmda{
  justify-content:center;
  font-size:12px;
}

.pfs-otc-row input[type="checkbox"]{
  display:block;
  margin:auto;
}

@media(max-width:900px){
  .pfs-otc-compare-toolbar{
    align-items:stretch;
    flex-direction:column;
  }

  .pfs-otc-compare-toolbar .pfs-otc-compare-button{
    width:100%;
  }
}


/* =========================================================
   PFS OTC RESULT GRID AUTHORITY v2.1
   FINAL AUTHORITY
   ========================================================= */

.pfs-otc-compact-table{
  width:100%;
  overflow-x:auto;
  background:#fff;
}

.pfs-otc-row{
  display:grid !important;
  grid-template-columns:
    48px
    minmax(260px,1.25fr)
    minmax(340px,1.65fr)
    112px
    112px
    132px
    148px !important;
  gap:0 !important;
  width:100% !important;
  min-width:1152px !important;
  align-items:center !important;
  box-sizing:border-box;
}

.pfs-otc-row-head{
  min-height:40px;
  background:#f7f9fb;
}

.pfs-otc-row-head > div,
.pfs-otc-cell{
  min-width:0;
  padding:9px 8px;
  box-sizing:border-box;
}

.pfs-otc-row-head > div{
  display:flex;
  align-items:center;
  font-size:12px;
  font-weight:800;
}

.pfs-otc-head-compare,
.pfs-otc-head-shop,
.pfs-otc-head-pmda{
  justify-content:center;
}

.pfs-otc-check{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
}

.pfs-otc-check input{
  width:16px;
  height:16px;
  margin:0 !important;
  cursor:pointer;
}

.pfs-otc-product{
  white-space:normal !important;
}

.pfs-otc-product-wrap{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-width:0;
}

.pfs-otc-product-image{
  width:56px !important;
  height:56px !important;
  object-fit:contain;
  flex:none;
}

.pfs-otc-product-name{
  min-width:0;
  font-weight:700;
  overflow-wrap:anywhere;
}

.pfs-otc-ingredient{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.pfs-otc-shop{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  min-width:0 !important;
}

.pfs-otc-shop .pfs-otc-shop-link{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  width:100% !important;
  min-width:0 !important;
  height:32px !important;
  padding:0 5px !important;
  box-sizing:border-box;
  font-size:11px !important;
  white-space:nowrap !important;
}

.pfs-otc-shop .pfs-otc-na{
  width:100%;
  text-align:center;
  color:#a4adb6;
}

.pfs-otc-pmda{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
}

.pfs-otc-pmda a{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:32px !important;
  padding:0 5px !important;
  box-sizing:border-box;
  font-size:11px !important;
  white-space:nowrap !important;
}

.pfs-otc-compare-toolbar{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:16px;
  width:100%;
  margin:0 0 14px !important;
  padding:12px 16px !important;
  box-sizing:border-box;
  background:#f7fafc;
  border:1px solid #d5e0e8;
  border-radius:8px;
}

.pfs-otc-compare-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:150px;
  min-height:42px;
  margin:0 !important;
}

.pfs-otc-compare-button.is-ready{
  background:#164a69 !important;
  border-color:#164a69 !important;
  color:#fff !important;
}

@media(max-width:720px){
  .pfs-otc-compare-toolbar{
    flex-direction:column;
    align-items:stretch !important;
  }

  .pfs-otc-compare-button{
    width:100%;
  }
}


/* =========================================================
   PHARMADI OTC CANONICAL WIDE BLUE v1.0
   Authority:
   blue / wide Pharma-DI medical-search design
   ========================================================= */

/* ---------- page width ---------- */

.pfs-otc-shell{
    width:calc(100% - 112px) !important;
    max-width:1628px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box;
}

/* tabs remain centered like Pharma-DI search TOP */
.pfs-otc-shell .pfs-global-tabs{
    width:calc(100% - 48px) !important;
    max-width:1190px !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

/* ---------- blue design authority ---------- */

.pfs-otc-shell .pfs-global-tabs a.is-current.is-otc{
    background:#2d63a8 !important;
    border-color:#2d63a8 !important;
    color:#fff !important;
}

.pfs-otc-shell .pfs-hero--otc{
    border-top:5px solid #164a69 !important;
    border-radius:0 !important;
    box-shadow:none !important;
}

.pfs-otc-shell .pfs-kicker{
    color:#194f70 !important;
}

.pfs-otc-shell .pfs-hero h1{
    color:#062f4b !important;
}

.pfs-otc-shell .pfs-searchbox input,
.pfs-otc-shell .pfs-searchbox--otc input{
    border-color:#6e9bc0 !important;
}

.pfs-otc-shell .pfs-searchbox button,
.pfs-otc-shell .pfs-searchbox--otc button{
    background:#164a69 !important;
}

/* compact metadata */
.pfs-otc-shell .pfs-home-data-status--otc strong{
    color:#173d59 !important;
}

/* ---------- results ---------- */

.pfs-otc-shell .pfs-results{
    width:100% !important;
    max-width:none !important;
}

.pfs-otc-shell .pfs-otc-compact-table{
    width:100% !important;
    max-width:none !important;
}

/*
 * v2.1 7-column layout remains authority.
 * Wide template now gives it enough physical space,
 * so PMDA no longer falls outside the visible surface.
 */

/* ---------- desktop ---------- */

@media (min-width:1200px){

    .pfs-otc-shell .pfs-hero--otc{
        padding-left:34px !important;
        padding-right:34px !important;
    }

}

/* ---------- smaller screens ---------- */

@media (max-width:1100px){

    .pfs-otc-shell{
        width:calc(100% - 32px) !important;
    }

    .pfs-otc-shell .pfs-global-tabs{
        width:100% !important;
    }

}

@media (max-width:720px){

    .pfs-otc-shell{
        width:calc(100% - 24px) !important;
    }

}


/* Facility ViewModel / hours board / open-now filter */
.pfs-current-status{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;margin:0 0 1rem;padding:.7rem .9rem;border-radius:.7rem;font-weight:700}
.pfs-current-status span{font-size:.92em;font-weight:500}
.pfs-current-status.is-open{background:#eefaf1;border:1px solid #9bd5a8}
.pfs-current-status.is-closed{background:#f7f7f7;border:1px solid #ddd}
.pfs-hours-board-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pfs-hours-board{width:100%;min-width:560px;border-collapse:collapse;text-align:center}
.pfs-hours-board th,.pfs-hours-board td{padding:.7rem .55rem;border:1px solid #dfe5e8;white-space:nowrap}
.pfs-hours-board thead th,.pfs-hours-board tbody th{background:#f7f9fa;font-weight:700}
.pfs-hours-board td.is-open{font-size:1.25rem;font-weight:800}
.pfs-hours-board td.is-empty{color:#8a9399}
.pfs-hours-legend{margin:.6rem 0 1rem;font-size:.88rem;color:#5d676d}
.pfs-hours-details small{display:block;margin-top:.2rem;color:#5d676d}
.pfs-hours-break{font-weight:700}
.pfs-claim-list{margin:.2rem 0 0;padding-left:1.25rem}
.pfs-claim-list li{margin:.35rem 0}
.pfs-open-filter{display:inline-flex;align-items:center;gap:.4rem;font-size:.92rem;white-space:nowrap}
.pfs-open-filter input{width:1.05rem;height:1.05rem}
.pfs-open-badge{display:inline-block;margin-left:.45rem;padding:.16rem .48rem;border-radius:999px;font-size:.78rem;font-weight:700}
.pfs-open-badge.is-open{background:#eefaf1;border:1px solid #9bd5a8}
.pfs-nearby-meta{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}

/* Facility open-state v3 */
.pfs-current-status.is-unknown{background:#fff8e8;border:1px solid #e6c46a}
.pfs-open-badge.is-unknown{background:#fff8e8;border:1px solid #e6c46a}


/* PHARMADI FACILITY DETAIL POLISH 20260925 */

.pfs-detail-card{
    overflow:hidden;
    border:1px solid #dce6ef;
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 28px rgba(27,64,92,.07);
}

.pfs-detail-section{
    padding:24px 26px;
}

.pfs-detail-section + .pfs-detail-section{
    border-top:1px solid #e5edf4;
}

.pfs-detail-section h2{
    margin:0 0 18px;
    padding-left:11px;
    border-left:4px solid #1477c9;
    color:#173e5d;
    font-size:1.12rem;
}

.pfs-current-status{
    margin:20px 24px 4px;
    padding:12px 15px;
    border-radius:10px;
    font-weight:700;
}

.pfs-current-status span{
    margin-left:10px;
    font-weight:500;
}

.pfs-current-status.is-open{
    color:#176737;
    background:#edf9f2;
    border:1px solid #acdcbc;
}

.pfs-current-status.is-closed{
    color:#52616e;
    background:#f5f7f9;
    border:1px solid #d8e0e6;
}

.pfs-current-status.is-unknown{
    color:#725b16;
    background:#fff8e7;
    border:1px solid #ead184;
}

.pfs-hours-board-wrap{
    margin-bottom:12px;
    overflow-x:auto;
}

.pfs-hours-board{
    width:100%;
    min-width:570px;
    border-spacing:0;
    border-collapse:separate;
    border:1px solid #d4e0e9;
    border-radius:12px;
    overflow:hidden;
}

.pfs-hours-board th,
.pfs-hours-board td{
    padding:11px 9px;
    text-align:center;
    border-right:1px solid #e0e8ef;
    border-bottom:1px solid #e0e8ef;
}

.pfs-hours-board thead th{
    background:#f4f8fb;
    color:#405d73;
}

.pfs-hours-board tbody th{
    background:#fafcfd;
    color:#405d73;
}

.pfs-hours-board td.is-open{
    background:#effaf4;
    color:#07854c;
    font-size:1.18rem;
    font-weight:800;
}

.pfs-hours-board td.is-closed{
    background:#f2f4f6;
    color:#67747f;
    font-weight:800;
}

.pfs-hours-board td.is-empty{
    color:#a8b1b9;
}

.pfs-hours-board tr:last-child th,
.pfs-hours-board tr:last-child td{
    border-bottom:0;
}

.pfs-hours-board th:last-child,
.pfs-hours-board td:last-child{
    border-right:0;
}

.pfs-hours-legend{
    margin:8px 0 18px;
    color:#667b8d;
    font-size:.88rem;
}

.pfs-claim-list{
    display:grid;
    grid-template-columns:repeat(
        auto-fit,
        minmax(230px,1fr)
    );
    gap:9px 12px;
    margin:0;
    padding:0;
    list-style:none;
}

.pfs-claim-list li{
    padding:11px 13px;
    border:1px solid #dbe5ed;
    border-radius:9px;
    background:#f8fbfd;
}

.pfs-open-filter{
    padding:7px 11px;
    border:1px solid #d3dfe8;
    border-radius:8px;
    background:#f8fbfd;
    cursor:pointer;
}

.pfs-data-updated{
    margin-top:16px;
    padding-top:13px;
    border-top:1px dashed #d5dfe6;
    color:#71818d;
    font-size:.9rem;
}

@media (max-width:640px){

    .pfs-detail-section{
        padding:19px 16px;
    }

    .pfs-current-status{
        margin:14px 14px 3px;
    }

    .pfs-claim-list{
        grid-template-columns:1fr;
    }
}


/* PFS NEARBY NOW FUNCTIONAL UI */

.pfs-nearby-now{
  margin:18px 0;
  padding:18px;
  border:1px solid #cfe0ed;
  border-radius:12px;
  background:#f8fbfd;
}

.pfs-nearby-now-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.pfs-nearby-now-head strong{
  display:block;
  color:#153f60;
  font-size:1.05rem;
}

.pfs-nearby-now-head span{
  display:block;
  margin-top:4px;
  color:#63798a;
  font-size:.9rem;
}

.pfs-nearby-now-head button{
  flex:0 0 auto;
  padding:10px 14px;
  border:1px solid #0877d1;
  border-radius:8px;
  background:#0877d1;
  color:#fff;
  font-weight:700;
  cursor:pointer;
}

.pfs-nearby-now-head button:disabled{
  opacity:.55;
  cursor:wait;
}

.pfs-nearby-now-results{
  margin-top:14px;
}

.pfs-nearby-now-item{
  margin-top:10px;
  padding:14px;
  border:1px solid #dbe5ed;
  border-radius:10px;
  background:#fff;
}

.pfs-nearby-now-item.is-nearest{
  border-color:#80bfe8;
  box-shadow:0 5px 16px rgba(30,100,150,.08);
}

.pfs-nearest-label{
  display:inline-block;
  margin-bottom:8px;
  padding:4px 8px;
  border-radius:999px;
  background:#eaf6ff;
  color:#0865a7;
  font-size:.82rem;
  font-weight:700;
}

.pfs-nearby-now-main{
  display:flex;
  justify-content:space-between;
  gap:18px;
}

.pfs-nearby-now-item h3{
  margin:0 0 6px;
}

.pfs-nearby-now-distance{
  font-weight:700;
  color:#0877d1;
}

.pfs-nearby-now-actions{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:96px;
}

.pfs-nearby-now-actions a,
.pfs-detail-nearby-actions .pfs-nearby-call{
  display:inline-flex;
  justify-content:center;
  padding:8px 10px;
  border:1px solid #cbdbe7;
  border-radius:7px;
  background:#fff;
  text-decoration:none;
}

.pfs-nearby-now-actions .is-call,
.pfs-detail-nearby-actions .pfs-nearby-call{
  border-color:#11834b;
  background:#effaf4;
  color:#11683e;
  font-weight:700;
}

@media(max-width:640px){
  .pfs-nearby-now-head,
  .pfs-nearby-now-main{
    flex-direction:column;
    align-items:stretch;
  }

  .pfs-nearby-now-actions{
    flex-direction:row;
    flex-wrap:wrap;
  }
}


/* Department schedule */

.pfs-department-section h3{
    margin:1.2rem 0 .8rem;
    font-size:1rem;
}


.pfs-department-schedule{
    display:flex;
    flex-direction:column;
    gap:1rem;
}


.pfs-department-schedule-group{
    padding:1rem;
    border:1px solid #dfe5e8;
    border-radius:10px;
    background:#fff;
}


.pfs-department-schedule-name{
    display:block;
    margin-bottom:.6rem;
    font-size:1rem;
    font-weight:700;
}


.pfs-department-schedule-times{
    display:flex;
    flex-direction:column;
    gap:.25rem;
}


.pfs-department-schedule-row{
    font-size:.95rem;
    line-height:1.6;
}


@media(max-width:768px){

    .pfs-department-schedule-group{
        padding:.85rem;
    }

    .pfs-department-schedule-row{
        font-size:.9rem;
    }

}



/* Medical Information Detail UI v1.0 */

.pfs-department-schedule-group{
    overflow:hidden;
}


.pfs-department-schedule-name{
    cursor:pointer;
    list-style:none;
}


.pfs-department-schedule-name::-webkit-details-marker{
    display:none;
}


.pfs-department-schedule-name::after{
    content:"＋";
    float:right;
    font-weight:700;
    font-size:1.1rem;
}


.pfs-department-schedule-group[open]
.pfs-department-schedule-name::after{
    content:"−";
}


.pfs-department-schedule-block{
    margin-top:1rem;
    padding-top:1rem;
    border-top:1px solid #edf0f2;
}


.pfs-department-schedule-block h4{
    margin:0 0 .6rem;
    font-size:.95rem;
    font-weight:700;
}


.pfs-department-schedule-row{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.35rem 0;
    line-height:1.6;
}


@media(max-width:768px){

    .pfs-department-schedule-row{
        flex-direction:column;
        gap:.1rem;
    }

}



/* PFS_DEPARTMENT_WEEK_TABLE_CSS_V1 */
.pfs-department-table-wrap{
  margin:12px 0 18px;
}

.pfs-department-table-wrap h4{
  margin:0 0 10px;
}

.pfs-department-week-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  background:#fff;
}

.pfs-department-week-table th,
.pfs-department-week-table td{
  border:1px solid #d9e2ec;
  padding:10px 8px;
  vertical-align:top;
  font-size:14px;
  line-height:1.7;
}

.pfs-department-week-table thead th{
  background:#f5f8fc;
  text-align:center;
  font-weight:700;
}

.pfs-department-week-table tbody th{
  background:#f9fbfd;
  width:110px;
  white-space:nowrap;
  font-weight:700;
}

.pfs-department-week-table td{
  word-break:break-word;
}

@media (max-width: 900px){
  .pfs-department-schedule-group{
    overflow-x:auto;
  }
  .pfs-department-week-table{
    min-width:760px;
  }
}


/* PFS_DEPARTMENT_WEEK_TABLE_WIDE_V2 */

/* 医療機関詳細をPCでは広く使う */
@media (min-width: 1100px) {
  .pfs-detail,
  .pfs-facility-detail,
  .pfs-detail-wrap,
  .pfs-detail-container {
    max-width: 1180px !important;
    width: calc(100% - 48px) !important;
  }
}

/* 診療時間・受付時間テーブル */
.pfs-department-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.pfs-department-week-table {
  width: 100%;
  min-width: 920px;
  table-layout: auto;
}

.pfs-department-week-table th:first-child {
  width: 92px;
  min-width: 92px;
}

.pfs-department-week-table thead th:not(:first-child) {
  min-width: 96px;
}

.pfs-department-week-table tbody td {
  min-width: 96px;
  white-space: nowrap;
  text-align: left;
  line-height: 1.9;
}

/* 午前・午後は同じ曜日セル内で2行、時刻そのものは途中改行させない */
.pfs-department-week-table td br {
  display: block;
  content: "";
}

/* PCではさらに余裕を持たせる */
@media (min-width: 1100px) {
  .pfs-department-week-table {
    min-width: 980px;
  }

  .pfs-department-week-table tbody td,
  .pfs-department-week-table thead th:not(:first-child) {
    min-width: 104px;
  }
}

/* スマホは表を潰さず横スクロール */
@media (max-width: 900px) {
  .pfs-department-week-table {
    min-width: 900px;
  }

  .pfs-department-table-wrap {
    overflow-x: auto;
  }
}


/* =========================================================
   PFS_DEPARTMENT_PC_FULLWIDTH_V3
   PC: 最初から幅広 / 開閉で幅変更なし / 横スクロールなし
   ========================================================= */

@media (min-width: 1000px) {

  /*
   * Facility Detail を最初から広くする。
   * :has() により、この詳細ページだけに限定。
   */
  body:has(.pfs-department-week-table) main,
  body:has(.pfs-department-week-table) .site-main,
  body:has(.pfs-department-week-table) .content-area,
  body:has(.pfs-department-week-table) .entry-content {
    width: min(1180px, calc(100vw - 48px)) !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /*
   * 診療科カードは開閉状態に関係なく常に100%
   */
  body:has(.pfs-department-week-table) .pfs-department-table-wrap {
    width: 100% !important;
    max-width: none !important;
    overflow-x: visible !important;
  }

  /*
   * PCでは980px固定を廃止。
   * 親幅の中へ8曜日を必ず収める。
   */
  body:has(.pfs-department-week-table) .pfs-department-week-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    table-layout: fixed !important;
  }

  /*
   * 左端の「診療時間 / 受付時間」列
   */
  body:has(.pfs-department-week-table)
  .pfs-department-week-table th:first-child {
    width: 88px !important;
    min-width: 88px !important;
  }

  /*
   * 月〜祝を均等幅にする。
   * 時刻文字列の途中では改行しない。
   */
  body:has(.pfs-department-week-table)
  .pfs-department-week-table thead th:not(:first-child),
  body:has(.pfs-department-week-table)
  .pfs-department-week-table tbody td {
    min-width: 0 !important;
    width: auto !important;
    white-space: nowrap !important;
  }

  body:has(.pfs-department-week-table)
  .pfs-department-week-table th,
  body:has(.pfs-department-week-table)
  .pfs-department-week-table td {
    padding: 9px 6px !important;
    font-size: 12px !important;
    line-height: 1.75 !important;
  }

  /*
   * 午前・午後だけ意図的に改行。
   * 08:30〜12:30 自体は1行を維持。
   */
  body:has(.pfs-department-week-table)
  .pfs-department-week-table td br {
    display: block !important;
  }
}

/*
 * スマホ・タブレットのみ横スクロールを許可
 */
@media (max-width: 999px) {

  .pfs-department-table-wrap {
    width: 100%;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .pfs-department-week-table {
    min-width: 900px !important;
  }
}


/* =========================================================
   PFS_DETAIL_STABLE_WIDTH_V4
   開閉状態に依存せずPC詳細ページを常時同じ幅に固定
   ========================================================= */

@media (min-width: 1000px) {

  body.pfs-standalone-page .msjp-front-shell {
    width: min(1180px, calc(100vw - 48px)) !important;
    max-width: 1180px !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.pfs-standalone-page .pfs-detail-shell {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.pfs-standalone-page .pfs-detail-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.pfs-standalone-page .pfs-department-section,
  body.pfs-standalone-page .pfs-department-schedule,
  body.pfs-standalone-page .pfs-department-schedule-group {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: visible !important;
  }

  body.pfs-standalone-page .pfs-department-week-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  body.pfs-standalone-page
  .pfs-department-week-table
  thead th:not(:first-child),

  body.pfs-standalone-page
  .pfs-department-week-table
  tbody td {
    min-width: 0 !important;
    width: auto !important;
    white-space: nowrap !important;
  }
}

.pfs-hours-mark {
  display: block;
}

.pfs-hours-until {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.25;
  white-space: nowrap;
}


/* =========================================================
   PFS_STATUS_ADDRESS_WIDTH_V4
   - 曜日幅を固定
   - 開閉時も同じ幅
   - ステータスバナー強調
   ========================================================= */

/* 開閉前後で見た目幅を揃える */
.pfs-department-schedule-group,
.pfs-department-schedule-group[open],
.pfs-department-schedule-group details,
.pfs-department-schedule-group summary {
  width: 100%;
  box-sizing: border-box;
}

.pfs-department-schedule-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* PCでは常に全幅で表示 */
@media (min-width: 1000px) {
  .pfs-department-table-wrap,
  .pfs-department-week-table-wrap,
  .pfs-department-schedule,
  .pfs-department-schedule-block {
    width: 100%;
    max-width: 100%;
    overflow: visible !important;
  }

  .pfs-department-week-table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse;
  }

  .pfs-department-week-table th,
  .pfs-department-week-table td {
    box-sizing: border-box;
    overflow: hidden;
    vertical-align: top;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
  }

  .pfs-department-week-table th:first-child,
  .pfs-department-week-table td:first-child {
    width: 120px !important;
    min-width: 120px !important;
    max-width: 120px !important;
  }

  .pfs-department-week-table th:not(:first-child),
  .pfs-department-week-table td:not(:first-child) {
    width: calc((100% - 120px) / 8) !important;
    min-width: 0 !important;
    max-width: none !important;
    text-align: center;
  }

  /* 「17時まで」等の注記があっても列幅を広げない */
  .pfs-department-week-table small,
  .pfs-department-week-table .pfs-hour-note,
  .pfs-department-week-table .pfs-afternoon-note,
  .pfs-department-week-table .pfs-slot-note {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
    white-space: nowrap;
    text-align: center;
  }
}

/* モバイルはスクロール許容 */
@media (max-width: 999px) {
  .pfs-department-table-wrap,
  .pfs-department-week-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ステータスバナー強調（複数候補セレクタまとめて対応） */
.pfs-detail-status,
.pfs-now-status,
.pfs-open-status,
.pfs-current-status,
.pfs-status-banner,
.pfs-detail-now,
.pfs-business-status,
.pfs-facility-status {
  padding: 16px 18px !important;
  border-width: 2px !important;
  border-radius: 12px !important;
  font-weight: 800 !important;
  font-size: 22px !important;
  line-height: 1.35 !important;
  margin-bottom: 16px !important;
}

.pfs-detail-status strong,
.pfs-now-status strong,
.pfs-open-status strong,
.pfs-current-status strong,
.pfs-status-banner strong,
.pfs-detail-now strong,
.pfs-business-status strong,
.pfs-facility-status strong {
  font-size: 28px !important;
  font-weight: 900 !important;
}

.pfs-detail-status .pfs-status-time,
.pfs-now-status .pfs-status-time,
.pfs-open-status .pfs-status-time,
.pfs-current-status .pfs-status-time,
.pfs-status-banner .pfs-status-time,
.pfs-detail-now .pfs-status-time,
.pfs-business-status .pfs-status-time,
.pfs-facility-status .pfs-status-time {
  display: inline-block;
  margin-left: 12px;
  font-size: 18px !important;
  font-weight: 700 !important;
}

/* =========================================================
   PFS_DETAIL_LAYOUT_AUTHORITY_V5
   Facility Detail PC layout final authority
   ========================================================= */

/*
 * PC:
 * 診療科を開いても閉じても外枠寸法を絶対に変えない。
 */
@media (min-width:1000px){

  body.pfs-standalone-page .msjp-front-shell{
    width:calc(100vw - 64px) !important;
    max-width:1180px !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-shell,
  body.pfs-standalone-page .pfs-detail-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-section,
  body.pfs-standalone-page .pfs-department-section,
  body.pfs-standalone-page .pfs-department-schedule,
  body.pfs-standalone-page .pfs-department-schedule-group,
  body.pfs-standalone-page .pfs-department-schedule-group[open]{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /*
   * details内部のtableが親のintrinsic widthを押し広げない。
   */
  body.pfs-standalone-page .pfs-department-schedule-group{
    overflow:hidden !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
  }

  /*
   * 診療時間表：
   * 左列120px + 残りを8曜日へ完全均等配分。
   */
  body.pfs-standalone-page .pfs-department-week-table{
    display:table !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }

  body.pfs-standalone-page
  .pfs-department-week-table th:first-child,
  body.pfs-standalone-page
  .pfs-department-week-table td:first-child{
    width:120px !important;
    min-width:120px !important;
    max-width:120px !important;
  }

  body.pfs-standalone-page
  .pfs-department-week-table th:not(:first-child),
  body.pfs-standalone-page
  .pfs-department-week-table td:not(:first-child){
    width:calc((100% - 120px) / 8) !important;
    min-width:0 !important;
    max-width:none !important;
    box-sizing:border-box !important;
  }

  /*
   * 薬局営業時間表も完全均等幅。
   */
  body.pfs-standalone-page .pfs-hours-board{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }

  body.pfs-standalone-page .pfs-hours-board th:first-child,
  body.pfs-standalone-page .pfs-hours-board td:first-child{
    width:160px !important;
  }

  body.pfs-standalone-page
  .pfs-hours-board th:not(:first-child),
  body.pfs-standalone-page
  .pfs-hours-board td:not(:first-child){
    width:calc((100% - 160px) / 8) !important;
    min-width:0 !important;
    max-width:none !important;
  }

  body.pfs-standalone-page .pfs-hours-until{
    display:block !important;
    width:100% !important;
    margin-top:3px !important;
    font-size:11px !important;
    line-height:1.15 !important;
    font-weight:800 !important;
    white-space:nowrap !important;
    text-align:center !important;
  }
}

/*
 * スマホだけ横スクロール可。
 */
@media (max-width:999px){

  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}

/* =========================================================
   現在の営業・診療ステータス
   ========================================================= */

body.pfs-standalone-page .pfs-current-status{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  width:100% !important;
  box-sizing:border-box !important;

  margin:0 0 8px !important;
  padding:17px 20px !important;

  border:2px solid !important;
  border-radius:12px !important;

  font-size:16px !important;
  line-height:1.45 !important;
  font-weight:700 !important;
}

/* 営業中・診療時間内 */
body.pfs-standalone-page .pfs-current-status.is-open{
  background:#eaf8ef !important;
  border-color:#159447 !important;
  color:#087331 !important;
}

/* 営業時間外・診療時間外 */
body.pfs-standalone-page .pfs-current-status.is-closed{
  background:#fff4ee !important;
  border-color:#d66a36 !important;
  color:#a23f17 !important;
}

/* 判定不能 */
body.pfs-standalone-page .pfs-current-status.is-unknown{
  background:#f5f7f9 !important;
  border-color:#8b98a8 !important;
  color:#455466 !important;
}

/*
 * ステータス本文を強調。
 */
body.pfs-standalone-page .pfs-current-status strong{
  font-size:20px !important;
  line-height:1.25 !important;
  font-weight:900 !important;
}

/*
 * ステータス先頭マーク
 */
body.pfs-standalone-page .pfs-current-status.is-open::before{
  content:"●";
  flex:0 0 auto;
  font-size:18px;
}

body.pfs-standalone-page .pfs-current-status.is-closed::before{
  content:"●";
  flex:0 0 auto;
  font-size:18px;
}

/*
 * 以前入れた :has() ベースの幅指定は
 * 最終Authorityより効かせない。
 */
@media (min-width:1000px){

  body.pfs-standalone-page:has(.pfs-department-week-table) main,
  body.pfs-standalone-page:has(.pfs-department-week-table) .site-main,
  body.pfs-standalone-page:has(.pfs-department-week-table) .content-area,
  body.pfs-standalone-page:has(.pfs-department-week-table) .entry-content{
    width:auto !important;
    max-width:none !important;
  }
}

/* PFS_DETAIL_LAYOUT_AUTHORITY_V5 */

/* =========================================================
   PFS_RESPONSIVE_LAYOUT_AUTHORITY_V6
   PC: max 1040px
   Tablet/mobile: responsive
   details open/closed: same width
   ========================================================= */

/* ---------- Desktop ---------- */

@media (min-width:1000px){

  body.pfs-standalone-page .msjp-front-shell{
    width:calc(100% - 48px) !important;
    max-width:1040px !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-shell,
  body.pfs-standalone-page .pfs-detail-card,
  body.pfs-standalone-page .pfs-detail-section,
  body.pfs-standalone-page .pfs-department-section,
  body.pfs-standalone-page .pfs-department-schedule,
  body.pfs-standalone-page .pfs-department-schedule-group,
  body.pfs-standalone-page .pfs-department-schedule-group[open]{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /*
   * PCでは横スクロールなし。
   */
  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow-x:visible !important;
  }

  body.pfs-standalone-page .pfs-department-week-table,
  body.pfs-standalone-page .pfs-hours-board{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }

  /*
   * 診療科表：
   * 月〜祝は完全均等幅。
   */
  body.pfs-standalone-page
  .pfs-department-week-table th:first-child,
  body.pfs-standalone-page
  .pfs-department-week-table td:first-child{
    width:105px !important;
  }

  body.pfs-standalone-page
  .pfs-department-week-table th:not(:first-child),
  body.pfs-standalone-page
  .pfs-department-week-table td:not(:first-child){
    width:calc((100% - 105px) / 8) !important;
    min-width:0 !important;
    max-width:none !important;
  }

  /*
   * 薬局営業時間表：
   * 月〜祝も完全均等幅。
   */
  body.pfs-standalone-page
  .pfs-hours-board th:first-child,
  body.pfs-standalone-page
  .pfs-hours-board td:first-child{
    width:130px !important;
  }

  body.pfs-standalone-page
  .pfs-hours-board th:not(:first-child),
  body.pfs-standalone-page
  .pfs-hours-board td:not(:first-child){
    width:calc((100% - 130px) / 8) !important;
    min-width:0 !important;
    max-width:none !important;
  }
}

/* ---------- Tablet ---------- */

@media (min-width:769px) and (max-width:999px){

  body.pfs-standalone-page .msjp-front-shell{
    width:calc(100% - 32px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  body.pfs-standalone-page .pfs-detail-shell,
  body.pfs-standalone-page .pfs-detail-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }

  body.pfs-standalone-page .pfs-department-week-table{
    min-width:760px !important;
  }

  body.pfs-standalone-page .pfs-hours-board{
    min-width:720px !important;
  }
}

/* ---------- Smartphone ---------- */

@media (max-width:768px){

  body.pfs-standalone-page{
    overflow-x:hidden;
  }

  body.pfs-standalone-page .msjp-front-shell{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    padding-left:10px !important;
    padding-right:10px !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-shell,
  body.pfs-standalone-page .pfs-detail-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-card{
    border-radius:10px !important;
  }

  body.pfs-standalone-page .pfs-detail-section{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  /*
   * タイトル
   */
  body.pfs-standalone-page .pfs-detail-name{
    font-size:clamp(24px,7vw,34px) !important;
    line-height:1.3 !important;
    word-break:break-word;
  }

  /*
   * 電話・Google Map・戻る
   */
  body.pfs-standalone-page .pfs-detail-actions{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
  }

  body.pfs-standalone-page .pfs-detail-actions a{
    max-width:100%;
    box-sizing:border-box;
  }

  /*
   * 施設情報
   */
  body.pfs-standalone-page .pfs-detail-data > div{
    grid-template-columns:90px minmax(0,1fr) !important;
    gap:10px !important;
  }

  /*
   * 診療時間・営業時間表は、
   * スマホでは文字を潰さず横スクロール。
   */
  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-inline:contain;
  }

  body.pfs-standalone-page .pfs-department-week-table{
    width:760px !important;
    min-width:760px !important;
  }

  body.pfs-standalone-page .pfs-hours-board{
    width:700px !important;
    min-width:700px !important;
  }

  body.pfs-standalone-page
  .pfs-department-week-table th,
  body.pfs-standalone-page
  .pfs-department-week-table td,
  body.pfs-standalone-page
  .pfs-hours-board th,
  body.pfs-standalone-page
  .pfs-hours-board td{
    padding:8px 6px !important;
  }

  /*
   * ステータスバナー
   */
  body.pfs-standalone-page .pfs-current-status{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:5px 10px !important;

    padding:13px 14px !important;
    margin-bottom:10px !important;

    font-size:15px !important;
    line-height:1.45 !important;
  }

  body.pfs-standalone-page .pfs-current-status strong{
    font-size:17px !important;
  }

  body.pfs-standalone-page .pfs-current-status span{
    width:100%;
    margin-left:0 !important;
  }

  /*
   * 診療科アコーディオン
   */
  body.pfs-standalone-page .pfs-department-schedule-group,
  body.pfs-standalone-page .pfs-department-schedule-group[open]{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
}

/* PFS_RESPONSIVE_LAYOUT_AUTHORITY_V6 */

/* =========================================================
   PFS_DETAIL_WIDTH_AUTHORITY_V7
   最終幅Authority
   ========================================================= */

/* PC */
@media (min-width:1000px){

  body.pfs-standalone-page .msjp-front-shell{
    width:calc(100vw - 64px) !important;
    max-width:1040px !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-shell{
    width:100% !important;
    max-width:1040px !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /*
   * 診療科開閉で親幅を押し広げない
   */
  body.pfs-standalone-page .pfs-department-section,
  body.pfs-standalone-page .pfs-department-schedule,
  body.pfs-standalone-page .pfs-department-schedule-group,
  body.pfs-standalone-page .pfs-department-schedule-group[open]{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-department-schedule-group{
    overflow:hidden !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:visible !important;
  }

  body.pfs-standalone-page .pfs-department-week-table,
  body.pfs-standalone-page .pfs-hours-board{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }
}

/* タブレット */
@media (min-width:769px) and (max-width:999px){

  body.pfs-standalone-page .msjp-front-shell,
  body.pfs-standalone-page .pfs-detail-shell{
    width:calc(100% - 24px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}

/* スマホ */
@media (max-width:768px){

  body.pfs-standalone-page .msjp-front-shell,
  body.pfs-standalone-page .pfs-detail-shell{
    width:calc(100% - 16px) !important;
    max-width:none !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}

/* PFS_DETAIL_WIDTH_AUTHORITY_V7 */

/* =========================================================
   PFS_DETAIL_WIDTH_AUTHORITY_V7
   最終幅Authority
   ========================================================= */

/* PC */
@media (min-width:1000px){

  body.pfs-standalone-page .msjp-front-shell{
    width:calc(100vw - 64px) !important;
    max-width:1040px !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-shell{
    width:100% !important;
    max-width:1040px !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  /*
   * 診療科開閉で親幅を押し広げない
   */
  body.pfs-standalone-page .pfs-department-section,
  body.pfs-standalone-page .pfs-department-schedule,
  body.pfs-standalone-page .pfs-department-schedule-group,
  body.pfs-standalone-page .pfs-department-schedule-group[open]{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-department-schedule-group{
    overflow:hidden !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:visible !important;
  }

  body.pfs-standalone-page .pfs-department-week-table,
  body.pfs-standalone-page .pfs-hours-board{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }
}

/* タブレット */
@media (min-width:769px) and (max-width:999px){

  body.pfs-standalone-page .msjp-front-shell,
  body.pfs-standalone-page .pfs-detail-shell{
    width:calc(100% - 24px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}

/* スマホ */
@media (max-width:768px){

  body.pfs-standalone-page .msjp-front-shell,
  body.pfs-standalone-page .pfs-detail-shell{
    width:calc(100% - 16px) !important;
    max-width:none !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page .pfs-detail-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  body.pfs-standalone-page .pfs-department-table-wrap,
  body.pfs-standalone-page .pfs-hours-board-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}

/* PFS_DETAIL_WIDTH_AUTHORITY_V7 */

/* =========================================================
   PFS_OUTER_DETAIL_WIDTH_AUTHORITY_V8
   outer card と inner card を完全分離
   ========================================================= */

/* ---------- PC ---------- */
@media (min-width:1000px){

  /*
   * ページ背景側は全幅のままでOK。
   */
  body.pfs-standalone-page
  main#primary.msjp-front-shell{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  /*
   * 本当に幅を制限したいのは
   * 一番外側の白いFacilityカード。
   */
  body.pfs-standalone-page
  main#primary.msjp-front-shell
  > section.msjp-result-card.pfs-detail-card{
    width:calc(100% - 48px) !important;
    max-width:1040px !important;
    min-width:0 !important;

    margin-left:auto !important;
    margin-right:auto !important;

    box-sizing:border-box !important;
  }

  /*
   * shortcode側は外枠いっぱいを使う。
   * ここを別のmax-widthにしない。
   */
  body.pfs-standalone-page
  section.msjp-result-card.pfs-detail-card
  .pfs-shell.pfs-detail-shell{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
  }

  /*
   * 内側articleだけ100%。
   * 外側sectionとは明確に分離。
   */
  body.pfs-standalone-page
  section.msjp-result-card.pfs-detail-card
  .pfs-detail-shell
  > article.pfs-detail-card{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  /*
   * タイトル部分も同じ1040px枠の中。
   */
  body.pfs-standalone-page
  section.msjp-result-card.pfs-detail-card
  > .pfs-detail-header{
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box !important;
  }

  /*
   * 診療科を開いても外幅は変えない。
   */
  body.pfs-standalone-page
  .pfs-department-schedule-group,
  body.pfs-standalone-page
  .pfs-department-schedule-group[open]{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
}

/* ---------- Tablet ---------- */
@media (min-width:769px) and (max-width:999px){

  body.pfs-standalone-page
  main#primary.msjp-front-shell
  > section.msjp-result-card.pfs-detail-card{
    width:calc(100% - 24px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  body.pfs-standalone-page
  .pfs-shell.pfs-detail-shell{
    width:100% !important;
    max-width:none !important;
  }
}

/* ---------- Smartphone ---------- */
@media (max-width:768px){

  body.pfs-standalone-page
  main#primary.msjp-front-shell{
    padding-left:6px !important;
    padding-right:6px !important;
  }

  body.pfs-standalone-page
  main#primary.msjp-front-shell
  > section.msjp-result-card.pfs-detail-card{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
    box-sizing:border-box !important;
  }

  body.pfs-standalone-page
  .pfs-shell.pfs-detail-shell,
  body.pfs-standalone-page
  .pfs-detail-shell
  > article.pfs-detail-card{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 !important;
  }

  body.pfs-standalone-page
  .pfs-department-table-wrap,
  body.pfs-standalone-page
  .pfs-hours-board-wrap{
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}

/* PFS_OUTER_DETAIL_WIDTH_AUTHORITY_V8 */

/* =========================================================
   PFS_OFFICIAL_PUBLIC_INFO_STYLE_V1
   ========================================================= */

.pfs-detail-source .pfs-official-data{
  margin-top:12px;
}

.pfs-detail-source .pfs-official-source-link{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:7px 12px;
  border:1px solid #c9d7e6;
  border-radius:8px;
  background:#fff;
  color:#075fc7;
  font-weight:700;
  text-decoration:none;
}

.pfs-detail-source .pfs-official-source-link:hover{
  background:#f4f8fd;
}

.pfs-detail-source .pfs-official-note{
  margin-top:12px;
  color:#64748b;
  font-size:12px;
  line-height:1.7;
}

@media (max-width:768px){

  .pfs-detail-source .pfs-official-data > div{
    grid-template-columns:105px minmax(0,1fr) !important;
  }

  .pfs-detail-source .pfs-official-source-link{
    max-width:100%;
    white-space:normal;
  }
}

/* PFS_OFFICIAL_PUBLIC_INFO_STYLE_V1 */

/* PFS FILTER ROW FIX START */
@media (min-width:721px){
  .pfs-home-panel--facility .pfs-home-filters{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:28px !important;
  }

  .pfs-home-panel--facility .pfs-home-filters > label,
  .pfs-home-panel--facility .pfs-municipality-filter{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:8px !important;
    width:auto !important;
    min-width:0 !important;
    white-space:nowrap !important;
  }

  .pfs-home-panel--facility .pfs-home-filters > label > span,
  .pfs-home-panel--facility .pfs-municipality-filter > span{
    display:inline-block !important;
    width:auto !important;
    min-width:max-content !important;
    white-space:nowrap !important;
    writing-mode:horizontal-tb !important;
  }

  .pfs-home-panel--facility .pfs-home-filters select{
    width:auto !important;
    min-width:160px !important;
    flex:none !important;
  }

  .pfs-home-panel--facility .pfs-municipality-filter select{
    width:260px !important;
    min-width:260px !important;
  }
}

@media (max-width:720px){
  .pfs-home-panel--facility .pfs-home-filters{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  .pfs-home-panel--facility .pfs-home-filters > label,
  .pfs-home-panel--facility .pfs-municipality-filter{
    display:grid !important;
    grid-template-columns:86px minmax(0,1fr) !important;
    align-items:center !important;
  }

  .pfs-home-panel--facility .pfs-home-filters select,
  .pfs-home-panel--facility .pfs-municipality-filter select{
    width:100% !important;
    min-width:0 !important;
  }
}
/* PFS FILTER ROW FIX END */

/* PHARMADI_FACILITY_SEARCH_WIDTH_V1 */
@media (min-width: 769px) {
  .pfs-form {
    grid-template-columns:
      180px
      250px
      minmax(300px, 1fr);
  }

  .pfs-form label:has([data-pfs-prefecture]),
  .pfs-form label:has([data-pfs-municipality]),
  .pfs-form .pfs-keyword-label {
    min-width: 0;
    width: 100%;
  }

  .pfs-form [data-pfs-prefecture],
  .pfs-form [data-pfs-municipality],
  .pfs-form [data-pfs-q] {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }
}

@media (max-width: 768px) {
  .pfs-form {
    grid-template-columns: 1fr;
  }
}


/* PHARMADI_DEPARTMENT_GROUP_UI_V1 */
.pfs-department-groups {
  grid-column: 1 / -1;
  margin: 4px 0 2px;
  padding: 12px 14px;
  border: 1px solid #d6e0eb;
  border-radius: 10px;
  background: #f8fafc;
  min-width: 0;
}

.pfs-department-groups legend {
  padding: 0 6px;
  font-weight: 700;
  font-size: 14px;
}

.pfs-department-groups legend small {
  font-weight: 400;
  font-size: 12px;
  color: #64748b;
}

.pfs-department-group-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 18px;
}

.pfs-department-group-grid label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 7px;
  margin: 0;
  min-width: 0;
  cursor: pointer;
  font-size: 13px;
  white-space: nowrap;
}

.pfs-department-group-grid input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0;
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .pfs-department-group-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
  }

  .pfs-department-group-grid label {
    white-space: normal;
  }
}

@media (max-width: 460px) {
  .pfs-department-group-grid {
    grid-template-columns: 1fr;
  }
}


/* PHARMADI_FACILITY_CAPABILITY_MATRIX_V1 */

/* 4施設タブは常に横1列 */
.pfs-kind-tabs {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 6px !important;
  width: 100% !important;
}

.pfs-kind-tabs > a {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

/* "すべて"専用：薬局選択枠 */
.pfs-pharmacy-choice {
  grid-column: 1 / -1;
  margin: 4px 0 2px;
  padding: 12px 14px;
  border: 1px solid #d6e0eb;
  border-radius: 10px;
  background: #f8fafc;
  min-width: 0;
}

.pfs-pharmacy-choice legend {
  padding: 0 6px;
  font-size: 14px;
  font-weight: 700;
}

.pfs-pharmacy-choice-label {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 8px !important;
  width: auto !important;
  margin: 0 !important;
  cursor: pointer;
}

.pfs-pharmacy-choice-label input[type="checkbox"] {
  width: 17px !important;
  height: 17px !important;
  margin: 0 !important;
  flex: 0 0 auto;
}

.pfs-pharmacy-choice p {
  margin: 7px 0 0;
  font-size: 12px;
  color: #64748b;
}

@media (max-width: 600px) {
  .pfs-kind-tabs {
    gap: 4px !important;
  }

  .pfs-kind-tabs > a {
    padding-left: 5px !important;
    padding-right: 5px !important;
    font-size: 12px !important;
  }
}


/* PHARMADI_SCHEDULE_FILTER_STYLE_V1 */

.pfs-department-groups[hidden] {
  display: none !important;
}

.pfs-schedule-filter {
  grid-column: 1 / -1;
  margin: 4px 0 2px;
  padding: 12px 14px;
  border: 1px solid #d6e0eb;
  border-radius: 10px;
  background: #f8fafc;
}

.pfs-schedule-filter legend {
  padding: 0 6px;
  font-weight: 700;
  font-size: 14px;
}

.pfs-schedule-filter-grid {
  display: grid;
  grid-template-columns:
    minmax(180px,260px)
    minmax(180px,260px);
  gap: 14px;
}

.pfs-schedule-filter-grid label {
  min-width: 0;
  margin: 0;
}

.pfs-schedule-filter-grid select,
.pfs-schedule-filter-grid input {
  width: 100%;
  box-sizing: border-box;
}

.pfs-schedule-filter p {
  margin: 8px 0 0;
  font-size: 12px;
  color: #64748b;
}

@media (max-width: 640px) {
  .pfs-schedule-filter-grid {
    grid-template-columns: 1fr;
  }
}


/* PHARMADI_HOME_DETAIL_SEARCH_LINK_STYLE_V2 */
.pfs-home-panel--facility .pfs-home-detail-search-row{
    display:flex;
    justify-content:flex-end;
    margin-top:16px;
}

.pfs-home-panel--facility .pfs-home-detail-search-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:42px;
    padding:0 18px;
    border:1px solid #2b5fa3;
    border-radius:6px;
    background:#fff;
    color:#174f8f;
    font-size:14px;
    font-weight:800;
    line-height:1.4;
    text-decoration:none;
    box-sizing:border-box;
}

.pfs-home-panel--facility .pfs-home-detail-search-link:hover{
    background:#f1f6fc;
    text-decoration:none;
}

.pfs-home-panel--facility .pfs-home-detail-search-arrow{
    font-size:18px;
    line-height:1;
}

.pfs-home-panel--facility .pfs-home-detail-search-link:focus-visible{
    outline:3px solid rgba(43,95,163,.22);
    outline-offset:2px;
}

@media (max-width:767px){
    .pfs-home-panel--facility .pfs-home-detail-search-row{
        display:block;
    }

    .pfs-home-panel--facility .pfs-home-detail-search-link{
        width:100%;
        min-height:46px;
    }
}


/* PHARMADI_FACILITY_NETWORK_STYLE_V1 */
.pfs-facility-network-links{
    display:grid;
    grid-template-columns:
        repeat(2,minmax(0,1fr));
    gap:10px;
}

.pfs-facility-network-links a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:48px;
    padding:10px 14px;
    border:1px solid #d6e0eb;
    border-radius:8px;
    background:#fff;
    color:#174f8f;
    font-weight:700;
    text-decoration:none;
    box-sizing:border-box;
}

.pfs-facility-network-links a:hover{
    background:#f3f7fc;
    text-decoration:none;
}

.pfs-facility-network-links a strong{
    flex:0 0 auto;
    color:#34495e;
    font-size:13px;
}

.pfs-facility-network-links a.is-search{
    border-color:#174f8f;
    background:#174f8f;
    color:#fff;
}

.pfs-facility-network-links a.is-search strong{
    color:#fff;
    font-size:18px;
}

.pfs-facility-area-municipalities{
    margin:24px 0;
}

.pfs-facility-area-municipalities h2{
    margin:0 0 12px;
}

@media(max-width:700px){
    .pfs-facility-network-links{
        grid-template-columns:1fr;
    }
}

/* PHARMADI_OTC_MOBILE_R121R2_BEGIN */
/* R1.2.1 R2 - OTC search result rows only; 7 original DOM cells remain intact. */
@media screen and (max-width: 767px) {
  /* Seven original cells: compare, product, ingredients, three shops, PMDA.
     Do not rely on a non-existent .pfs-otc-commerce parent. */
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    gap: 0 !important;
    box-sizing: border-box !important;
  }
  /* Preserve each existing row field and its mobile label treatment. */
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-cell:not(.pfs-otc-shop) {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  /* The three shop cells themselves occupy one shared grid row. */
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-shop {
    display: flex !important;
    grid-column: auto !important;
    grid-row: auto !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: 100% !important;
    padding: 5px 3px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    white-space: normal !important;
  }
  /* Labels on 3 individual shop cells would take up button space. */
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-shop::before,
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-shop::after {
    content: none !important;
    display: none !important;
  }
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-shop > .pfs-otc-shop-link,
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-shop > .pfs-otc-na {
    display: flex !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 38px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 5px 2px !important;
    border-radius: 5px !important;
    font-size: clamp(10px, 2.7vw, 12px) !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
  /* Ingredient field: never force a single chip to fill the whole row. */
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-ingredient {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: left !important;
  }
  /* Compatible with existing pill/span/link DOM enhancers, no JS/data edits. */
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-ingredient :is(span,a,.pfs-otc-chip,.pfs-otc-ingredient-chip,.pfs-otc-pill) {
    display: inline-flex !important;
    vertical-align: middle !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex: 0 1 auto !important;
    width: fit-content !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 6px 6px 0 !important;
    padding: 4px 9px !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    text-align: left !important;
  }
  [data-pfs-otc-root] .pfs-otc-results .pfs-otc-row:not(.pfs-otc-row-head) > .pfs-otc-ingredient :is(.pfs-otc-chips,.pfs-otc-ingredient-list,.pfs-otc-ingredient-chips) {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    gap: 6px !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}
/* PHARMADI_OTC_MOBILE_R121R2_END */
