/* Common styles shared across pages */

:root{
  --accent-blue:#1f4fd8;
  --border:#e5e7eb;
  --main-blue:#1f5fa8;
  --maxw:1200px;
  --muted:#6b7280;
  --sub-blue:#eaf2fb;
  --text:#111827;
}

header{
  top:0;
  z-index:100;
  background:#fff;
  border-bottom:1px solid var(--border);
}

a{color:inherit;text-decoration:none;}

.header-inner{
  max-width:var(--maxw);
  margin:0 auto;
  padding:12px 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

*{box-sizing:border-box;}

body{
  margin:0;
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.75;
}

img{max-width:100%;height:auto;display:block;}

.container{max-width:var(--maxw);margin:0 auto;padding:0 20px;}

.logo img{height:48px;width:auto;display:block;}

.menu-btn{
  display:none;
  width:44px;height:44px;
  border:1px solid var(--border);
  background:#fff;
  border-radius:12px;
  padding:0;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}

.menu-icon{
  width:18px;height:2px;
  background:#1f2937;
  position:relative;
  display:block;
}

.menu-icon::before,
.menu-icon::after{
  content:"";
  position:absolute;
  left:0;
  width:18px;height:2px;
  background:#1f2937;
}

.menu-icon::after{top:6px;}

footer{
  border-top:1px solid var(--border);
  padding:26px 0;
  color:var(--muted);
  font-size:.92rem;
}

/* ===== AUTO: Shared rules deduplicated from page CSS ===== */

#access .access-details{
  padding:16px;
    border-radius:16px;
    background:#fff;
    box-shadow:0 6px 20px rgba(15,23,42,0.08);
}

#access .access-grid{
  display:grid;
    grid-template-columns: 1fr;
    gap:16px;
}

#access .access-photo img{
  width:100%;
    height:auto;
    display:block;
}

#access .access-photo img,
#access .access-map .map{
  width:100%;
  
    object-fit:cover;
    border-radius:16px;
}

#access .access-photo,
#access .access-map{
  height:360px;
}

#access .map-open{
  text-align: right;
  margin-top: -6px;
}

#access .map-open a{
  font-size:0.9rem;
    color:inherit;
    text-decoration:underline;
    text-underline-offset:3px;
    opacity:0.85;
}

#access .map-open a:hover{
  opacity:1;
}

#clinic .feature-body{
  font-weight:600; color:#1f2937; line-height:1.7;
}

#clinic .feature-item{
  display:flex; gap:14px; padding:12px 0;
}

#clinic .feature-item + .feature-item{
  border-top:1px solid rgba(30,64,175,.15);
}

#clinic .feature-list{
  margin-top:14px;
}

#clinic .feature-list li,
.feature-list li{
  margin: 8px 0;
    line-height: 1.7;
}

#clinic .feature-list,
.feature-list{
  margin: 12px 0 0 1.1em;
    padding: 0;
}

#clinic .feature-num{
  min-width:42px; height:42px; border-radius:999px;
    background:#1e40af; color:#fff; font-weight:700;
    display:flex; align-items:center; justify-content:center;
}

#doctor .card h3,
#doctor .card h4{
  position: relative;
    padding-left: 12px;
}

#doctor .card h3::before,
#doctor .card h4::before{
  content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 1.2em;
    background: rgba(30, 64, 175, 0.85);
    border-radius: 2px;
}

#doctor .doctor-block-title::after{
  left: 0;
    bottom: 0;
    height: 2px;
    width: max-content;
}

#doctor .doctor-list li{
  margin: 6px 0;
}

#news .news-body p{
  margin: 0 0 0 6.5em;
    font-size: 0.96rem;
    color: rgba(51, 65, 85, 0.95);
    line-height: 1.7;
}

#news details.news-detail{
  border-bottom: 1px solid rgba(226, 232, 240, 0.9);
}

#news details.news-detail:last-child{
  border-bottom:none;
}

#news details[open] .news-chev{
  transform: rotate(90deg);
}

#news summary.news-summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  gap: 14px;
  align-items: baseline;
  padding: 12px 0;
}

