/* ページ内の他コンテンツに影響しない、検索ウィジェット専用スタイル。 */
/* 共通のoverflow:hiddenによるスクロール領域化を避け、フォーム内のstickyを機能させる。 */
.o-scroll.pc-compare-page { overflow: clip; }
.pc-compare .c-pagejumper { bottom: var(--pc-bottom-controls-height, 40px); }
.pc-search {
    --pc-accent: #e74227;
    --pc-border: #f1b5ac;
    --pc-soft: #fff5f1;
    color: #475569;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    line-height: 1.7;
    background: #fff7e8;
    border-radius: 24px;
    padding: 40px;
    scroll-margin-top: 165px;
}
.pc-search *, .pc-search *::before, .pc-search *::after { box-sizing: border-box; }
.pc-search [hidden] { display: none !important; }
section.pc-search p { margin: 0; padding: 0; color: inherit; font-family: inherit; letter-spacing: normal; line-height: 1.7; text-align: inherit; }
.pc-search h2, .pc-search h3 { margin: 0; }
.pc-search button, .pc-search input { font: inherit; }
.pc-search button { cursor: pointer; }
.pc-search button:disabled { cursor: default; opacity: .45; }
.pc-search :focus-visible { outline: 3px solid #80512c; outline-offset: 4px; }
.pc-search__intro { text-align: center; margin-bottom: 28px; }
.pc-search .pc-search__intro h2 { color: #e74227; font-size: 28px; font-weight: 700; line-height: 1.6; margin: 8px 0 16px; }
.pc-search__form { background: #fff; border-radius: 16px; padding: 28px; }
.pc-search__result-bar { position: sticky; bottom: var(--pc-bar-bottom, 16px); width: 100%; max-width: 520px; margin: 24px auto 0; z-index: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 18px; border: 2px solid var(--pc-accent); border-radius: 12px; background: #ffeed8; box-shadow: 0 4px 14px #e7422712; }
.pc-search .pc-search__result-count { color: #e74227; font-size: 14px; font-weight: 700; white-space: nowrap; }
.pc-search__result-count strong { font-size: 26px; line-height: 1.3; }
.pc-search__result-bar button { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; padding: 8px 18px; border: 1px solid var(--pc-accent); border-radius: 8px; background: var(--pc-accent); color: #fff; font-size: 14px; font-weight: 700; white-space: nowrap; }
.pc-search__result-bar button:hover { background: #e74227; border-color: #e74227; }
.pc-search fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
.pc-search fieldset + fieldset { margin-top: 28px; }
.pc-search legend { color: #e74227; font-size: 18px; font-weight: 700; margin-bottom: 12px; }
.pc-search__step { display: inline-block; color: var(--pc-accent); font-size: 13px; margin-right: 12px; }
.pc-search__choices { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pc-search__choices label { position: relative; cursor: pointer; }
.pc-search__choices input { position: absolute; top: 50%; left: 14px; width: 17px; height: 17px; margin: 0; transform: translateY(-50%); accent-color: var(--pc-accent); }
.pc-search__choices span { display: flex; align-items: center; justify-content: center; min-height: 54px; padding: 10px 10px 10px 34px; border: 1px solid #d5d8dd; border-radius: 9px; font-size: 15px; font-weight: 700; }
.pc-search__choices input:checked + span { border-color: var(--pc-accent); background: var(--pc-soft); color: var(--pc-accent); box-shadow: inset 0 0 0 1px var(--pc-accent); }
.pc-search__choices label:hover span { border-color: var(--pc-accent); }
.pc-search__choices--price { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pc-search__choices--price span { display: block; align-content: center; text-align: center; }
.pc-search__areas { border: 1px solid #d5d8dd; border-radius: 9px; }
.pc-search__areas summary { cursor: pointer; padding: 14px 16px; color: #e74227; font-weight: 700; }
.pc-search__areas summary span { display: inline-block; margin-left: 12px; font-size: 12px; font-weight: 400; color: #475569; }
.pc-search__areas[open] summary { border-bottom: 1px solid #d5d8dd; }
.pc-search__area-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 16px; }
.pc-search__area-list label { position: relative; font-size: 14px; cursor: pointer; }
.pc-search__area-list input { position: absolute; top: 50%; left: 12px; transform: translateY(-50%); width: 18px; height: 18px; margin: 0; accent-color: var(--pc-accent); }
.pc-search__area-list span { display: flex; align-items: center; min-height: 48px; height: 100%; padding: 10px 10px 10px 38px; border: 1px solid #d5d8dd; border-radius: 8px; background: #fff; }
.pc-search__area-list input:checked + span { background: var(--pc-soft); border-color: var(--pc-accent); color: var(--pc-accent); box-shadow: inset 0 0 0 1px var(--pc-accent); }
.pc-search__area-list label:hover span { border-color: var(--pc-accent); }
.pc-search .pc-search__hint { font-size: 13px; margin: 0 0 12px; }
.pc-search__clear { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 14px; font-size: 13px; margin-top: 12px; }
.pc-search__clear button { border: 0; padding: 0; background: none; color: var(--pc-accent); text-decoration: underline; }
.pc-search__area-actions { padding: 0 16px; }
.pc-search .pc-search__status { font-size: 16px; font-weight: 700; margin: 28px 0 16px; scroll-margin-top: calc(var(--pc-header-offset, 156px) + 16px); }
.pc-search__cards { display: grid; gap: 16px; }
.pc-clinic { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 24px; align-items: center; border: 1px solid var(--pc-border); border-radius: 15px; background: #fff; padding: 24px; box-shadow: 0 3px 10px #e7422706; }
.pc-clinic--linked { position: relative; }
.pc-search .pc-clinic__reservation { color: inherit; text-decoration: none; }
.pc-clinic__reservation::after { content: ""; position: absolute; inset: 0; border-radius: 15px; }
.pc-clinic__reservation:hover::after { box-shadow: inset 0 0 0 1px var(--pc-accent); }
.pc-clinic__reservation:focus-visible::after { outline: 3px solid #80512c; outline-offset: 4px; }
.pc-clinic--linked .pc-clinic__contact a { position: relative; z-index: 1; }
.pc-clinic__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.pc-clinic__tags span { background: #ffded7; color: #a43e35; font-size: 12px; line-height: 1.5; font-weight: 700; border-radius: 4px; padding: 3px 8px; }
.pc-clinic__tags span + span { background: #fff0cf; color: #90602a; }
.pc-search .pc-clinic h3 { color: #e74227; font-size: 19px; line-height: 1.6; font-weight: 700; margin-bottom: 10px; overflow-wrap: anywhere; }
.pc-search .pc-clinic__contact { display: flex; gap: 7px; align-items: baseline; font-size: 13px; margin-top: 4px; }
.pc-search .pc-clinic__contact > img { width: 14px; height: 14px; flex-shrink: 0; align-self: flex-start; margin-top: 4px; }
.pc-clinic__contact a { color: inherit; text-decoration: none; }
.pc-clinic__contact a:hover { text-decoration: underline; }
.pc-clinic__price-column { border-left: 1px solid var(--pc-border); padding-left: 20px; }
.pc-clinic__price-box { background: var(--pc-soft); border: 1px solid var(--pc-border); border-radius: 12px; padding: 12px; }
.pc-clinic__price-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.pc-search .pc-clinic__price-label { font-size: 12px; font-weight: 700; }
.pc-search .pc-clinic__total { text-align: right; white-space: nowrap; font-size: 14px; font-weight: 700; }
.pc-clinic__total strong { font-weight: inherit; }
.pc-clinic__subsidized { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 8px; border-top: 1px solid var(--pc-border); margin-top: 8px; padding-top: 8px; }
.pc-clinic__subsidy-badge { background: var(--pc-accent); color: #fff; border-radius: 3px; padding: 2px 5px; font-size: 11px; font-weight: 700; line-height: 1.4; white-space: nowrap; }
.pc-search .pc-clinic__out-of-pocket { margin-left: auto; color: var(--pc-accent); font-size: 12px; font-weight: 700; text-align: right; white-space: nowrap; }
.pc-clinic__out-of-pocket strong { margin-left: 3px; font-size: 24px; font-weight: 800; line-height: 1.3; }
.pc-clinic__out-of-pocket > span { margin-left: 3px; }
.pc-search .pc-clinic__date { font-size: 11px; text-align: right; margin-top: 6px; }
.pc-search .pc-search__empty { padding: 32px 20px; background: #fff; border-radius: 12px; text-align: center; }
.pc-search__pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.pc-search__pagination button, .pc-search__retry { min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--pc-border); border-radius: 8px; background: #fff; color: var(--pc-accent); font-size: 14px; }
.pc-search__pagination [aria-current="page"] { background: var(--pc-accent); border-color: var(--pc-accent); color: #fff; }
.pc-search__pagination button:not(:disabled):hover { box-shadow: inset 0 0 0 1px var(--pc-accent); }
.pc-search .pc-search__footnote { font-size: 12px; margin-top: 24px; }
@media (max-width: 849px) {
    .pc-search { scroll-margin-top: 90px; padding: 24px 16px; border-radius: 16px; font-size: 14px; }
    .pc-search .pc-search__intro h2 { font-size: 23px; }
    .pc-search__form { padding: 20px 16px; }
    .pc-search__result-bar { gap: 8px; padding: 10px 12px; border-radius: 9px; }
    .pc-search__result-label { display: block; font-size: 12px; }
    .pc-search__result-count strong { font-size: 23px; }
    .pc-search__result-bar button { gap: 8px; padding: 8px 10px; font-size: 13px; }
    .pc-search legend { font-size: 16px; }
    .pc-search__choices { gap: 8px; }
    .pc-search__choices span { font-size: 13px; padding: 32px 4px 10px; min-height: 66px; }
    .pc-search__choices--price span { height: 100%; }
    .pc-search__choices input { top: 14px; left: 50%; transform: translateX(-50%); }
    .pc-search__area-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .pc-search__area-list label { font-size: 13px; }
    .pc-search__area-list input { left: 8px; width: 16px; height: 16px; }
    .pc-search__area-list span { padding: 10px 6px 10px 32px; }
    .pc-clinic { grid-template-columns: 1fr; padding: 16px; gap: 12px; }
    .pc-search .pc-clinic h3 { font-size: 17px; border-bottom: 1px solid var(--pc-border); padding-bottom: 8px; }
    .pc-clinic__price-column { border: 0; padding: 0; }
    .pc-search .pc-search__status { font-size: 14px; }
    .pc-search__pagination { gap: 5px; }
    .pc-search__pagination button { padding: 6px 9px; }
}
@media (max-width: 768px) {
    .pc-compare .c-pagejumper { bottom: var(--pc-bottom-controls-height, 70px); }
}
@media (max-width: 360px) {
    .pc-search__area-list { grid-template-columns: 1fr; }
    .pc-search__result-bar { gap: 6px; padding: 10px 8px; }
    .pc-search__result-label { font-size: 11px; }
    .pc-search__result-bar button { padding: 8px; font-size: 12px; }
}

/* Word原稿の本文・図版・検査表。検索ウィジェットのスタイルから独立させる。 */
.pc-article .c-btn_std_link.c-arrow a[href="#clinic-search"]::after { transform: translateY(-50%) rotate(90deg); }
.pc-article .c-btn_std_link.c-arrow a[href="#clinic-search"]:hover::after { top: calc(50% + 28px); right: 16px; }
.pc-article__figure { margin: 0 0 36px; }
.pc-article__figure picture, .pc-article__figure img { display: block; width: 100%; }
.pc-article__figure img { height: auto; }
main .l-section .pc-article__tests table { table-layout: fixed; }
main .l-section .pc-article__tests thead th:first-child { width: 20%; }
main .l-section .pc-article__tests ul { margin: 0; padding-left: 1.2em; list-style: disc; }
main .l-section .pc-article__tests li { overflow-wrap: anywhere; }
#clinic-search { scroll-margin-top: 156px; }
@media (max-width: 768px) {
    main .l-section .pc-article__tests caption { padding: 20px 12px; }
    main .l-section .pc-article__tests thead th:first-child { width: 30%; }
    main .l-section .pc-article__tests th, main .l-section .pc-article__tests td { padding: 12px 8px; }
    #clinic-search { scroll-margin-top: 90px; }
}
