/* Main-clinic visual system. Shonai and other clinic owners keep their own UI. */
body.hp-clinic-refresh {
  --dcs-ink: #233d35; --dcs-body: #334940; --dcs-muted: #5c6f65; --dcs-green: #28794f;
  --dcs-rule: #dce9df; --dcs-paper: #f4f9f5; --hp-font-heading: var(--hp-font-primary);
  --dc-ink: #233d35; --dc-body: #334940; --dc-muted: #5c6f65; --dc-green: #28794f;
  --hp-primary: #28794f; --hp-primary-dark: #1f5d3d; --hp-text: #334940; --hp-bg-light: #f3f7f2; --clinic-mint: #f0f7f2; --clinic-soft: #e4f1e8; --clinic-accent: #58a778;
  background: #fff; color: var(--dc-body);
}
.hp-clinic-refresh .hp-direction-c { --dc-ink: #233d35; --dc-body: #334940; --dc-muted: #5c6f65; --dc-green: #28794f; --dc-bg: #fff; font-family: var(--hp-font-primary); }
.hp-clinic-refresh :is(.hp-direction-c h3,.dcs-site-header,.dcs-site-footer) { font-family: var(--hp-font-primary); }
.hp-clinic-refresh :is(a,button,summary):focus-visible { outline: 3px solid #176391; outline-offset: 5px; }
.hp-clinic-refresh .dcs-header__inner, .hp-clinic-refresh .dcs-footer__inner { max-width: 1240px; width: calc(100% - 80px); }
.hp-clinic-refresh .dcs-header__top .dcs-header__inner { height: 76px; }
.hp-clinic-refresh :is(.dcs-brand,.hp-skip-link) { min-height:44px; }
.hp-clinic-refresh .dcs-brand { display:flex; align-items:center; }
.hp-clinic-refresh .dcs-brand img { width: 238px; max-height: 42px; }
.hp-clinic-refresh .dcs-header__top { border-bottom: 0; }
.hp-clinic-refresh .dcs-header__phone { font-size: 19px; font-weight: 600; letter-spacing: .02em; }
.hp-clinic-refresh .dcs-header__phone span { font-size: 13px; }
.hp-clinic-refresh .dcs-header__reserve { background: var(--dcs-green); color: #fff; min-height: 46px; border-radius: 8px; padding: 9px 24px; }
.hp-clinic-refresh .dcs-header__reserve:hover { background: #1e6340; }
.hp-clinic-refresh .dcs-font-size button { min-height: 44px; min-width: 44px; border-radius: 6px; font-size: 13px; }
.hp-clinic-refresh .dcs-nav__list { min-height: 50px; }
.hp-clinic-refresh .dcs-nav__details { border-color: #e7efe9; }
.hp-clinic-refresh .dcs-nav__details summary { font-size: 14px; font-weight: 600; }
.hp-clinic-refresh .dcs-nav__details.is-current summary { box-shadow: inset 0 -3px var(--dcs-green); }
.hp-clinic-refresh .dcs-nav__panel { border-radius: 0 0 20px 20px; top: 49px; box-shadow: 0 18px 34px #233d3512; }
.hp-clinic-refresh .dcs-nav__panel-links small { font-size: 13px; }
.hp-clinic-refresh .dcs-site-footer { background: #edf5ef; color: var(--dc-ink); border-top: 1px solid #d4e4d9; padding-top: 64px; }
.hp-clinic-refresh .dcs-footer__identity p, .hp-clinic-refresh .dcs-footer__identity p a, .hp-clinic-refresh .dcs-footer__group a, .hp-clinic-refresh .dcs-footer__group summary { color: var(--dc-ink); }
.hp-clinic-refresh .dcs-footer__group a { display:flex; align-items:center; min-height:44px; font-size:14px; }
.hp-clinic-refresh .dcs-footer__group a:hover { color: var(--dc-green); }
.hp-clinic-refresh .dcs-footer__image-note { color: #5c6f65; }
.hp-clinic-refresh .dcs-footer__bottom { border-color: #c9dbce; color: var(--dc-muted); font-size: 12px; }
.hp-clinic-refresh .dcs-footer__reserve { min-height:44px; color: #fff; border-radius: 999px; }
.hp-clinic-refresh .dch-intro, .hp-clinic-refresh .dcd-hero { background: #fff; border-radius: 0; padding: 42px 0 48px; border-bottom: 1px solid #cedfd2; }
.hp-clinic-refresh .dch-intro h1, .hp-clinic-refresh .dcd-hero h1 { font-weight: 700; letter-spacing: .025em; color: #28794f; }
.hp-clinic-refresh :is(.dch-intro-photo img,.dch-photo img,.dcd-hero img,.dcd-gallery img) { border-radius: 24px; }
.hp-clinic-refresh .dch-section { padding-block: 48px; }
.hp-clinic-refresh .dch-section h2 { font-weight: 650; }
.hp-clinic-refresh .dch-tint { background: #f3f8f4; border-radius: 24px; }
.hp-clinic-refresh .dch-link { border-color: #d2e3d7; border-radius: 12px; background: #fff; }
.hp-clinic-refresh .dch-bottom { background: #eef6f0; border-radius: 16px; padding: 32px; margin-top: 40px; }
.hp-clinic-section-heading { margin-bottom: 32px; }
.hp-clinic-section-heading h2 { font-size: clamp(26px,2.7vw,36px); line-height: 1.55; margin: 8px 0 16px; }
.hp-clinic-outpatient-section { border-bottom: 1px solid #d9e6dd; }
/* Seasonal campaign slot and evergreen notices share the same visual language. */
.dc-home-announcements { padding: 38px 0 0; background: #fff; }
.dc-home-banner-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.dc-home-banner { position: relative; min-width: 0; min-height: 146px; display: flex; align-items: center; gap: 24px; overflow: hidden; padding: 24px 28px; border-radius: 18px; text-decoration: none; color: #314e46; }
.dc-home-banner--vaccine { background: #eaf5f5; border: 1px solid #cfe5e5; }
.dc-home-banner--checkup { background: #f4f3e7; border: 1px solid #e3e2cd; }
.dc-home-banner__art { display: grid; place-items: center; flex: 0 0 88px; height: 88px; border-radius: 50%; background: #ffffffa6; color: #428b84; }
.dc-home-banner__art svg { width: 62px; height: 62px; }
.dc-home-banner--checkup .dc-home-banner__art { color: #7b8955; }
.dc-home-banner__copy { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 6px; }
.dc-home-banner__copy small { font-size: 13px; line-height: 1.6; color: #4f7068; }
.dc-home-banner__copy strong { font-size: 25px; font-weight: 650; line-height: 1.5; }
.dc-home-banner__copy > span { font-size: 14px; line-height: 1.6; }
.dc-home-banner__arrow { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #fff; font-size: 22px; flex: 0 0 auto; }
@media (hover:hover) and (pointer:fine) {
 .dc-home-banner:hover .dc-home-banner__copy strong { text-decoration: underline; text-underline-offset: 5px; }
}
@media(max-width:1180px) {
 .hp-clinic-refresh .dcs-header__inner,.hp-clinic-refresh .dcs-footer__inner { width: calc(100% - 48px); }
 .hp-clinic-refresh .dcs-header__top .dcs-header__inner { height: 72px; }
 .hp-clinic-refresh .dcs-mobile-menu { top: 72px; max-height: calc(100dvh - 72px); }
 .hp-clinic-refresh .dcs-menu-toggle { color: #28794f; font-size: 13px; min-width: 48px; }
 .hp-clinic-refresh .dcs-menu-toggle__icon { width: 26px; }
 .hp-clinic-refresh .dcs-mobile-menu__actions a { border-radius: 999px; }
 .dc-home-banner { gap: 18px; padding: 22px; }
 .dc-home-banner__art { flex-basis: 68px; height: 68px; }
 .dc-home-banner__art svg { width: 50px; height: 50px; }
 .dc-home-banner__copy strong { font-size: 22px; }
}
@media(max-width:900px) {
 .dc-home-banner { gap: 14px; padding: 20px; }
 .dc-home-banner__arrow { display: none; }
 .dc-home-banner__art { flex-basis: 58px; height: 58px; }
 .dc-home-banner__art svg { width: 43px; height: 43px; }
 .dc-home-banner__copy strong { font-size: 20px; }
}
@media(max-width:767px) {
 .hp-clinic-refresh .dcs-header__inner,.hp-clinic-refresh .dcs-footer__inner { width: calc(100% - 40px); }
 .hp-clinic-refresh .dcs-brand img { width: 192px; max-height: 36px; }
 .hp-clinic-refresh .dcs-header__top .dcs-header__inner { height: 68px; }
 .hp-clinic-refresh .dcs-mobile-menu { top: 68px; max-height: calc(100dvh - 68px); }
 .hp-clinic-refresh .dcs-footer__group { border-color: #cadbd0; }


 .hp-clinic-refresh .dch-intro,.hp-clinic-refresh .dcd-hero { border-radius: 0; padding: 24px 0 32px; }
 .hp-clinic-refresh .dch-section { padding-block: 32px; }
 .hp-clinic-refresh .dch-tint { padding-inline: 22px; }
 .dc-home-announcements { padding: 26px 0 0; }
 .dc-home-banner-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
 .dc-home-banner { min-height: 132px; gap: 16px; padding: 20px; }
 .dc-home-banner__art { flex-basis: 60px; height: 60px; }
 .dc-home-banner__copy strong { font-size: 21px; }
}
@media(max-width:359px) {
 .hp-clinic-refresh .dcs-brand img { width: 177px; }
 .dc-home-banner { padding: 18px 16px; gap: 12px; }
 .dc-home-banner__art { flex-basis: 48px; height: 48px; }
 .dc-home-banner__art svg { width: 36px; height: 36px; }
 .dc-home-banner__copy strong { font-size: 19px; }
}
@media(prefers-reduced-motion:reduce) {
}

/* A staff-confirmed seasonal notice replaces the evergreen banner pair. */
.hp-clinic-refresh .dc-seasonal-notice { border-radius: 24px; border: 1px solid #c5e0d0; background: #edf7f1; overflow: hidden; }
.hp-clinic-refresh .dc-seasonal-notice .dc-seasonal-notice__inner { width: 100%; max-width: none; padding: 30px 36px; display: grid; grid-template-columns: 90px minmax(0,1fr) auto; gap: 8px 32px; align-items: center; }
.hp-clinic-refresh .dc-seasonal-notice__art { grid-column: 1; grid-row: 1 / 4; display: grid; place-items: center; width: 90px; height: 90px; color: #428960; border-radius: 50%; background: #fff; }
.hp-clinic-refresh .dc-seasonal-notice__art svg { width: 60px; height: 60px; }
.hp-clinic-refresh .dc-seasonal-notice__eyebrow { grid-column: 2; color: #28794f; font-size: 14px; font-weight: 600; margin: 0; }
.hp-clinic-refresh .dc-seasonal-notice h2 { grid-column: 2; color: #233d35; font-family: var(--hp-font-primary); font-size: clamp(22px,2.3vw,30px); font-weight: 650; line-height: 1.5; margin: 0; }
.hp-clinic-refresh .dc-seasonal-notice__body { grid-column: 2; color: #334940; font-size: 16px; margin: 4px 0 0; }
.hp-clinic-refresh .dc-seasonal-notice .dc-button--seasonal { grid-column: 3; grid-row: 1 / 4; color: #fff; background: #28794f; border-color: #28794f; }
.hp-clinic-refresh .dch-section h2 { color: var(--dc-ink); }
.hp-clinic-refresh .hp-title-phrase { display: inline-block; }
@media(max-width:900px) {
 .hp-clinic-refresh .dc-seasonal-notice .dc-seasonal-notice__inner { grid-template-columns: 70px minmax(0,1fr); gap: 8px 22px; }
 .hp-clinic-refresh .dc-seasonal-notice__art { width: 70px; height: 70px; }
 .hp-clinic-refresh .dc-seasonal-notice__art svg { width: 50px; height: 50px; }
 .hp-clinic-refresh .dc-seasonal-notice .dc-button--seasonal { grid-column: 2; grid-row: 4; justify-self: start; margin-top: 12px; }
}
@media(max-width:767px) {
 .hp-clinic-refresh .dc-seasonal-notice .dc-seasonal-notice__inner { padding: 24px; grid-template-columns: 52px minmax(0,1fr); gap: 8px 14px; }
 .hp-clinic-refresh .dc-seasonal-notice__art { width: 52px; height: 52px; grid-row: 1 / 3; }
 .hp-clinic-refresh .dc-seasonal-notice__art svg { width: 40px; height: 40px; }
 .hp-clinic-refresh .dc-seasonal-notice :is(.dc-seasonal-notice__body,.dc-button--seasonal) { grid-column: 1 / -1; }
 .hp-clinic-refresh .dc-seasonal-notice__art { grid-row: 1; }
 .hp-clinic-refresh .dc-seasonal-notice h2 { grid-column: 1 / -1; grid-row: 2; font-size: 20px; word-break: keep-all; overflow-wrap: anywhere; }
}
/* Campaign details keep corporate conditions separate from routine vaccination. */
.hp-clinic-campaign { margin: 48px 0; padding: clamp(24px,4vw,48px); border: 1px solid #c7dfce; border-radius: 24px; background: #f3f9f4; color: #334940; scroll-margin-top: 150px; }
.hp-clinic-campaign__eyebrow { color: #28794f; font-size: 14px; font-weight: 600; margin: 0 0 12px; }
.hp-clinic-campaign h2 { font-family: var(--hp-font-primary); color: #233d35; font-size: clamp(24px,2.5vw,34px); font-weight: 650; line-height: 1.6; margin: 0 0 18px; }
.hp-clinic-campaign p { font-size: 16px; line-height: 1.9; }
.hp-clinic-campaign__details { margin: 28px 0; }
.hp-clinic-campaign__details > div { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 24px; padding: 22px 0; border-bottom: 1px solid #ccdfd1; }
.hp-clinic-campaign__details dt { font-weight: 650; color: #233d35; }
.hp-clinic-campaign__details dd { margin: 0; line-height: 1.9; }
.hp-clinic-campaign__details time { display: inline-block; }
.hp-clinic-campaign__details ul { margin: 0; padding-left: 1.3em; }
.hp-clinic-campaign__details p { margin: 10px 0 0; }
.hp-clinic-campaign__contact { border-radius: 18px; padding: 28px; background: #fff; }
.hp-clinic-campaign__contact h3 { font-family: var(--hp-font-primary); color: #233d35; font-size: 22px; font-weight: 650; margin: 0 0 14px; }
.hp-clinic-campaign__contact a { display: inline-block; color: #28794f; font-size: clamp(24px,3vw,32px); font-weight: 650; line-height: 1.8; white-space: nowrap; text-decoration: underline; text-underline-offset: 5px; }
@media(max-width:767px) {
 .hp-clinic-campaign { scroll-margin-top: 90px; }
 .hp-clinic-campaign h2 { font-size: clamp(20px,5.5vw,26px); }
 .hp-clinic-campaign__details > div { grid-template-columns: minmax(0,1fr); gap: 8px; padding: 18px 0; }
 .hp-clinic-campaign__contact { padding: 20px; }
}

/* Shared reading and consultation components, including native FAQ behavior. */
.hp-clinic-refresh main { overflow-wrap: anywhere; }
.hp-clinic-refresh :is(p,li,dd) { max-width: 100%; }
.hp-clinic-refresh :is(.dch-section,.dcd-section) p { font-size: 16px; line-height: 2; }
.hp-clinic-refresh :is(.dch-intro-copy,.dcd-hero-copy) { min-width: 0; }
.hp-clinic-refresh .dch-question { border-bottom: 1px solid #cedfd2; }
.hp-clinic-refresh .dch-question summary { display: flex; align-items: center; gap: 20px; min-height: 68px; padding: 18px 0; cursor: pointer; font-weight: 600; color: #244635; list-style: none; }
.hp-clinic-refresh .dch-question summary::-webkit-details-marker { display: none; }
.hp-clinic-refresh .dch-question summary::after { content: '+'; margin-left: auto; flex-shrink: 0; font-size: 24px; font-weight: 400; }
.hp-clinic-refresh .dch-question[open] summary::after { content: '−'; }
.hp-clinic-refresh .dch-question p { padding: 0 0 22px; margin: 0; }
.hp-clinic-refresh .dcs-font-size--mobile { display: flex; justify-content: flex-start; margin: 24px 0; }
.clinic-contact-bar { display: none; }
.clinic-contact-bar[hidden] { display: none; }
.hp-clinic-refresh .clinic-facility-facts { margin: 20px 0; font-size: 16px; }
.clinic-facility-facts>div { display: grid; grid-template-columns: 5em minmax(0,1fr); gap: 16px; padding: 9px 0; border-bottom: 1px solid #e0e8df; }
.clinic-facility-facts dt { color: #526557; font-weight: 500; }
.clinic-facility-facts dd { margin: 0; }
.hp-clinic-refresh .hp-single__title { color: #26764d; font-family: var(--hp-font-primary); line-height: 1.55; letter-spacing: .02em; }
.hp-clinic-refresh .hp-single__hero { background: #f2f7f1; }
.hp-clinic-refresh .hp-single__content-panel { box-shadow: none; border-color: #d8e3d8; }
.hp-clinic-refresh .hp-entry-content { font-size: 17px; line-height: 2; }
.hp-clinic-refresh .hp-entry-content :is(h2,h3,h4) { font-family: var(--hp-font-primary); color: #244f38; }
.hp-clinic-refresh .hp-entry-content table { display: block; max-width: 100%; overflow-x: auto; }
.hp-clinic-refresh .hp-breadcrumb__current { display: inline; overflow: visible; -webkit-line-clamp: unset; }
.hp-clinic-refresh .hp-animate { opacity: 1; transform: none; }
.hp-clinic-refresh .dc-button { border-radius: 999px; }
.hp-clinic-refresh .dcs-nav__panel-links a { min-height: 44px; }
@media(max-width:1180px) {
 .hp-clinic-refresh .dcs-header__utility { display: none; }
 .hp-clinic-refresh.clinic-menu-open { overflow: hidden; }
 .hp-clinic-refresh .dcs-mobile-menu { overscroll-behavior: contain; padding-bottom: 32px; }
}
@media(max-width:767px) {
 .hp-clinic-refresh .hp-wrap { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
 .clinic-contact-bar { display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: #fff; border-top: 1px solid #c6d9ca; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); gap: 8px; }
 .clinic-contact-bar a { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 2px; min-height: 52px; padding: 6px; font-size: 14px; line-height: 1.6; text-decoration: none; border-radius: 6px; color: #fff; background: #26764d; }
 .clinic-contact-bar a:first-child { flex-direction: row; gap: 8px; }
 .clinic-contact-bar a:last-child { color: #246648; background: #edf5ef; }
 .clinic-contact-bar small { font-size: 13px; }
 .hp-clinic-refresh .hp-chatbot { bottom: calc(90px + env(safe-area-inset-bottom)); }
 .hp-clinic-refresh .dch-heading-phrase { white-space: normal; }
 .hp-clinic-refresh .dch-bottom { padding: 26px; }
 .hp-clinic-refresh .dcd-facts dl>div { grid-template-columns: minmax(0,1fr); gap: 6px; }
 .hp-clinic-refresh .hp-single__title { font-size: 29px; }
 .hp-clinic-refresh .hp-entry-content { font-size: 16px; }
 .hp-clinic-refresh .hp-entry-content table { font-size: 16px; }
}
@media(max-width:359px) {
}
html[data-font-size="large"] .hp-clinic-refresh :is(.dch-page,.dcd-page,.hp-entry-content) :is(p,li,dd) { font-size: 20px; }
@media(max-height:460px) { .clinic-contact-bar { display: none; } .hp-clinic-refresh .dcs-site-header { position: relative; } }

/* Main-clinic mobile bar: three equal, safe-area-aware contact actions. */
@media (max-width: 767px) {
 .hp-clinic-refresh .hp-wrap { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
 .hp-clinic-refresh .clinic-contact-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); }
 .hp-clinic-refresh .clinic-contact-bar a,
 .hp-clinic-refresh .clinic-contact-bar a:first-child,
 .hp-clinic-refresh .clinic-contact-bar a:last-child { min-width: 0; min-height: 52px; padding: 4px 2px; color: #fff; background: #26764d; font-size: 12px; line-height: 1.25; }
 .hp-clinic-refresh .clinic-contact-bar a:first-child { background: #245844; }
 .hp-clinic-refresh .clinic-contact-bar a:last-child { color: #26764d; background: #fff; border: 1px solid #26764d; }
 .hp-clinic-refresh .clinic-contact-bar a .clinic-icon { width: 19px; height: 19px; flex: 0 0 19px; }
 .hp-clinic-refresh .clinic-contact-bar a > span { min-width: 0; overflow-wrap: anywhere; text-align: center; }
}