#news summary.news-summary::-webkit-details-marker {
  display: none;
}

#partners .partner-item{
  background: #fff;
    border: 1px solid rgba(30, 64, 175, 0.10);
    border-radius: 14px;
    padding: 14px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#partners .partner-item img{
  width: 100%;
    height: 52px;
    object-fit: contain;
    display: block;
}

#partners .partners-grid{
  display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}

#partners a.partner-link,
#partners a{
  display:block;
}

#partners a.partner-link:hover img,
#partners a:hover img{
  transform: translateY(-1px);
    filter: saturate(1.05);
}

#partners img{
  transition: transform .15s ease, filter .15s ease;
}

#services .card{
  position: relative;
}

#services .card .card-more{
  display:inline-block;
    margin-top: 10px;
    font-weight: 700;
    color: rgba(30, 64, 175, 0.95);
}

#services .card .card-more:hover{
  text-decoration: underline;
    text-underline-offset: 3px;
}

#services .card .svc-title{
  display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
}

#services .card .svc-title .svc-title-icon{
  width:80px !important;
    height:80px !important;
    flex:0 0 80px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    color: var(--main-blue) !important;
    opacity: .95;
}

#services .card .svc-title .svc-title-icon svg{
  width:100% !important;
    height:100% !important;
    max-width:80px !important;
    max-height:80px !important;
}

#services .card .svc-title .svc-title-icon svg{
  width: 100%;
  
    display: block;
}

#services .card .svc-title .svc-title-icon svg path,
#services .card .svc-title .svc-title-icon svg circle,
#services .card .svc-title .svc-title-icon svg ellipse,
#services .card .svc-title .svc-title-icon svg line,
#services .card .svc-title .svc-title-icon svg polyline,
#services .card .svc-title .svc-title-icon svg polygon{
  fill: none !important;
    stroke: var(--main-blue) !important;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2 !important;
    vector-effect: non-scaling-stroke;
}

#services .card .svc-title .svc-title-icon svg rect{
  fill: none !important;
    stroke: none !important;
}

#services .card .svc-title-icon svg{
  display:block !important;
}

#services .card h3,
#services .card h4{
  position: relative;
    padding-left: 12px;
}

#services .card h3::before,
#services .card h4::before{
  content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 1.2em;
    background: rgba(30, 64, 175, 0.85);
    border-radius: 2px;
}

#services .card svg{
  display:none !important;
}

#siteHeader.is-open .mobile-nav{
  display:block;
}

.access-box{
  display:grid;
    grid-template-columns: 1.2fr .8fr;
    gap:18px;
    align-items:start;
}

.access-info{
  display:flex;
    flex-direction:column;
    gap:10px;
}

.access-line{
  display:flex;
    gap:12px;
}

.access-line .label{
  min-width:3.5em;
    color:var(--muted);
    font-weight:700;
}

.access-line .value a{
  color:inherit;
    text-decoration:underline;
    text-underline-offset:3px;
}

.accordion .body{
  margin-top: 8px;
  color: rgba(51, 65, 85, 0.95);
}

.accordion .chev{
  margin-left:auto;
  color:rgba(30,64,175,0.95);
  font-weight:900;
  transform:rotate(0deg);
  transition:transform .15s ease;
}

.accordion details{
  border-top:1px solid rgba(226,232,240,0.9);
  padding:10px 0;
}

.accordion details:first-child{
  border-top:0;padding-top:0;
}

.accordion details[open] .chev{
  transform:rotate(90deg);
}

.accordion summary{
  list-style: none;
    cursor: pointer;
    display:flex;
    align-items: baseline;
    gap: 10px;
    font-weight: 800;
}

.accordion summary::-webkit-details-marker{
  display:none;
}

.back-home{
  display:flex;
    justify-content:center;
    align-items:center;
}

.back-home a{
  color:var(--accent-blue);
    font-weight:900;
}

.back-home a:hover{
  text-decoration:underline;
    text-underline-offset:4px;
}

.breadcrumb{
  color: var(--muted);
  font-size: .92rem;
}

.breadcrumb{
  color:var(--muted); font-size:.92rem;
}

