/*
Theme Name: ADC New
Theme URI: https://new.a-dc.jp/
Author: Asahigaoka Dental Clinic
Description: 旭ヶ丘歯科クリニック新サイト用オリジナルテーマ
Version: 0.48.0
Text Domain: adc-new
*/

/* =========================================================
   ADC NEW / BASE + HOME
   =========================================================
   この style.css は「全体共通」と「トップページ前半」のCSSです。

   編集先の目安:
   - 共通・トップページ     : style.css
   - 下層ページ共通         : assets/css/content-pages.css
   - 受診中の皆様へ         : assets/css/current-patients.css
   - アクセス               : assets/css/access.css
   - ヘッダー               : assets/css/header.css
   - カレンダー             : assets/css/calendar.css

   重要:
   カレンダーの見た目は calendar.css が最終決定です。
   style.css に新しいカレンダー上書きを追加しないでください。
   ========================================================= */

*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:#26332f;background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Noto Sans JP","Yu Gothic",YuGothic,Meiryo,sans-serif;line-height:1.75}a{color:#18745b;text-decoration:none}img{max-width:100%;height:auto}.adc-wrap{width:min(1120px,calc(100% - 40px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);border-bottom:1px solid #e6ece9}.header-inner{min-height:76px;display:flex;align-items:center;gap:28px}.brand{margin-right:auto}.brand-name{display:block;color:#175d4b;font-size:22px;font-weight:700;line-height:1.25}.brand-sub{display:block;color:#75817d;font-size:11px;letter-spacing:.08em}.main-nav{display:flex;gap:22px;font-size:14px}.header-tel{font-weight:700;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:999px;background:#17795e;color:#fff;font-weight:700}.btn-outline{background:#fff;color:#17795e;border:1px solid #17795e}.hero{background:linear-gradient(90deg,#f3fbf7 0%,#f3fbf7 54%,#eef5f2 54%)}.hero-inner{min-height:480px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px}.eyebrow{color:#26765f;font-size:13px;font-weight:700;letter-spacing:.12em}.hero h1{margin:10px 0 18px;color:#164d40;font-size:clamp(34px,4.2vw,58px);line-height:1.25}.hero p{max-width:590px;margin:0 0 26px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-visual{height:360px;border-radius:28px;background:linear-gradient(135deg,#d8eee5,#eef8f4);display:flex;align-items:center;justify-content:center;color:#4e7d6f;text-align:center;padding:30px;box-shadow:0 16px 40px rgba(32,94,75,.10)}.section{padding:72px 0}.section-soft{background:#f5faf7}.section-title{margin:0 0 30px;color:#164d40;font-size:30px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.card{background:#fff;border:1px solid #e0ebe6;border-radius:22px;padding:28px;box-shadow:0 8px 24px rgba(36,86,70,.05)}.card h2,.card h3{margin-top:0;color:#195846}.hours{width:100%;border-collapse:collapse}.hours th,.hours td{padding:9px 8px;border-bottom:1px solid #e7ecea;text-align:center}.hours th:first-child,.hours td:first-child{text-align:left}.notice-list{list-style:none;margin:0;padding:0}.notice-list li{padding:13px 0;border-bottom:1px solid #e7ecea}.notice-date{display:inline-block;width:110px;color:#77817e;font-size:13px}.feature{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}.feature-visual{min-height:330px;border-radius:28px;background:#e6f3ed;display:flex;align-items:center;justify-content:center;color:#4f786c;text-align:center;padding:30px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{display:block;padding:25px;border:1px solid #dfeae5;border-radius:20px;background:#fff;color:inherit}.service-card strong{display:block;color:#195846;font-size:18px;margin-bottom:6px}.first-visit{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}.steps{counter-reset:step;list-style:none;padding:0;margin:0}.steps li{counter-increment:step;padding:12px 0 12px 46px;position:relative}.steps li:before{content:counter(step);position:absolute;left:0;top:9px;width:30px;height:30px;border-radius:50%;background:#dff1e9;color:#17634f;display:grid;place-items:center;font-weight:700}.access-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:28px}.map-placeholder{min-height:300px;border-radius:22px;background:#e9efec;display:flex;align-items:center;justify-content:center;color:#65736e;text-align:center}.site-footer{background:#174d40;color:#e9f3ef;padding:48px 0}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:30px}.site-footer a{color:#fff}.footer-copy{margin-top:30px;padding-top:20px;border-top:1px solid rgba(255,255,255,.18);font-size:12px}.content-main{padding:56px 0;min-height:55vh}.content-main article{max-width:850px}.content-main h1{color:#164d40}.mobile-contact{display:none}
@media(max-width:900px){.main-nav{display:none}.hero-inner,.feature,.first-visit,.access-grid{grid-template-columns:1fr}.hero{background:#f3fbf7}.hero-inner{padding:46px 0}.hero-visual{height:280px}.quick-grid{grid-template-columns:1fr}.services{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.adc-wrap{width:calc(100% - 28px)}.site-header{position:static}.header-inner{min-height:68px}.brand-name{font-size:18px}.header-tel,.header-inner>.btn{display:none}.hero-inner{min-height:auto;gap:30px}.hero h1{font-size:36px}.hero-visual{height:220px;border-radius:20px}.section{padding:50px 0}.section-title{font-size:25px}.services{grid-template-columns:1fr}.card{padding:22px}.notice-date{display:block;width:auto}.footer-grid{grid-template-columns:1fr}.mobile-contact{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:30;gap:8px}.mobile-contact a{flex:1;min-height:50px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:#17795e;color:#fff;font-weight:700;box-shadow:0 5px 18px rgba(0,0,0,.18)}body{padding-bottom:72px}}

.adc-calendar{max-width:820px;margin:auto}.adc-hours{font-size:13px}

.hero-v4{background:#f3f8f5}.hero-v4 .hero-inner{min-height:560px;grid-template-columns:.92fr 1.08fr}.hero-copy{padding:35px 0}.hero-lead{font-size:17px;color:#485a54}.hero-meta{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.hero-meta span{padding:7px 12px;border-radius:999px;background:#fff;border:1px solid #dbe8e2;font-size:13px}.hero-photo{height:430px}.photo-placeholder{min-height:300px;border-radius:28px;background:linear-gradient(145deg,#d6e9e0,#edf5f1);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#4c7669;padding:28px}.photo-placeholder span{font-size:12px;margin-top:6px}.utility-section{position:relative;margin-top:-38px;z-index:3;padding-bottom:28px}.utility-grid{display:grid;grid-template-columns:.95fr 1.05fr;background:#fff;border-radius:24px;box-shadow:0 16px 42px rgba(34,79,66,.12);overflow:hidden}.utility-hours,.utility-news{padding:30px 34px}.utility-news{border-left:1px solid #e3ebe7}.utility-grid h2{margin:2px 0 16px;color:#174f40;font-size:24px}.section-kicker{font-size:11px;font-weight:800;letter-spacing:.16em;color:#2c7b64}.utility-note{font-size:11px;color:#6e7a76}.philosophy{padding-top:88px}.feature-photo{min-height:390px}.text-link{display:inline-block;margin-top:16px;font-weight:700}.services-v4 .service-card{min-height:190px}.service-no{display:block;font-size:11px;color:#82a398;margin-bottom:18px}.calendar-layout{display:grid;grid-template-columns:.32fr .68fr;gap:44px;align-items:start}.calendar-card{background:#fff;border:1px solid #e0ebe6;border-radius:24px;padding:28px;box-shadow:0 10px 30px rgba(36,86,70,.06)}.contact-panel{border-radius:28px;background:#195846;color:#fff;min-height:260px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px}.contact-panel>a{font-size:34px;color:#fff;font-weight:800;margin:8px 0}.contact-panel small{opacity:.8}.access-info h3{color:#195846;font-size:22px}.header-contact{display:flex;flex-direction:column;line-height:1.25}.header-contact small{font-size:10px;color:#71807b}.header-contact .header-tel{font-size:17px;color:#195846}.header-access{min-height:40px;padding:0 18px}
@media(max-width:900px){.hero-v4 .hero-inner{grid-template-columns:1fr;padding-bottom:72px}.hero-photo{height:330px}.utility-section{margin-top:-30px}.utility-grid{grid-template-columns:1fr}.utility-news{border-left:0;border-top:1px solid #e3ebe7}.calendar-layout{grid-template-columns:1fr}.header-contact{display:none}}
@media(max-width:600px){.hero-v4 .hero-inner{padding-top:34px}.hero-copy{padding:0}.hero-photo{height:250px}.utility-section{margin-top:-24px}.utility-hours,.utility-news{padding:24px 20px}.philosophy{padding-top:55px}.feature-photo{min-height:260px}.calendar-card{padding:16px}.contact-panel{min-height:210px}.contact-panel>a{font-size:28px}.header-access{display:none}}

/* v5: actual clinic exterior hero */
.hero-v4 .hero-inner{
  grid-template-columns:minmax(360px,.82fr) minmax(520px,1.18fr);
  gap:52px;
  align-items:center;
}
.hero-clinic-photo{
  position:relative;
  overflow:hidden;
  width:100%;
  aspect-ratio:945 / 260;
  min-height:300px;
  border-radius:28px;
  background:#dcebe5;
  box-shadow:0 18px 42px rgba(25,88,70,.12);
}
.hero-clinic-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}
@media(max-width:1100px){
  .hero-v4 .hero-inner{grid-template-columns:.9fr 1.1fr;gap:34px}
  .hero-clinic-photo{aspect-ratio:1.75 / 1;min-height:0}
  .hero-clinic-photo img{object-position:67% center}
}
@media(max-width:900px){
  .hero-v4 .hero-inner{grid-template-columns:1fr;gap:28px}
  .hero-clinic-photo{aspect-ratio:945 / 300;height:auto;min-height:0}
  .hero-clinic-photo img{object-position:center center}
}
@media(max-width:600px){
  .hero-clinic-photo{aspect-ratio:1.55 / 1;border-radius:20px}
  .hero-clinic-photo img{object-position:70% center}
}

/* v6: new hero direction */
.hero-v6{
  position:relative;
  min-height:570px;
  overflow:hidden;
  background:#eaf3ee;
}
.hero-v6-bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(244,249,246,.98) 0%,rgba(244,249,246,.92) 30%,rgba(244,249,246,.54) 52%,rgba(244,249,246,.08) 78%),
    radial-gradient(circle at 84% 30%,rgba(255,255,255,.8),transparent 25%),
    linear-gradient(135deg,#dfeee6 0%,#f6f7ec 48%,#cfe4d6 100%);
}
.hero-v6-bg:after{
  content:"";
  position:absolute;
  right:-4%;
  bottom:-30%;
  width:47%;
  height:100%;
  border-radius:50% 0 0 0;
  background:radial-gradient(ellipse at center,rgba(78,145,100,.28),rgba(78,145,100,.08) 48%,transparent 70%);
  filter:blur(8px);
}
.hero-v6-inner{
  position:relative;
  z-index:1;
  min-height:570px;
  display:flex;
  align-items:center;
}
.hero-v6-copy{width:min(660px,54%);padding:58px 0 92px}
.hero-v6 h1{
  margin:0 0 16px;
  color:#145744;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(56px,5.4vw,88px);
  line-height:.93;
  letter-spacing:.015em;
  font-weight:700;
}
.hero-v6 h1 span{display:block}
.hero-jp{margin:0 0 18px;color:#145744;font-size:24px;font-weight:800;letter-spacing:.04em}
.hero-v6 .hero-lead{max-width:540px;font-size:16px;line-height:1.9;color:#4e5d58}
.hero-v6 .hero-meta{margin:22px 0 18px}
.utility-section{margin-top:-44px}
@media(max-width:900px){
  .hero-v6{min-height:540px}
  .hero-v6-inner{min-height:540px}
  .hero-v6-copy{width:72%;padding:50px 0 88px}
  .hero-v6-bg{background:linear-gradient(90deg,rgba(244,249,246,.98),rgba(244,249,246,.76) 65%,rgba(220,239,228,.38)),linear-gradient(135deg,#dfeee6,#f6f7ec 50%,#cfe4d6)}
}
@media(max-width:600px){
  .hero-v6{min-height:520px}
  .hero-v6-inner{min-height:520px;align-items:flex-start}
  .hero-v6-copy{width:100%;padding:52px 0 86px}
  .hero-v6 h1{font-size:clamp(45px,14vw,64px)}
  .hero-jp{font-size:20px}
  .hero-v6 .hero-lead{font-size:15px}
  .hero-v6-bg{background:linear-gradient(180deg,rgba(244,249,246,.98),rgba(236,247,240,.88) 70%,rgba(205,229,215,.7))}
  .hero-v6-bg:after{width:85%;height:60%;right:-20%;bottom:-25%}
  .utility-section{margin-top:-34px}
}

/* v7: responsive hero balance */
.hero-v6-copy{
  width:min(720px,60%);
}
.hero-v6 h1{
  font-size:clamp(52px,5vw,80px);
  line-height:.94;
}
@media (min-width:1200px){
  .hero-v6-copy{width:min(760px,58%)}
}
@media (max-width:1000px){
  .hero-v6{min-height:500px}
  .hero-v6-inner{min-height:500px}
  .hero-v6-copy{width:76%;padding:44px 0 78px}
  .hero-v6 h1{
    font-size:clamp(48px,7vw,66px);
    line-height:.96;
  }
  .hero-jp{font-size:22px}
}
@media (max-width:700px){
  .hero-v6{min-height:auto}
  .hero-v6-inner{min-height:auto}
  .hero-v6-copy{
    width:100%;
    padding:48px 0 76px;
  }
  .hero-v6 h1{
    font-size:clamp(38px,11.3vw,54px);
    line-height:.94;
    letter-spacing:-.01em;
    white-space:nowrap;
    margin-bottom:20px;
  }
  .hero-v6 h1 span{display:block}
  .hero-jp{
    font-size:19px;
    line-height:1.55;
    margin-bottom:18px;
  }
  .hero-v6 .hero-lead{
    font-size:14px;
    line-height:1.8;
    max-width:34em;
  }
  .hero-v6 .hero-meta{
    gap:8px;
    margin:20px 0 18px;
  }
  .hero-v6 .hero-meta span{
    font-size:13px;
    padding:7px 10px;
  }
  .hero-v6 .hero-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    max-width:480px;
  }
  .hero-v6 .hero-actions .btn{
    width:100%;
    padding-left:10px;
    padding-right:10px;
    text-align:center;
    white-space:nowrap;
    font-size:13px;
  }
}
@media (max-width:430px){
  .hero-v6-copy{padding:40px 0 68px}
  .hero-v6 h1{
    font-size:clamp(34px,10.7vw,46px);
    margin-bottom:18px;
  }
  .hero-jp{font-size:18px}
  .hero-v6 .hero-lead br{display:none}
  .hero-v6 .hero-actions{
    grid-template-columns:1fr;
    max-width:none;
  }
  .hero-v6 .hero-actions .btn{
    min-height:48px;
    font-size:14px;
  }
  .utility-section{margin-top:-28px}
}

/* v8: centered brand hero */
.hero-v6{
  min-height:590px;
}
.hero-v6-bg{
  background:
    linear-gradient(rgba(244,249,246,.58),rgba(244,249,246,.58)),
    radial-gradient(circle at 18% 38%,rgba(86,155,102,.32),transparent 27%),
    radial-gradient(circle at 84% 60%,rgba(101,163,113,.28),transparent 30%),
    linear-gradient(135deg,#dceee2 0%,#f8f6e9 52%,#d1e8d7 100%);
}
.hero-v6-bg:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 9% 42%,rgba(50,133,75,.22),transparent 16%),
    radial-gradient(ellipse at 92% 35%,rgba(44,126,70,.18),transparent 18%);
  filter:blur(12px);
}
.hero-v6-bg:after{
  width:38%;
  height:80%;
  right:-7%;
  bottom:-22%;
  opacity:.65;
}
.hero-v6-inner{
  min-height:590px;
  justify-content:center;
  text-align:center;
}
.hero-v6-copy{
  width:min(880px,86%);
  padding:72px 0 105px;
  margin:0 auto;
}
.hero-v6 h1{
  font-size:clamp(62px,6.2vw,94px);
  line-height:.88;
  letter-spacing:-.02em;
  margin-bottom:24px;
}
.hero-v6 h1 span{display:block}
.hero-jp{
  font-size:25px;
  margin-bottom:20px;
}
.hero-v6 .hero-lead{
  max-width:650px;
  margin-left:auto;
  margin-right:auto;
}
.hero-v6 .hero-meta,
.hero-v6 .hero-actions{
  justify-content:center;
}
.hero-v6 .hero-actions{
  display:flex;
  gap:14px;
  max-width:650px;
  margin-left:auto;
  margin-right:auto;
}
.utility-section{margin-top:-46px}

@media(max-width:900px){
  .hero-v6,.hero-v6-inner{min-height:550px}
  .hero-v6-copy{width:92%;padding:62px 0 98px}
  .hero-v6 h1{font-size:clamp(54px,8.4vw,72px)}
}
@media(max-width:600px){
  .hero-v6,.hero-v6-inner{min-height:auto}
  .hero-v6-copy{width:100%;padding:52px 0 78px}
  .hero-v6 h1{
    font-size:clamp(42px,12.3vw,58px);
    line-height:.9;
    white-space:normal;
    margin-bottom:22px;
  }
  .hero-jp{font-size:19px}
  .hero-v6 .hero-lead{font-size:14px;line-height:1.8}
  .hero-v6 .hero-meta{justify-content:center}
  .hero-v6 .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    max-width:360px;
  }
  .hero-v6 .hero-actions .btn{
    width:100%;
    min-height:48px;
  }
  .utility-section{margin-top:-30px}
}


/* =========================================
   v9 Hero photo + compact patient info
========================================= */

.hero-v6-bg {
  background-image:
    linear-gradient(rgba(247, 251, 248, .34), rgba(247, 251, 248, .38)),
    url("./assets/images/hero-bg.png") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}
.hero-v6-bg::before,
.hero-v6-bg::after {
  display: none !important;
}
.hero-v6-copy,
.hero-v6 .hero-jp,
.hero-v6 .hero-lead {
  text-align: center !important;
}
.hero-v6 .hero-jp {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.clinic-info-section {
  position: relative;
  z-index: 3;
  margin-top: -48px;
  padding-bottom: 82px;
}
.clinic-info-card {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(600px, 2fr);
  overflow: hidden;
  background: rgba(255,255,255,.97);
  border: 1px solid rgba(21,91,68,.08);
  border-radius: 28px;
  box-shadow: 0 18px 55px rgba(28,77,61,.10);
}
.clinic-news,
.clinic-schedule {
  padding: 30px 32px;
}
.clinic-news {
  border-right: 1px solid #e6eee9;
}
.clinic-info-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.clinic-info-heading .eyebrow {
  display: block;
  margin-bottom: 4px;
  color: #238265;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
}
.clinic-info-heading h2 {
  margin: 0;
  color: #155b44;
  font-size: 23px;
  line-height: 1.3;
}
.clinic-news-list {
  border-top: 1px solid #e4ece7;
}
.clinic-news-item {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 12px;
  padding: 15px 0;
  border-bottom: 1px solid #e4ece7;
  color: #263b34;
  text-decoration: none;
  line-height: 1.55;
}
.clinic-news-item time {
  color: #89958f;
  font-size: 12px;
}
.clinic-news-item span {
  font-size: 14px;
  font-weight: 600;
}
.clinic-news-item:hover span {
  color: #13815f;
}
.clinic-news-empty {
  color: #718079;
  font-size: 14px;
}

.clinic-schedule-body {
  display: grid;
  grid-template-columns: minmax(350px, 1.35fr) minmax(260px, .9fr);
  gap: 28px;
  align-items: stretch;
}
.clinic-calendar {
  min-width: 0;
}
/* The time/color panel at right is the legend, so hide plugin legend beneath calendar. */
.clinic-calendar .adc-calendar-legend,
.clinic-calendar .adc-legend,
.clinic-calendar [class*="legend"] {
  display: none !important;
}
.clinic-hours-legend {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.clinic-hours-row {
  display: grid;
  grid-template-columns: 34px minmax(120px, 1fr) minmax(105px, auto);
  gap: 13px;
  align-items: center;
  min-height: 68px;
  padding: 10px 0;
  border-bottom: 1px solid #e4ece7;
  color: #263b34;
}
.clinic-hours-row:last-child {
  border-bottom: 0;
}
.clinic-hours-color {
  width: 30px;
  height: 30px;
  border-radius: 9px;
}
.clinic-hours-row strong {
  font-size: 14px;
}
.clinic-hours-row strong small {
  font-size: 11px;
  font-weight: 600;
}
.clinic-hours-row > span:last-child {
  font-size: 14px;
  line-height: 1.65;
}
.clinic-hours-weekday .clinic-hours-color {
  background: #dff3e6;
}
.clinic-hours-saturday .clinic-hours-color {
  background: #dceffc;
}
.clinic-hours-thursday .clinic-hours-color {
  background: #fff0ae;
}
.clinic-hours-holiday .clinic-hours-color {
  background: #ffdede;
}
.clinic-hours-holiday > span:last-child,
.clinic-hours-thursday > span:last-child {
  font-weight: 700;
  color: #d85555;
}

@media (max-width: 1050px) {
  .clinic-info-card {
    grid-template-columns: 1fr;
  }
  .clinic-news {
    border-right: 0;
    border-bottom: 1px solid #e6eee9;
  }
}
@media (max-width: 760px) {
  .clinic-info-section {
    margin-top: -28px;
    padding-bottom: 58px;
  }
  .clinic-info-card {
    border-radius: 22px;
  }
  .clinic-news,
  .clinic-schedule {
    padding: 24px 20px;
  }
  .clinic-schedule-body {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .clinic-news-item {
    grid-template-columns: 78px 1fr;
    gap: 8px;
    padding: 12px 0;
  }
  .clinic-hours-row {
    grid-template-columns: 30px minmax(100px, 1fr) minmax(98px, auto);
    min-height: 58px;
  }
  .clinic-hours-color {
    width: 26px;
    height: 26px;
  }
}
@media (max-width: 430px) {
  .clinic-info-heading h2 {
    font-size: 21px;
  }
  .clinic-news-item {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .clinic-hours-row {
    grid-template-columns: 26px 1fr;
  }
  .clinic-hours-row > span:last-child {
    grid-column: 2;
    padding-bottom: 5px;
  }
}


/* =========================================
   v10 Clinic information readability
========================================= */

/* お知らせと診療日・時間の境界を明確に */
.clinic-news {
  border-right: 2px solid #d4e4dc !important;
  background: #fff;
}
.clinic-schedule {
  background: #fbfdfc;
}

/* お知らせ：4件でパネルの高さを使い、日付→内容の2段 */
.clinic-news-list {
  display: grid;
  grid-template-rows: repeat(4, minmax(92px, 1fr));
}
.clinic-news-item {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  gap: 7px !important;
  min-height: 92px;
  padding: 14px 2px !important;
}
.clinic-news-item time {
  display: block;
  width: 100%;
  font-size: 12px;
  line-height: 1.2;
  letter-spacing: .02em;
}
.clinic-news-item span {
  display: block;
  width: 100%;
  font-size: 14px;
  line-height: 1.55;
}

/* 診療日・時間：カレンダーと凡例の高さを揃える */
.clinic-schedule-body {
  align-items: stretch !important;
}
.clinic-calendar {
  display: flex;
  flex-direction: column;
  justify-content: stretch;
}

/* プラグインの月表示を強調 */
.clinic-calendar .adc-calendar-title,
.clinic-calendar .adc-calendar-month,
.clinic-calendar [class*="month-title"],
.clinic-calendar [class*="calendar-month"] {
  color: #125d46 !important;
  font-size: 21px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: .04em;
}

/* 月移動部分そのものにも余白を与える */
.clinic-calendar .adc-calendar-nav,
.clinic-calendar [class*="calendar-nav"] {
  min-height: 44px;
  align-items: center;
}

/* 右側の診療時間：4区分で縦枠を均等に使う */
.clinic-hours-legend {
  display: grid !important;
  grid-template-rows: repeat(4, 1fr);
  min-height: 100%;
  border-left: 1px solid #e1ebe6;
  padding-left: 26px;
}
.clinic-hours-row {
  display: grid !important;
  grid-template-columns: 38px 1fr !important;
  grid-template-rows: auto auto;
  align-content: center;
  column-gap: 14px !important;
  row-gap: 7px !important;
  min-height: 0 !important;
  padding: 15px 0 !important;
}
.clinic-hours-color {
  grid-row: 1 / 3;
  align-self: center;
  width: 32px !important;
  height: 32px !important;
}
.clinic-hours-row strong {
  grid-column: 2;
  display: block;
  font-size: 14px !important;
  line-height: 1.35;
}
.clinic-hours-row > span:last-child {
  grid-column: 2 !important;
  display: block;
  padding: 0 !important;
  color: #172f27;
  font-size: 17px !important;
  font-weight: 800;
  line-height: 1.45 !important;
  letter-spacing: .01em;
}
.clinic-hours-row strong small {
  display: inline;
  font-size: 11px !important;
}
.clinic-hours-thursday > span:last-child,
.clinic-hours-holiday > span:last-child {
  color: #d84d4d !important;
  font-size: 17px !important;
}

/* カレンダーの日付も少し読みやすく */
.clinic-calendar table {
  width: 100%;
}
.clinic-calendar th,
.clinic-calendar td {
  font-size: 14px;
}

/* タブレット以下では区切りを横線へ */
@media (max-width: 1050px) {
  .clinic-news {
    border-right: 0 !important;
    border-bottom: 2px solid #d4e4dc !important;
  }
  .clinic-news-list {
    grid-template-rows: repeat(4, minmax(78px, auto));
  }
  .clinic-news-item {
    min-height: 78px;
  }
}

/* スマホ：情報量は維持しつつ詰めすぎない */
@media (max-width: 760px) {
  .clinic-hours-legend {
    border-left: 0;
    border-top: 1px solid #e1ebe6;
    padding: 8px 0 0;
  }
  .clinic-hours-row {
    min-height: 74px !important;
  }
  .clinic-hours-row > span:last-child {
    font-size: 16px !important;
  }
  .clinic-calendar .adc-calendar-title,
  .clinic-calendar .adc-calendar-month,
  .clinic-calendar [class*="month-title"],
  .clinic-calendar [class*="calendar-month"] {
    font-size: 20px !important;
  }
}


/* =========================================
   v11 Calendar / News refinement
========================================= */

/* NEWS: 日付・タイトルを一段読みやすく */
.clinic-news-item time {
  font-size: 14px !important;
  font-weight: 700;
  color: #71827a !important;
}
.clinic-news-item span {
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
}

/* 月表示：プラグイン側の構造差を含め強く上書き */
.clinic-calendar .adc-calendar-header,
.clinic-calendar .adc-calendar-nav,
.clinic-calendar [class*="calendar-header"],
.clinic-calendar [class*="calendar-nav"] {
  min-height: 58px !important;
}
.clinic-calendar .adc-calendar-title,
.clinic-calendar .adc-calendar-month,
.clinic-calendar [class*="month-title"],
.clinic-calendar [class*="calendar-month"],
.clinic-calendar caption {
  font-size: 27px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  color: #0f5d45 !important;
  letter-spacing: .045em !important;
}

/* PC: 右側凡例は「曜日見出しより下＝日付グリッド部分」と高さを合わせる */
@media (min-width: 1051px) {
  .clinic-schedule-body {
    grid-template-columns: minmax(390px, 1.35fr) minmax(285px, .9fr);
    gap: 28px;
  }
  .clinic-hours-legend {
    /* 月ナビ + 曜日行ぶん下げて、日付セル群と視覚的に揃える */
    margin-top: 96px;
    min-height: 0 !important;
    height: calc(100% - 96px);
    grid-template-columns: 1fr !important;
    grid-template-rows: repeat(4, 1fr) !important;
    align-self: stretch;
    padding-left: 26px;
  }
  .clinic-hours-row {
    grid-template-columns: 36px 1fr !important;
    grid-template-rows: auto auto !important;
    min-height: 0 !important;
    padding: 8px 0 !important;
    row-gap: 3px !important;
  }
  .clinic-hours-row > span:last-child {
    font-size: 17px !important;
  }
}

/* Tablet / smartphone:
   凡例を 2列 x 2段にして間延びを防ぐ */
@media (max-width: 1050px) {
  .clinic-hours-legend {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, auto) !important;
    gap: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    margin-top: 0 !important;
    padding: 8px 0 0 !important;
    border-left: 0 !important;
    border-top: 1px solid #e1ebe6;
  }
  .clinic-hours-row {
    grid-template-columns: 28px 1fr !important;
    grid-template-rows: auto auto !important;
    min-height: 72px !important;
    padding: 10px 12px !important;
    column-gap: 10px !important;
    row-gap: 2px !important;
  }
  .clinic-hours-row:nth-child(odd) {
    border-right: 1px solid #e4ece7;
  }
  .clinic-hours-color {
    width: 24px !important;
    height: 24px !important;
  }
  .clinic-hours-row strong {
    font-size: 13px !important;
  }
  .clinic-hours-row strong small {
    display: inline !important;
    font-size: 10px !important;
  }
  .clinic-hours-row > span:last-child {
    grid-column: 2 !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
  }
}

@media (max-width: 600px) {
  .clinic-news-list {
    grid-template-rows: none !important;
  }
  .clinic-news-item {
    min-height: 0 !important;
    padding: 14px 0 !important;
  }
  .clinic-news-item time {
    font-size: 13px !important;
  }
  .clinic-news-item span {
    font-size: 15px !important;
  }

  .clinic-calendar .adc-calendar-header,
  .clinic-calendar .adc-calendar-nav,
  .clinic-calendar [class*="calendar-header"],
  .clinic-calendar [class*="calendar-nav"] {
    min-height: 52px !important;
  }
  .clinic-calendar .adc-calendar-title,
  .clinic-calendar .adc-calendar-month,
  .clinic-calendar [class*="month-title"],
  .clinic-calendar [class*="calendar-month"],
  .clinic-calendar caption {
    font-size: 24px !important;
  }

  .clinic-hours-row {
    min-height: 68px !important;
    padding: 9px 8px !important;
  }
  .clinic-hours-row strong {
    font-size: 12px !important;
  }
  .clinic-hours-row > span:last-child {
    font-size: 14px !important;
  }
}


/* =========================================
   v12 Approved calendar/hour-block design
========================================= */

/* Month becomes the dominant label */
.clinic-calendar .adc-calendar-title,
.clinic-calendar .adc-calendar-month,
.clinic-calendar [class*="month-title"],
.clinic-calendar [class*="calendar-month"],
.clinic-calendar caption {
  font-size: 34px !important;
  font-weight: 900 !important;
  color: #0b5943 !important;
  line-height: 1.1 !important;
  letter-spacing: .035em !important;
  padding-top: 4px !important;
  padding-bottom: 12px !important;
}

/* Whole legend rows are now color blocks */
.clinic-hours-legend {
  gap: 10px !important;
}
.clinic-hours-row {
  border: 1px solid transparent !important;
  border-radius: 13px;
  padding: 12px 16px !important;
  grid-template-columns: 1fr 1fr !important;
  grid-template-rows: auto !important;
  column-gap: 12px !important;
  row-gap: 0 !important;
}
.clinic-hours-row strong,
.clinic-hours-row > span:last-child {
  grid-column: auto !important;
  align-self: center;
  margin: 0;
}
.clinic-hours-row strong {
  font-size: 15px !important;
  font-weight: 800 !important;
}
.clinic-hours-row > span:last-child {
  font-size: 17px !important;
  font-weight: 800 !important;
  text-align: right;
}
.clinic-hours-color { display:none !important; }

.clinic-hours-weekday {
  background:#edf8f1;
  border-color:#b9dfc8 !important;
}
.clinic-hours-saturday {
  background:#e9f5fd;
  border-color:#bddff4 !important;
}
.clinic-hours-closed {
  background:#fff0f0;
  border-color:#f3c1c1 !important;
}
.clinic-hours-closed strong,
.clinic-hours-closed > span:last-child {
  color:#d74444 !important;
}
.clinic-hours-holiday {
  background:#fff8dc;
  border-color:#ecd16d !important;
}
.clinic-hours-holiday strong {
  color:#9b7410 !important;
}
.clinic-hours-holiday > span:last-child {
  color:#725f26 !important;
  font-size:13px !important;
}

/* Calendar color mapping:
   weekdays green, Saturday blue, Thu/Sun closed red, holidays yellow.
   These selectors intentionally cover common plugin class names. */
.clinic-calendar td:nth-child(7):not(.adc-holiday):not(.holiday),
.clinic-calendar .saturday,
.clinic-calendar .sat,
.clinic-calendar .adc-saturday {
  background:#e9f5fd !important;
  color:#1675cf !important;
}
.clinic-calendar td:nth-child(1):not(.adc-holiday):not(.holiday),
.clinic-calendar td:nth-child(5):not(.adc-holiday):not(.holiday),
.clinic-calendar .sunday,
.clinic-calendar .sun,
.clinic-calendar .thursday,
.clinic-calendar .thu,
.clinic-calendar .adc-sunday,
.clinic-calendar .adc-thursday,
.clinic-calendar .closed,
.clinic-calendar .adc-closed {
  background:#fff0f0 !important;
  color:#d74444 !important;
}
.clinic-calendar .holiday,
.clinic-calendar .adc-holiday,
.clinic-calendar [class*="holiday"] {
  background:#fff2b8 !important;
  color:#9b7410 !important;
}

/* PC: blocks sit beside date grid, below month + weekday header */
@media (min-width:1051px) {
  .clinic-hours-legend {
    margin-top: 104px !important;
    height: calc(100% - 104px) !important;
    grid-template-rows:repeat(4,1fr) !important;
    padding-left:22px !important;
    border-left:1px solid #e1ebe6 !important;
  }
  .clinic-hours-row {
    min-height:0 !important;
  }
}

/* Tablet/mobile: 2 x 2 compact blocks */
@media (max-width:1050px) {
  .clinic-hours-legend {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:repeat(2,auto) !important;
    gap:8px !important;
    border-top:0 !important;
    padding-top:4px !important;
  }
  .clinic-hours-row {
    min-height:70px !important;
    padding:10px 12px !important;
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    row-gap:4px !important;
  }
  .clinic-hours-row strong,
  .clinic-hours-row > span:last-child {
    grid-column:1 !important;
    text-align:left !important;
  }
  .clinic-hours-row > span:last-child {
    font-size:15px !important;
  }
  .clinic-hours-holiday > span:last-child {
    font-size:11px !important;
  }
}
@media(max-width:600px){
  .clinic-calendar .adc-calendar-title,
  .clinic-calendar .adc-calendar-month,
  .clinic-calendar [class*="month-title"],
  .clinic-calendar [class*="calendar-month"],
  .clinic-calendar caption {
    font-size:29px !important;
  }
  .clinic-hours-row {
    min-height:64px !important;
  }
}


/* =========================================
   v13 Put month navigation on title line
   (visual relocation only; plugin controls remain functional)
========================================= */

@media (min-width: 1051px) {
  .clinic-schedule {
    position: relative;
  }

  /* reserve right side of title row for calendar month navigation */
  .clinic-schedule .schedule-heading {
    min-height: 58px;
    margin-bottom: 8px !important;
    padding-right: 390px;
    align-items: center;
  }

  /* The plugin calendar stays in normal flow, but its header/nav is lifted
     into the schedule title row. */
  .clinic-calendar {
    position: relative;
  }

  .clinic-calendar .adc-calendar-header,
  .clinic-calendar .adc-calendar-nav,
  .clinic-calendar [class*="calendar-header"],
  .clinic-calendar [class*="calendar-nav"] {
    position: absolute !important;
    z-index: 4;
    top: -66px !important;
    right: 0 !important;
    width: min(370px, 52vw) !important;
    min-height: 54px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  .clinic-calendar .adc-calendar-title,
  .clinic-calendar .adc-calendar-month,
  .clinic-calendar [class*="month-title"],
  .clinic-calendar [class*="calendar-month"],
  .clinic-calendar caption {
    font-size: 31px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    padding: 0 14px !important;
    margin: 0 !important;
    white-space: nowrap;
  }

  /* Calendar itself begins immediately with weekday headings. */
  .clinic-schedule-body {
    align-items: stretch !important;
  }

  /* With the extra month row gone, legend only skips the weekday header. */
  .clinic-hours-legend {
    margin-top: 42px !important;
    height: calc(100% - 42px) !important;
    padding-left: 22px !important;
  }
}

/* Tablet: keep title/month compact without creating a tall blank band */
@media (min-width: 601px) and (max-width: 1050px) {
  .clinic-schedule .schedule-heading {
    margin-bottom: 6px !important;
  }
  .clinic-calendar .adc-calendar-header,
  .clinic-calendar .adc-calendar-nav,
  .clinic-calendar [class*="calendar-header"],
  .clinic-calendar [class*="calendar-nav"] {
    min-height: 48px !important;
    margin-bottom: 4px !important;
  }
  .clinic-calendar .adc-calendar-title,
  .clinic-calendar .adc-calendar-month,
  .clinic-calendar [class*="month-title"],
  .clinic-calendar [class*="calendar-month"],
  .clinic-calendar caption {
    font-size: 27px !important;
  }
}

/* Smartphone: compact month controls, then calendar + 2x2 legend */
@media (max-width: 600px) {
  .clinic-schedule .schedule-heading {
    margin-bottom: 4px !important;
  }
  .clinic-calendar .adc-calendar-header,
  .clinic-calendar .adc-calendar-nav,
  .clinic-calendar [class*="calendar-header"],
  .clinic-calendar [class*="calendar-nav"] {
    min-height: 44px !important;
    margin-bottom: 2px !important;
  }
  .clinic-calendar .adc-calendar-title,
  .clinic-calendar .adc-calendar-month,
  .clinic-calendar [class*="month-title"],
  .clinic-calendar [class*="calendar-month"],
  .clinic-calendar caption {
    font-size: 25px !important;
    padding-top: 0 !important;
    padding-bottom: 4px !important;
  }
}


/* =========================================
   v14 exact ADC Calendar integration
========================================= */

/* JS moves the actual plugin header here on desktop. */
.schedule-heading {
  position: relative;
}
.schedule-heading .adc-calendar__head {
  margin: 0 0 0 auto !important;
}
.schedule-heading .adc-calendar__title {
  font-size: 32px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: #0b5943 !important;
  letter-spacing: .03em !important;
  white-space: nowrap;
}
.schedule-heading .adc-calendar__nav {
  display: flex !important;
  gap: 6px !important;
}
.schedule-heading .adc-calendar__nav a {
  padding: 7px 12px !important;
}

/* Hide duplicated plugin legend: right blocks are the legend. */
.clinic-calendar .adc-calendar__legend {
  display: none !important;
}

/* Exact calendar weekday/date colors. Holiday remains highest priority. */
.clinic-calendar .adc-calendar__dow--sun,
.clinic-calendar .adc-calendar__dow--thu {
  color: #d74444 !important;
}
.clinic-calendar .adc-calendar__dow--sat {
  color: #1675cf !important;
}
.clinic-calendar .adc-calendar__day--sat:not(.adc-calendar__day--holiday):not(.adc-calendar__day--closed) {
  background: #e9f5fd !important;
  color: #1675cf !important;
}
.clinic-calendar .adc-calendar__day--closed {
  background: #f6d9d6 !important;
  color: #d74444 !important;
}
.clinic-calendar .adc-calendar__day--holiday {
  background: #fff2b8 !important;
  color: #9b7410 !important;
}

/* PC: no extra month row, so calendar and legend gain vertical room. */
@media (min-width:1051px) {
  .schedule-heading {
    min-height: 58px !important;
    padding-right: 0 !important;
    margin-bottom: 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }
  .schedule-heading .adc-calendar__head {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 18px !important;
    min-height: 0 !important;
    width: auto !important;
    position: static !important;
  }
  .clinic-calendar > .adc-calendar__head {
    display: none !important;
  }

  /* legend begins directly beside the date cells, below weekday row */
  .clinic-hours-legend {
    margin-top: 34px !important;
    height: calc(100% - 34px) !important;
  }
}

/* Tablet/mobile: keep plugin header above calendar and 2x2 legend compact. */
@media (max-width:1050px) {
  .clinic-calendar .adc-calendar__head {
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    min-height:44px !important;
    margin:0 0 8px !important;
  }
  .clinic-calendar .adc-calendar__title {
    font-size:25px !important;
    font-weight:900 !important;
    color:#0b5943 !important;
  }
  .clinic-calendar .adc-calendar__nav {
    display:flex !important;
    gap:5px !important;
  }
  .clinic-calendar .adc-calendar__nav a {
    padding:5px 9px !important;
    font-size:11px !important;
  }
  .clinic-hours-legend {
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:repeat(2,auto) !important;
    gap:8px !important;
    margin-top:8px !important;
  }
}


/* =========================================
   v15: month controls are rendered in heading (no JS)
========================================= */
.schedule-heading {
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  min-height:62px !important;
  margin-bottom:10px !important;
  padding-right:0 !important;
}
.schedule-heading__title {
  flex:0 0 auto;
}
.schedule-heading__month {
  margin-left:auto;
  min-width:0;
}
.schedule-heading__month .adc-calendar__head {
  position:static !important;
  width:auto !important;
  min-height:0 !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:18px !important;
  flex-wrap:nowrap !important;
}
.schedule-heading__month .adc-calendar__title {
  font-size:31px !important;
  font-weight:900 !important;
  line-height:1 !important;
  color:#0b5943 !important;
  letter-spacing:.02em !important;
  white-space:nowrap;
}
.schedule-heading__month .adc-calendar__nav {
  display:flex !important;
  gap:6px !important;
  flex-wrap:nowrap !important;
}
.schedule-heading__month .adc-calendar__nav a,
  .schedule-heading__month .adc-calendar__nav button {
  padding:7px 12px !important;
  white-space:nowrap;
}
.clinic-calendar .adc-calendar--grid-only {
  width:100%;
}
.clinic-hours-legend {
  margin-top:34px !important;
  height:calc(100% - 34px) !important;
}

@media (max-width:1050px) {
  .schedule-heading {
    flex-wrap:wrap !important;
    gap:8px 18px !important;
    margin-bottom:8px !important;
  }
  .schedule-heading__month {
    width:100%;
  }
  .schedule-heading__month .adc-calendar__head {
    justify-content:space-between !important;
    gap:10px !important;
  }
  .schedule-heading__month .adc-calendar__title {
    font-size:25px !important;
  }
  .schedule-heading__month .adc-calendar__nav a,
  .schedule-heading__month .adc-calendar__nav button {
    padding:5px 9px !important;
    font-size:11px !important;
  }
  .clinic-hours-legend {
    margin-top:8px !important;
    height:auto !important;
  }
}
@media (max-width:600px) {
  .schedule-heading__month .adc-calendar__head {
    align-items:center !important;
  }
  .schedule-heading__month .adc-calendar__title {
    font-size:23px !important;
  }
}


/* v16: month navigation returns to a natural position below sticky header */
#clinic-schedule {
  scroll-margin-top: 92px;
}
@media (max-width: 760px) {
  #clinic-schedule {
    scroll-margin-top: 72px;
  }
}


/* =========================================
   v18 Mobile / tablet clinic-info refinement
   PC layout remains unchanged
========================================= */

/* Tablet: keep schedule information compact and force legend to 2 x 2 */
@media (max-width: 1050px) {
  .clinic-info-card {
    grid-template-columns: 1fr !important;
  }

  .clinic-news {
    border-right: 0 !important;
    border-bottom: 2px solid #d4e4dc !important;
  }

  .clinic-schedule-body {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .schedule-heading {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 7px 14px !important;
    min-height: 0 !important;
    margin-bottom: 8px !important;
  }

  .schedule-heading__title {
    flex: 0 0 auto;
  }

  .schedule-heading__month {
    width: 100% !important;
    margin: 0 !important;
  }

  .schedule-heading__month .adc-calendar__head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin: 0 !important;
  }

  .schedule-heading__month .adc-calendar__title {
    font-size: 25px !important;
    line-height: 1.1 !important;
  }

  .schedule-heading__month .adc-calendar__nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 5px !important;
  }

  .schedule-heading__month .adc-calendar__nav a,
  .schedule-heading__month .adc-calendar__nav button {
    padding: 6px 9px !important;
    font-size: 11px !important;
    white-space: nowrap !important;
  }

  .clinic-hours-legend {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: repeat(2, auto) !important;
    gap: 8px !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    border: 0 !important;
  }

  .clinic-hours-row {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    min-width: 0 !important;
    min-height: 72px !important;
    padding: 10px 12px !important;
    gap: 3px !important;
  }

  .clinic-hours-row strong,
  .clinic-hours-row > span:last-child {
    width: 100% !important;
    text-align: left !important;
  }

  .clinic-hours-row strong {
    font-size: 13px !important;
    line-height: 1.25 !important;
  }

  .clinic-hours-row > span:last-child {
    font-size: 15px !important;
    line-height: 1.35 !important;
  }

  .clinic-hours-holiday > span:last-child {
    font-size: 11px !important;
  }
}

/* Smartphone */
@media (max-width: 600px) {
  .clinic-info-section {
    margin-top: -20px !important;
    padding-bottom: 48px !important;
  }

  .clinic-news,
  .clinic-schedule {
    padding: 21px 16px !important;
  }

  .clinic-info-heading h2 {
    font-size: 21px !important;
  }

  /* NEWS: no forced tall rows on mobile */
  .clinic-news-list {
    display: block !important;
  }

  .clinic-news-item {
    display: block !important;
    min-height: 0 !important;
    padding: 12px 0 !important;
  }

  .clinic-news-item time {
    display: block !important;
    margin-bottom: 5px !important;
    font-size: 12px !important;
  }

  .clinic-news-item span {
    display: block !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  /* Title + month controls consume as little height as possible */
  .schedule-heading {
    gap: 5px !important;
    margin-bottom: 7px !important;
  }

  .schedule-heading__month .adc-calendar__head {
    gap: 6px !important;
  }

  .schedule-heading__month .adc-calendar__title {
    font-size: 22px !important;
    flex: 0 0 auto !important;
  }

  .schedule-heading__month .adc-calendar__nav {
    margin-left: auto !important;
    gap: 3px !important;
  }

  .schedule-heading__month .adc-calendar__nav a,
  .schedule-heading__month .adc-calendar__nav button {
    padding: 5px 7px !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
  }

  /* Calendar fills the available width */
  .clinic-calendar,
  .clinic-calendar .adc-calendar,
  .clinic-calendar .adc-calendar__grid {
    width: 100% !important;
    max-width: none !important;
  }

  .clinic-calendar .adc-calendar__grid {
    gap: 3px !important;
  }

  .clinic-calendar .adc-calendar__dow {
    min-height: 26px !important;
    font-size: 11px !important;
  }

  .clinic-calendar .adc-calendar__day {
    min-height: 50px !important;
    padding: 5px !important;
    border-radius: 8px !important;
  }

  .clinic-calendar .adc-calendar__day strong {
    font-size: 13px !important;
  }

  .clinic-calendar .adc-calendar__day small {
    font-size: 8px !important;
    line-height: 1.15 !important;
  }

  /* Important: always 2 columns x 2 rows on phones */
  .clinic-hours-legend {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    grid-template-rows: auto auto !important;
    gap: 6px !important;
    margin-top: 7px !important;
  }

  .clinic-hours-row {
    display: flex !important;
    min-height: 62px !important;
    padding: 8px 9px !important;
    border-radius: 10px !important;
  }

  .clinic-hours-row strong {
    font-size: 12px !important;
  }

  .clinic-hours-row strong small {
    font-size: 9px !important;
  }

  .clinic-hours-row > span:last-child {
    font-size: 13px !important;
    line-height: 1.3 !important;
  }

  .clinic-hours-holiday > span:last-child {
    font-size: 9.5px !important;
    line-height: 1.25 !important;
  }
}

/* Very narrow phones: still retain 2 x 2 legend */
@media (max-width: 390px) {
  .schedule-heading__month .adc-calendar__title {
    font-size: 20px !important;
  }

  .schedule-heading__month .adc-calendar__nav a,
  .schedule-heading__month .adc-calendar__nav button {
    padding: 5px 6px !important;
    font-size: 9px !important;
  }

  .clinic-hours-row {
    min-height: 60px !important;
    padding: 7px 8px !important;
  }

  .clinic-hours-row strong {
    font-size: 11px !important;
  }

  .clinic-hours-row > span:last-child {
    font-size: 12px !important;
  }
}


/* =========================================
   v23 Calendar controls / weekday visibility
========================================= */

/* Month buttons: larger and clearly show the selected month */
.schedule-heading__month .adc-calendar__nav button {
  min-height: 36px !important;
  padding: 8px 14px !important;
  border: 1px solid #2f7655 !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: #2f7655 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease !important;
}

.schedule-heading__month .adc-calendar__nav button.is-current,
.schedule-heading__month .adc-calendar__nav button[aria-pressed="true"] {
  background: #2f7655 !important;
  border-color: #2f7655 !important;
  color: #ffffff !important;
}

.schedule-heading__month .adc-calendar__nav button:hover {
  background: #eaf4ee !important;
  color: #245f45 !important;
}

.schedule-heading__month .adc-calendar__nav button.is-current:hover,
.schedule-heading__month .adc-calendar__nav button[aria-pressed="true"]:hover {
  background: #2f7655 !important;
  color: #ffffff !important;
}

/* Calendar weekday labels */
.clinic-calendar .adc-calendar__dow {
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

/* Tablet */
@media (max-width: 1050px) {
  .schedule-heading__month .adc-calendar__nav button {
    min-height: 34px !important;
    padding: 7px 12px !important;
    font-size: 12px !important;
  }

  .clinic-calendar .adc-calendar__dow {
    font-size: 14px !important;
  }
}

/* Smartphone: keep buttons usable without making the row too tall */
@media (max-width: 600px) {
  .schedule-heading__month .adc-calendar__nav button {
    min-height: 32px !important;
    padding: 7px 9px !important;
    font-size: 11px !important;
  }

  .clinic-calendar .adc-calendar__dow {
    min-height: 30px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
  }
}

@media (max-width: 390px) {
  .schedule-heading__month .adc-calendar__nav button {
    padding: 7px 8px !important;
    font-size: 10px !important;
  }

  .clinic-calendar .adc-calendar__dow {
    font-size: 12px !important;
  }
}

/* =========================================
   Footer refinement
   ========================================= */
.site-footer .footer-grid{
  align-items:center;
}

.site-footer .footer-clinic strong{
  display:block;
  font-size:22px;
  line-height:1.4;
}

.site-footer .footer-clinic p{
  margin:12px 0 0;
  font-size:16px;
}

.site-footer .footer-contact{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.site-footer .footer-contact small{
  display:block;
  margin-bottom:5px;
  font-size:13px;
  line-height:1.4;
}

.site-footer .footer-tel{
  display:block;
  font-size:27px;
  font-weight:800;
  line-height:1.1;
  white-space:nowrap;
}

.site-footer .footer-copy{
  text-align:center;
}

@media(max-width:600px){
  .site-footer .footer-grid{
    text-align:center;
  }

  .site-footer .footer-clinic strong{
    font-size:21px;
  }

  .site-footer .footer-clinic p{
    font-size:15px;
  }

  .site-footer .footer-contact{
    align-items:center;
  }

  .site-footer .footer-tel{
    font-size:26px;
  }
}

/* =========================================
   TOP ACCESS / right information card
   Primary labels use one consistent size
   ========================================= */
.access-side > strong,
.access-side > a[href^="tel:"],
.access-side__clinic > strong {
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Noto Sans JP", "Yu Gothic", YuGothic, Meiryo, sans-serif !important;
  font-size: 27px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 600px) {
  .access-side > strong,
  .access-side > a[href^="tel:"],
  .access-side__clinic > strong {
    font-size: 26px !important;
  }
}
