/* Version 0.2.00: responsive refresh. Desktop hero remains the original design. */
.schedule-table { table-layout: fixed; width: 100%; }
.schedule-table thead th:first-child,.schedule-table tbody td:first-child { width: 36%; white-space: nowrap; }
.schedule-table thead th:not(:first-child),.schedule-table tbody td:not(:first-child) { width: 10.666%; text-align: center; }
.taki-calendar { margin-top: 34px; padding: 22px; background: #f5faff; border: 1px solid #d7eaf3; border-radius: 18px; color: #183c56; }
.taki-calendar-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; }
.taki-calendar-eyebrow { font:700 10px/1.4 var(--sans); letter-spacing:.16em; color:#428cad; }
.taki-calendar-head h3 { font:500 1.35rem/1.4 var(--serif); margin:3px 0 0; }
.taki-calendar-controls { display:flex; align-items:center; gap:8px; }
.taki-calendar-controls button { width:34px; height:34px; border:1px solid #c4dce8; background:white; border-radius:50%; color:#225d7d; cursor:pointer; font-size:22px; }
.taki-calendar-controls button:hover { background:#e2f4fa; }
.taki-calendar-month { font:700 13px var(--sans); min-width:94px; text-align:center; }
.taki-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.taki-cal-weekday { text-align:center; font-size:11px; padding:7px 0; font-weight:700; color:#687e8d; }
.taki-cal-weekday.sunday { color:#c45b65; }.taki-cal-weekday.saturday {color:#377eb4;}
.taki-cal-day { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:54px; padding:4px 1px; border-radius:9px; background:white; border:1px solid #e2edf3; }
.taki-cal-day small { font-size:9px; line-height:1.25; }
.taki-cal-number { font-size:13px; font-weight:700; }
.taki-cal-closed { background:#f9ebed; color:#ae4e5c; }
.taki-cal-half { background:#e9f3fc; color:#3776a1; }
.taki-cal-extra { background:#fdf0dd; color:#99631f; }
.taki-cal-today { outline:2px solid #3195bc; outline-offset:-2px; }
.taki-calendar-legend { display:flex; flex-wrap:wrap; gap:15px; margin:16px 0 8px; font-size:11px; }
.taki-calendar-legend span {display:inline-flex;align-items:center;gap:5px;}
.taki-calendar-dot { display:inline-block; width:10px;height:10px;border-radius:50%; }
.taki-calendar-closed {background:#e8aeb7;}.taki-calendar-half{background:#a5cfe9;}.taki-calendar-extra{background:#e9c184;}
.taki-calendar-info {color:#6b8190;font-size:11px;line-height:1.7;margin:7px 0 0;}
.taki-calendar-error {color:#a14747;font-size:12px;}
@media(max-width:760px) {
  /* New mobile visual: architectural photo remains faintly behind readable typography; doctor portrait foreground. */
  body.home .notice { min-height:29px; height:auto; padding:6px 12px; display:flex; align-items:center;justify-content:center; white-space:nowrap; overflow:hidden; }
  body.home .notice strong { display:block; margin:0; font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  body.home .notice span { display:none; }
  body.home .header-top {min-height:54px;padding-top:3px;padding-bottom:3px;}
  body.home .brand-symbol {width:35px;height:35px;flex-basis:35px;}
  body.home .brand-wordmark-ja {width:min(184px,50vw);}
  body.home .brand-wordmark-en {width:72px;}
  body.home .hero { position:relative; isolation:isolate; background:#eef8fc; overflow:hidden; }
  body.home .hero::before { content:"";position:absolute;inset:0;width:auto;height:auto;left:0;top:0;border:0;border-radius:0;background-image:linear-gradient(180deg,rgba(240,250,255,.91) 0%,rgba(237,248,252,.89) 54%,rgba(235,247,252,.96) 100%),var(--taki-mobile-building);background-size:cover;background-position:center 43%;opacity:1;z-index:-1; }
  body.home .hero-inner { display:flex;flex-direction:column;min-height:0;padding-top:20px;padding-bottom:22px;gap:0; }
  body.home .hero-copy {display:contents;}
  body.home .hero-kicker {order:1;font-size:10px;line-height:1.35;letter-spacing:.07em;margin:0 0 4px;}
  body.home .hero-kicker::before {width:25px;}
  body.home .hero-copy h1 {order:2;font-size:clamp(1.38rem,5.4vw,1.78rem);line-height:1.29;letter-spacing:.025em;margin:5px 0 13px;}
  body.home .hero-visual {order:3; position:relative; height:240px;min-height:0;width:min(94%,340px);margin:0 auto 0;overflow:visible;}
  body.home .photo-main {inset:0 10px 8px; border:5px solid #fff; background-image:var(--taki-doctor-picture) !important;background-size:cover; background-position:center 29%; border-radius:116px 116px 22px 22px; box-shadow:0 13px 30px rgba(25,69,93,.19); }
  body.home .photo-sub {display:none !important;}
  body.home .open-badge {position:absolute;top:auto;bottom:2px;right:-4px;left:auto;width:76px;height:76px;min-width:76px;min-height:76px;padding:8px 4px;border:3px solid #fff;border-radius:50%;box-sizing:border-box;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:9px;line-height:1.3;letter-spacing:.035em;white-space:nowrap;text-align:center;}
  body.home .open-badge strong {font-family:"Yu Mincho","Noto Serif JP",serif;font-size:14px;font-weight:600;line-height:1.2;}
  body.home .hero-copy p {order:4;margin:13px 0 0;font-size:.72rem;line-height:1.6;color:#365a70;}
  body.home .hero-buttons {order:5;}
  .mobile-bar {min-height:50px;}
  .mobile-bar-item {gap:2px;padding:4px 3px;font-size:.57rem;line-height:1.2;}
  .mobile-bar-icon {width:19px;height:19px;}
  .mobile-bar-line-icon {width:24px;height:24px;}
  .mobile-bar-label {font-size:9px;letter-spacing:0;}
  .schedule-table {width:100%;table-layout:fixed;}
  .schedule-table th:first-child,.schedule-table td:first-child {width:38% !important;min-width:0;padding:10px 3px !important;font-size:clamp(9px,2.65vw,12px) !important;letter-spacing:-.045em;white-space:nowrap;}
  .schedule-table th:not(:first-child),.schedule-table td:not(:first-child) {width:10.333% !important;min-width:0;padding:10px 0 !important;font-size:clamp(10px,3vw,14px) !important;}
  .schedule-table td.open,.schedule-table td.saturday-open {font-size:clamp(11px,3.1vw,15px) !important;}
  .taki-calendar {padding:14px 10px;margin-top:20px;}
  .taki-calendar-head h3 {font-size:1.12rem;}
  .taki-calendar-grid {gap:3px;}
  .taki-cal-day {min-height:43px;border-radius:7px;}
  .taki-cal-day small {font-size:8px;}
}

/* Version 0.2.01: independent calendar between news and opening hours. */
.taki-calendar-section { background:linear-gradient(155deg,#f3fafe,#eaf5fa); padding:58px 0; }
.taki-calendar-panel { width:min(100%,920px); margin-inline:auto; padding:30px 34px; background:#fff; border:1px solid #dcebf2; border-radius:24px; box-shadow:0 12px 35px rgba(38,86,115,.075); }
.taki-calendar-intro { margin-bottom:15px; }
.taki-calendar-intro .section-title { margin:5px 0 7px; }
.taki-calendar-intro p {margin:0;color:#59798d;font-size:.92rem;line-height:1.7;}
.taki-calendar-panel .taki-calendar {margin:0;padding:20px;background:#f6fbfe;border-radius:16px;}
.taki-calendar-controls button:disabled {opacity:.25;cursor:not-allowed;}
.taki-calendar-publish-note {margin:10px 0 0;font-size:11px;color:#527b92;}
.news-list .news-item strong {font-size:clamp(.88rem,1.1vw,1.04rem);line-height:1.75;}
@media (max-width:760px) {
 .taki-calendar-section {padding:34px 0;}
 .taki-calendar-panel {padding:20px 14px;border-radius:18px;}
 .taki-calendar-panel .taki-calendar {padding:14px 9px;}
 .news-list .news-item {font-size:.78rem;}
 .news-list .news-item strong {font-size:.88rem;line-height:1.65;overflow-wrap:anywhere;}
}


/* v0.2.03: greeting / news / title readability / subtle clinic-water motif */
@media (min-width: 761px) {
  .home-greeting-photo { min-height: 0; height: clamp(370px, 39vw, 490px); }
  .home-greeting-grid { grid-template-columns: minmax(275px,.74fr) minmax(0,1.26fr); gap: clamp(30px,5vw,68px); }
}
/* Balanced headings: avoid awkward single-character wrap where supported. */
.home-greeting-copy h2, .home-greeting-copy h3,
.section-title, .section-head h2,
.choice h2, .feature h3, .taki-calendar-intro h2 {
  text-wrap: balance;
  overflow-wrap: normal;
  word-break: normal;
}
/* Gentle concentric water / bubbles, confined to the background. */
.home-greeting { isolation: isolate; }
.home-greeting::after {
  content: ""; position:absolute; pointer-events:none; z-index:0;
  width: min(44vw,380px); height: min(44vw,380px); right: -9%; bottom: -30%;
  border: 1px solid rgba(76,158,193,.14); border-radius:50%;
  box-shadow: 0 0 0 26px rgba(102,180,207,.035), 0 0 0 53px rgba(94,177,207,.025);
}
.taki-calendar-section {position:relative; isolation:isolate; overflow:hidden;}
.taki-calendar-section::before {
  content:"";pointer-events:none;position:absolute;z-index:-1;
  width:240px;height:240px;left:-125px;top:25px;border-radius:50%;
  border:1px solid rgba(59,150,187,.15);box-shadow:0 0 0 25px rgba(59,150,187,.035),0 0 0 50px rgba(59,150,187,.025);
}
@media (max-width: 760px) {
  /* Greeting portrait: less oversized, with a readable facial crop. */
  .home-greeting-grid {gap: 23px;min-width:0;}
  .home-greeting-photo {width:min(77%,270px);height:315px;min-height:0;
    border-radius:120px 120px 22px 22px; background-position:center 15%; }
  .home-greeting-copy h2 {font-size:clamp(1.65rem,6.3vw,1.92rem);line-height:1.38;}
  .home-greeting-copy h3 {font-size:clamp(1.06rem,4.45vw,1.26rem);line-height:1.55;}
  .home-greeting-copy h3 br {display:none;}
  /* Give the announcement text the remaining width by tightening metadata. */
  .news-grid {gap:16px;min-width:0;}
  .news-list {min-width:0;}
  .news-list .news-item {
    display:grid;grid-template-columns:68px 50px minmax(0,1fr);
    column-gap:5px;row-gap:7px;align-items:start;
    padding:14px 0;font-size:.8rem;min-width:0;
  }
  .news-list .news-item time {font-size:10px;line-height:1.6;white-space:nowrap;letter-spacing:-.025em;}
  .news-list .news-item span {font-size:9px;line-height:1.3;padding:4px 2px;min-width:0;}
  .news-list .news-item strong {min-width:0;font-size:clamp(.82rem,3.65vw,.94rem);line-height:1.65;overflow-wrap:anywhere;word-break:normal;}
  /* More natural section-heading line breaks. */
  .section-title {font-size:clamp(1.65rem,7.3vw,2.15rem);line-height:1.4;}
  .section-head {min-width:0;}
  .section-head h2,.choice h2,.feature h3,.home-greeting-copy h3 {overflow-wrap:anywhere;}
  .home-greeting::after {width:190px;height:190px;right:-80px;bottom:20px;}
}
@media (max-width: 355px) {
  .news-list .news-item {grid-template-columns:62px 45px minmax(0,1fr);column-gap:4px;}
  .news-list .news-item strong {font-size:.81rem;}
}

/* v0.2.04: short-screen phone hero and legible consultation cards. */
@media (max-width:760px) {
  body.home .header-top {min-height:47px;padding-top:2px;padding-bottom:2px;}
  body.home .brand-symbol {width:31px;height:31px;flex-basis:31px;}
  body.home .brand-wordmark-ja {width:min(168px,47vw);}
  body.home .brand-wordmark-en {width:66px;}
  body.home .hero-inner {padding-top:10px;padding-bottom:14px;}
  body.home .hero-kicker {font-size:9px;line-height:1.2;margin-bottom:2px;}
  body.home .hero-copy h1 {font-size:clamp(1.20rem,4.85vw,1.50rem);line-height:1.20;margin:3px 0 8px;letter-spacing:.015em;}
  body.home .hero-visual {height:210px;width:min(91%,310px);margin-bottom:4px;}
  body.home .photo-main {inset:0 7px 4px;border-radius:103px 103px 18px 18px;background-position:center 26%;}
  body.home .open-badge {width:68px;height:68px;min-width:68px;min-height:68px;right:-2px;bottom:5px;gap:2px;padding:6px 3px;border-width:2px;}
  body.home .open-badge span {font-size:8px;letter-spacing:.04em;}
  body.home .open-badge strong {font-size:12px;line-height:1.2;}
  /* Do not crop the condition title or cards at narrow widths. */
  body.home .disease-showcase {min-width:0;overflow:visible;padding:19px 10px;}
  body.home .disease-showcase-head {min-width:0;width:100%;}
  body.home .disease-showcase-head h3 {font-size:clamp(1.06rem,4.5vw,1.36rem);line-height:1.48;max-width:100%;overflow-wrap:anywhere;text-wrap:wrap;}
  body.home .disease-grid {width:100%;max-width:100%;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
  body.home .disease-card {min-width:0;min-height:133px;padding:10px 5px;}
  body.home .disease-card img {max-width:100%;width:76px;height:71px;object-fit:contain;}
  body.home .disease-card strong {font-size:clamp(.68rem,3vw,.79rem);line-height:1.45;overflow-wrap:anywhere;word-break:normal;}
}
@media (max-width:360px) {
  body.home .hero-visual {height:195px;}
  body.home .hero-copy h1 {font-size:1.17rem;}
  body.home .open-badge {width:64px;height:64px;min-width:64px;min-height:64px;}
}

/* v0.2.05: calendar single heading; real-phone visual breathing room and accessible bottom booking. */
.taki-calendar-panel .taki-calendar-head {justify-content:center;margin-bottom:15px;}
.taki-calendar-panel .taki-calendar-controls {width:100%;justify-content:center;gap:15px;}
@media (max-width:760px) {
  body.home .hero-inner {padding-top:clamp(18px,4.8vw,28px);padding-bottom:26px;}
  body.home .hero-kicker {margin-bottom:7px;}
  body.home .hero-copy h1 {margin:7px 0 15px;line-height:1.3;}
  body.home .hero-visual {height:clamp(220px,65vw,265px);margin-bottom:8px;}
  body.home .open-badge {bottom:7px;}
  .mobile-bar {min-height:61px;}
  .mobile-bar-item {padding:7px 4px 8px;gap:4px;font-size:.64rem;line-height:1.22;}
  .mobile-bar-icon {width:23px;height:23px;}
  .mobile-bar-line-icon {width:28px;height:28px;}
  .mobile-bar-label {font-size:10px;letter-spacing:.01em;}
}
@media (max-width:360px) {
  body.home .hero-visual {height:225px;}
  .mobile-bar {min-height:58px;}
}

/* v0.2.06: bundled clinic-entrance fallback for real phones; slightly larger mobile hero text.
   Keep the existing remote image URL editable, but do not rely on it being publicly accessible. */
@media screen and (max-width:760px) {
  body.home .hero { position:relative; isolation:isolate; background-color:#eaf5fa; }
  body.home .hero::before {
    z-index:0 !important;
    background-image:
      linear-gradient(180deg,rgba(238,249,253,.86) 0%,rgba(237,249,252,.81) 52%,rgba(237,249,253,.90) 100%),
      var(--taki-mobile-building, none),
      var(--taki-mobile-building-fallback, none) !important;
    background-repeat:no-repeat,no-repeat,no-repeat;
    background-position:center,center 43%,center 43%;
    background-size:cover,cover,cover;
  }
  body.home .hero-inner {position:relative;z-index:1;}
  body.home .hero-kicker {font-size:clamp(10px,2.8vw,12px);line-height:1.35;}
  body.home .hero-copy h1 {
    font-size:clamp(1.32rem,5.25vw,1.68rem);
    line-height:1.27;
    letter-spacing:.02em;
  }
}
@media screen and (max-width:360px) {
  body.home .hero-copy h1 {font-size:1.27rem;line-height:1.27;}
}


/* v0.2.13 — single deterministic slideshow, no legacy keyframe overrides */
body.home .photo-main {background-image:none !important;background-color:#d9e8f0;}
body.home .hero-slideshow {position:absolute;inset:0;display:block;overflow:hidden;border-radius:inherit;}
body.home .hero-slide,body.home .home-photo-slide {position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;opacity:0;animation:none !important;transform:none !important;transition:none !important;}
body.home [data-taki-slideshow] > :first-child {opacity:1;}
body.home .taki-slider-mobile {display:none;}
body.home .taki-slider-desktop {display:block;}
body.home .home-photo-slideshow {position:relative;height:440px;overflow:hidden;background:#e7f2f6;}
body.home .home-photo-card.is-exterior .home-photo-slideshow {height:440px;}
body.home .home-photo-slideshow .home-photo-slide {position:absolute;inset:0;}
@media(max-width:760px) {
 body.home .taki-slider-desktop {display:none;}
 body.home .taki-slider-mobile {display:block;}
 body.home .hero-visual {height:clamp(232px,67vw,278px);width:min(95%,350px);margin-bottom:10px;}
 body.home .photo-main {inset:0 8px 6px;border-width:4px;border-radius:112px 112px 20px 20px;}
 body.home .header-top {min-height:50px;padding-top:3px;padding-bottom:3px;}
 body.home .brand-symbol {width:33px;height:33px;flex-basis:33px;}
 body.home .brand-wordmark-ja {width:min(178px,49vw);}
 body.home .brand-wordmark-en {width:70px;}
 body.home .hero-inner {padding-top:clamp(19px,5vw,30px);padding-bottom:28px;}
 body.home .hero-kicker {font-size:clamp(10px,3vw,12px);margin-bottom:8px;}
 body.home .hero-copy h1 {font-size:clamp(1.4rem,5.55vw,1.78rem);line-height:1.28;margin:7px 0 15px;}
 body.home .hero-copy p {margin-top:14px;font-size:.76rem;line-height:1.72;}
 body.home .open-badge {width:74px;height:74px;min-width:74px;min-height:74px;right:-2px;bottom:8px;}
 body.home .home-photo-slideshow,body.home .home-photo-card.is-exterior .home-photo-slideshow {height:240px;}
 .mobile-bar {min-height:84px !important;}
 .mobile-bar-item {padding:13px 4px 15px !important;gap:6px !important;}
 .mobile-bar-icon {width:29px !important;height:29px !important;}
 .mobile-bar-line-icon {width:34px !important;height:34px !important;}
 .mobile-bar-label {font-size:11px !important;}
}
@media(max-width:360px){body.home .hero-visual{height:230px;}body.home .hero-copy h1{font-size:1.33rem;}}

/* v0.2.14 — isolate slideshow layer below the doctor inset, and neutralize legacy effects. */
body.home .hero-visual { isolation: isolate; }
body.home .hero-visual > .photo-main { z-index: 1 !important; overflow: hidden; isolation:isolate; }
body.home .hero-visual > .photo-sub { z-index: 4 !important; }
body.home .hero-visual > .open-badge { z-index: 5 !important; }
body.home .photo-main > .hero-slideshow { z-index: 1; }
body.home .photo-main::before { z-index: 2; }
body.home [data-taki-slideshow] > .hero-slide,
body.home [data-taki-slideshow] > .home-photo-slide {
  animation: none !important;
  transform: none !important;
  backface-visibility: hidden;
  background-color: transparent;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

/* v0.2.15: extend ONLY the mobile hero photo frame downwards; keep all fade timing unchanged. */
@media screen and (max-width:760px) {
  body.home .hero-visual {
    height: clamp(260px, 75vw, 310px);
  }
  /* Show more of the doctor's head, without changing the image or slide order. */
  body.home .taki-slider-mobile .hero-slide:first-child {
    background-position: center 18% !important;
  }
}
@media screen and (max-width:360px) {
  body.home .hero-visual {height:255px;}
}

/* v0.2.16: image position only; keep mobile frame and fades unchanged. */
@media screen and (max-width:760px) {
  body.home .taki-slider-mobile .hero-slide:first-child {
    background-position: center 29% !important;
  }
}

.ruby-spot-home-link{margin:12px 0 20px}.ruby-spot-home-link a{display:inline-block;padding:11px 18px;border:1px solid #a8d2e6;border-radius:99px;background:#edf9ff;color:#166488;font-weight:700}

/* Beauty notices get a separate gentle pink-purple marker. */
.news-item span.news-category-beauty {background:#f1e6f7!important;color:#81529b!important;border:1px solid #dfc9ee!important;border-radius:999px!important;font-weight:700!important;text-align:center}

/* v0.2.19: same beauty palette as the homepage aesthetic treatment pills. */
.news-item span.news-category-beauty{background:var(--rose-pale)!important;color:#2d6578!important;border:1px solid #c4e1e9!important;}

/* v0.2.20: beauty announcement pill matches the original purple palette. */
.news-item span.news-category-beauty{background:#f1e6f7!important;color:#81529b!important;border:1px solid #dfc9ee!important;border-radius:999px!important;font-weight:700!important;text-align:center!important;}

/* v0.2.29 mobile schedule time cells */
.schedule-table tbody tr td:first-child{font-weight:800}
@media(max-width:760px){.schedule-table tbody tr td:first-child{font-size:clamp(11px,3vw,14px)!important;font-weight:800!important}}

/* v0.2.42 Greeting image: modestly smaller frame and higher portrait crop. */
@media(min-width:761px){.home-greeting-photo{width:93%;justify-self:center;height:clamp(350px,36vw,460px);background-position:center 29%!important}}
@media(max-width:760px){.home-greeting-photo.has-image{width:min(74%,258px);height:300px;background-position:center 29%!important}}