.breadcrumb a{
  text-decoration:underline; text-underline-offset:3px;
}

.card{
  border:1px solid var(--border);
  border-radius:18px;
  padding:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,0.04);
}

.card-lead{
  margin:0 0 12px 0;color:var(--muted);
}

.card-more{
  display:inline-flex;
  align-items:baseline;
  gap:8px;
  color:var(--accent-blue);
  font-weight:800;
}

.card-more:hover{
  text-decoration: underline; text-underline-offset: 4px;
}

.card-photo-fit{
  object-fit:cover;
}

.card-text{
  margin:0;color:var(--muted);
}

.card-title{
  margin:0 0 10px 0;font-size:1.05rem;
}

.card.photo-only{
  padding:0;
}

.clinic-slider{
  position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
}

.clinic-slider .slide.active{
  opacity: 1;
}

.desktop-nav a{
  margin-left:20px; font-weight:600; color:#1f2937; font-size:.95rem;
}

.desktop-nav a,
.mobile-nav a{
  font-weight: 600 !important;
  color: #1f2937 !important;
  text-decoration: none !important;
}

.feature-head{
  font-weight:900;
}

.feature-item{
  padding-top:10px;border-top:1px dashed var(--border);
}

.feature-item:first-child{
  border-top:none;padding-top:0;
}

.feature-list{
  display:grid;gap:10px;
}

.feature-text{
  color:var(--muted);margin-top:4px;
}

.floating-cta{
  position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 90;
    display: grid;
    gap: 10px;
}

.floating-cta .cta-tel{
  background: #fff;
    border: 1px solid var(--border);
    color: var(--text);
}

.floating-cta .cta-web{
  background: var(--accent-blue);
    border: 1px solid rgba(255,255,255,0.0);
    color: #fff;
}

.floating-cta a{
  display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    padding: 12px 14px;
    border-radius: 16px;
    font-weight: 800;
    letter-spacing: .02em;
    box-shadow: 0 10px 26px rgba(0,0,0,0.10);
}

.floating-cta a:focus-visible{
  outline: 3px solid rgba(31,79,216,0.35);
    outline-offset: 2px;
}

.flow-2col{
  align-items:stretch;
}

.flow-card .flow-item{
  padding:12px 0;
    border-top:1px dashed var(--border);
}

.flow-card .flow-item:first-child{
  border-top:none;
    padding-top:0;
}

.flow-left .card{
  margin-bottom:12px;
}

.flow-left .card:last-child{
  margin-bottom:0;
}

.flow-photo{
  padding:0;
}

.flow-photo img{
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
  border-radius: 14px;
}

.flow-stack{
  display:block;
}

.flow-step{
  margin-bottom:12px;
}

.flow-step:last-child{
  margin-bottom:0;
}

.flow-step:last-of-type{
  margin-bottom:12px;
}

.grid-2{
  display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.hero{
  position:relative;
    height:580px;
    background:none;
    overflow:hidden;
    padding:64px 20px;
}

.hero-access{
  position:absolute;
    bottom: -30px !important;
    left:900px;
    white-space:nowrap;
    font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
    font-size:1.05rem;line-height:1.9;
    color:rgba(17,24,39,.9);
    text-shadow:0 0 6px rgba(255,255,255,0.9);
}

.hero-access .em{
  color:var(--accent-blue);font-weight:800;
}

.hero-access .station{
  font-weight:800;
}

.hero-access .walk{
  font-weight:800;
}

.hero-access .yori{
  font-size: 0.85em;
    font-weight: 400;
    margin: 0 0.15em;
}

.hero-bg{
  position:absolute;inset:0;z-index:0;
}

.hero-bg .bg{
  position:absolute;inset:0;
    background-size:cover;background-position:center;
    opacity:0;transition:opacity 1.8s ease-in-out;
}

.hero-bg .bg.bg1{
  background-image:url("../../hero.jpg");opacity:1;
}

.hero-bg .bg.bg2{
  background-image:url("../../hero_2.jpg");
}

.hero-bg .bg.show{
  opacity:1;
}

.hero-copy{
  display:flex;gap:20px;
}

.hero-copy .bold{
  font-weight:800;
}

.hero-copy .col{
  writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap;
    font-family:"Hiragino Mincho ProN","Yu Mincho","Hiragino Mincho Pro",serif;
    font-size:1.15rem;letter-spacing:.06em;line-height:1.6;
    color:rgba(17,24,39,.9);
    text-shadow:0 0 6px rgba(255,255,255,0.9);
}

.hero-copy .em{
  color:var(--accent-blue);font-weight:800;
}

.hero-inner{
  position:relative;z-index:2;
    max-width:1200px;margin:0 auto;
    padding:20px 20px 0 0;
}

.hero::before{
  content:"";position:absolute;inset:0;z-index:1;
    background:linear-gradient(90deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.18) 20%,rgba(255,255,255,0) 40%);
}

.hours-legend .legend-main{
  text-align:left;
}

.hours-legend .legend-main,
.hours-legend .legend-note{
  width:100%;
}

.hours-legend .mark.circle{
  color:var(--accent-blue);
}

.hours-legend .mark.closed{
  color:var(--muted);
}

.hours-section .card{
  padding:18px 18px;
}

.hours-table{
  width:100%;
    border-collapse:separate;
    border-spacing:0;
    min-width:720px;
    border:1px solid var(--border);
    border-radius:16px;
    overflow:hidden;
    background:#fff;
}

.hours-table .closed{
  color:var(--muted);
    font-weight:700;
}

.hours-table .colonoscopy{
  color:#f59e0b;
    font-weight:900;
}

.hours-table .open{
  color:var(--accent-blue);
    font-weight:900;
}

.hours-table .time{
  text-align:center;
    font-weight:800;
    background:#fff;
    white-space:nowrap;
}

.hours-table th,
.hours-table td{
  padding:12px 10px;
    text-align:center;
    border-bottom:1px solid var(--border);
    border-right:1px solid var(--border);
    font-variant-numeric:tabular-nums;
}

.hours-table th:last-child,
.hours-table td:last-child{
  border-right:none;
}

.hours-table thead th{
  background:var(--sub-blue);
    font-weight:800;
    color:#1f2937;
}

.hours-table tr:last-child td{
  border-bottom:none;
}

.hours-wrap{
  margin-top:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;
}

.kv-list{
  margin: 0;
  padding-left: 1.1em;
}

.kv-list li{
  margin: 8px 0;
}

.kv-list strong{
  font-weight: 900;
}

.link-row{
  margin-top:12px;
    display:flex;
    flex-wrap:wrap;
    gap:10px 16px;
}

.map{
  width:100%;
    border:0;
    border-radius:18px;
    overflow:hidden;
    min-height:320px;
    background:var(--sub-blue);
}

.media-caption{
  margin:10px 0 0 0;color:var(--muted);font-size:.95rem;
}

.media-photo{
  width:100%;
  border-radius:14px;
  display:block;
  margin-bottom:12px;
  border:1px solid var(--border);
}

.media-row{
  margin-top:12px;
}

.mobile-nav{
  display:none;
  border-top:1px solid var(--border);
  background:#fff;
  padding:10px 20px 14px 20px;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  box-shadow:0 18px 40px rgba(15,23,42,0.14);
  max-height:calc(100vh - 84px);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}

.mobile-nav a{
  display:block;
    padding:10px 0;
    font-weight:600;
    color:#1f2937;
}

.nav-active{
  color: inherit; text-decoration: none;
}

.nav-active,
.desktop-nav a.nav-active,
.mobile-nav a.nav-active{
  color: inherit; text-decoration: none;
}

.news-list .date{
  min-width:7.2em;
    color:var(--muted);
    font-variant-numeric:tabular-nums;
}

.news-list li{
  display:flex;gap:14px;align-items:flex-start;
    padding:10px 0;
    border-bottom:1px dashed var(--border);
}

.news-list li:last-child{
  border-bottom:0;
}


.notice{
  background: rgba(31,79,216,0.06);
    border: 1px solid rgba(31,79,216,0.16);
    border-radius: 16px;
    padding: 14px 14px;
    margin-bottom: 16px;
}

.page-hero{
  background-image:
      linear-gradient(180deg, rgba(255,255,255,0.55), rgba(255,255,255,0.35)),
      url('../../key_visual_low.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom: 1px solid var(--border);
    padding: 34px 0 22px 0;
}

.page-lead{
  margin:0;
  color:rgba(51, 65, 85, 0.95);
    ax-width:68ch;
}

.page-section{
  padding:28px 0;
}

.page-section .card{
  padding: 18px !important;
}

.page-section h3{
  margin: 0 0 10px 0;
  font-size: 1.12rem;
}

.page-title{
  margin: 10px 0 6px 0;
  font-size: 1.75rem;
  letter-spacing: .02em;
}

.reserve-link{
  color:var(--accent-blue);
    font-weight:800;
}

.reserve-link:hover{
  text-decoration:underline;
    text-underline-offset:4px;
}

.reserve-links{
  margin-top:14px;
    padding-top:12px;
    border-top:1px dashed var(--border);
    display:flex;
    gap:16px;
    flex-wrap:wrap;
}

.section-inner{
  max-width:1200px;margin:0 auto;
}

.section-services .card::after{
  content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: rgba(30, 64, 175, 0.85);
}

.section-services .card::before{
  content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: rgba(30, 64, 175, 0.85);
}

.section-services .card:hover{
  transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(30, 64, 175, 0.10);
}

.section-sub{
  color:var(--muted);margin-top:-6px;margin-bottom:18px;
}

.section-title{
  font-size: 1.35rem;
  letter-spacing: .02em;
  margin: 0 0 4px 0;
  padding-left: 14px;
  border-left: 6px solid var(--accent-blue);
}


.section-title-link{
  font-size: 0.95rem;
  font-weight: 700;
  color: rgba(30, 64, 175, 0.95);
  white-space: nowrap;
}

.section-title-link:hover{
  text-decoration: underline;
  text-underline-offset: 3px;
}


.section-title-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.section-title-row .section-title{
  margin:0;
}

.small{
  font-size: .95rem; color: var(--muted); margin-top: 8px;
}

.steps{
  margin:0;padding-left:1.2em;
}

.steps li{
  margin:0 0 8px 0;
}

.toc{
  margin-top: 14px;
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
}

.toc a{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 10px 12px;
  border: 1px solid rgba(31,79,216,0.18);
  background: #fff;
  border-radius: 999px;
  font-weight: 700;
  font-size: .95rem;
  box-shadow: 0 6px 16px rgba(15,23,42,0.06);
}

.toc a:hover{
  transform: translateY(-1px);
}

:root{
  --accent-link:rgba(30, 64, 175, 0.95);
}

details{
  border-top:1px dashed var(--border); padding:12px 0;
}

details p{
  margin:10px 0 0 0;color:var(--muted);
}

details:first-child{
  border-top:none;
}

details[open] summary::after{
  content:"－";
}

header{
  position:sticky;
}

nav a{
  margin-left:20px;font-weight:600;color:#1f2937;font-size:.95rem;
}

section:not(.hero){
  padding:28px 0 !important;
}

summary{
  cursor:pointer;font-weight:800;
}

summary::-webkit-details-marker{
  display:none;
}

summary::after{
  content:"＋";
    float:right;
    color:var(--muted);
    font-weight:900;
}

@media (max-width: 768px){
  #news .news-body p{
    margin-left: 6.2em; font-size: 0.95rem;
  }

  #news summary.news-summary{
    gap:12px;
  }

  #services .card{
    min-height: 200px;
  }

  #services .card .svc-title .svc-title-icon{
    width:72px !important; height:72px !important; flex-basis:72px !important;
  }

  #services .card .svc-title .svc-title-icon svg{
    max-width:72px !important; max-height:72px !important;
  }

  .floating-cta{
    right: 14px;
        bottom: 14px;
  }

  .floating-cta a{
    min-width: 190px;
        padding: 11px 12px;
        border-radius: 14px;
        font-size: 0.95rem;
  }

  .hours-table{
    min-width:0;
        table-layout:fixed;
  }

  .hours-table .time{
    font-size:.78rem;
        width:92px;
        min-width:92px;
        max-width:92px;
        overflow:hidden;
        text-overflow:ellipsis;
  }

  .hours-table th,
    .hours-table td{
    padding:8px 4px;
        font-size:.78rem;
  }

  .hours-table th.time{
    width:92px;
        min-width:92px;
        max-width:92px;
  }

  .hours-table thead th:not(.time){
    writing-mode:vertical-rl;
        text-orientation:upright;
        padding:6px 2px;
        letter-spacing:0;
  }

  .hours-wrap{
    overflow-x:hidden;
  }
}

@media (max-width: 899px){
  #partners .partner-item img{
    height: 46px;
  }

  #partners .partners-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
  }
}

@media (max-width: 900px){
  .feature-2col, .flow-2col{
    grid-template-columns:1fr;
  }

  .flow-grid{
    grid-template-columns: 1fr;
  }

  .info-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width:899px){
  #clinic .feature-body{
    font-size:.95rem;
  }

  #clinic .feature-item{
    gap:10px;
  }

  #doctor .doctor-caption{
    margin-top: 8px;
        text-align: center;
  }

  #doctor .doctor-cw .doctor-list li{
    margin: 4px 0;
  }

  #doctor .doctor-list li{
    margin: 5px 0;
  }

  #doctor .grid-2{
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: auto;
    gap: 12px;
    align-items: stretch;
  }

  .clinic-slider{
    aspect-ratio: 16 / 10;
  }
}

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

@media (min-width:900px){
  #access .access-details{
    grid-column: 1 / -1; grid-row: 2;
  }

  #doctor .grid-2{
    grid-template-columns: 280px 1fr 1fr;
    align-items: stretch;
  }

}

@media(max-width:768px){
  #siteHeader.is-open .mobile-nav{
    display:block;
  }

  .desktop-nav{
    display:none;
  }

  .hero{
    height:620px;
  }

  .hero-access{
    bottom: -100px !important;
        left:auto;
        right:5px;
        font-size:.95rem;
  }

  .hero-copy .col{
    font-size:1.05rem;
  }

  .hero-inner{
    padding:18px 16px 0 0;
  }

  .menu-btn{
    display:inline-flex;
  }
}

@media(max-width:899px){
  #clinic .feature-body{
    font-size:.95rem;
  }

  #clinic .feature-item{
    gap:10px;
  }

  #clinic .feature-num{
    min-width:72px; height:72px; font-size:.9rem;
  }
}

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

/* news（index/newsページ）と .accordion（施設基準など）は chevron を自前で持つので ＋/－を消す */
summary.news-summary::after,
.accordion summary::after{
  content: none !important;
  display: none !important;
}

.news-pagination{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:14px;
}
.news-page{
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font-weight:800;
}
.news-page.is-current{
  background:var(--sub-blue);
  border-color:rgba(31,79,216,0.35);
}

.footer-links{
  margin-top:8px;
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  font-size:0.95rem;
  color:var(--muted);
}
.footer-links a{
  text-decoration:underline;
}

:root{
  --header-offset: 70px; /* 固定ヘッダーの高さに合わせて調整 */
}

/* アンカーで飛んだとき、見出しがヘッダーに隠れないようにする */
:where(h1,h2,h3,h4,h5,h6,[id]){
  scroll-margin-top: var(--header-offset);
}

/* index クリニック紹介：スマホでは右（スライダー）を上に */
@media (max-width: 768px){
  #clinic .grid-2{
    display:flex;
    flex-direction:column;
  }
  #clinic .grid-2 > .card:nth-child(1){ order: 2; } /* 特徴 */
  #clinic .grid-2 > .card:nth-child(2){ order: 1; } /* スライダー */
}

/* iOS Safari 対策：診療時間表の曜日ヘッダーを回転させない */
@supports (-webkit-touch-callout: none) {
  @media (max-width: 768px) {
    .hours-table thead th:not(.time){
      writing-mode: horizontal-tb;
      -webkit-writing-mode: horizontal-tb;
      text-orientation: mixed;
      -webkit-text-orientation: mixed;
    }
  }
}
