/**
 * Clinic Calendar フロントスタイル v2
 */

.clinic-cal {
    box-sizing: border-box;
    max-width: 600px;
    margin: 0 auto;
    padding: 24px 20px 28px;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06);
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Meiryo", sans-serif;
    color: #333;
    -webkit-font-smoothing: antialiased;
}
.clinic-cal *,
.clinic-cal *::before,
.clinic-cal *::after {
    box-sizing: border-box;
}
.clinic-cal__inner { width: 100%; }

.clinic-cal__header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 4px 0 16px;
}
.clinic-cal__title {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-align: center;
    min-width: 120px;
    color: #333;
}
.clinic-cal__nav {
    background: transparent;
    border: none;
    cursor: pointer;
    width: 28px; height: 28px;
    display: inline-flex; align-items: center; justify-content: center;
    color: #4a90e2;
    border-radius: 50%;
    padding: 0;
    transition: background 0.15s ease;
}
.clinic-cal__nav:hover { background: rgba(74, 144, 226, 0.1); }
.clinic-cal__nav:focus { outline: 2px solid #4a90e2; outline-offset: 2px; }

.clinic-cal__weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
    margin-bottom: 6px;
    background: #f5f5f5;
    border-radius: 6px;
    padding: 8px 0;
}
.clinic-cal__weekday {
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    color: #555;
    padding: 4px 0;
}
.clinic-cal__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
}
.clinic-cal__cell {
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 500;
    color: #fff;
    background: transparent;
    text-align: center;
    line-height: 1;
}
.clinic-cal__cell--empty { background: transparent; }
.clinic-cal__cell--unset { background: transparent; color: #999; }
.clinic-cal__cell--today { box-shadow: inset 0 0 0 2px #ff3b30; }

.clinic-cal__legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 16px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #eee;
    font-size: 12px;
    color: #555;
}
.clinic-cal__legend-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1.4;
}
.clinic-cal__legend-dot {
    display: inline-block;
    width: 10px; height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

@media (max-width: 640px) {
    .clinic-cal { padding: 18px 14px 22px; }
    .clinic-cal__cell { font-size: 13px; border-radius: 6px; }
    .clinic-cal__weekday { font-size: 12px; }
    .clinic-cal__legend { font-size: 11px; gap: 6px 12px; }
}
@media (max-width: 420px) {
    .clinic-cal__weekdays,
    .clinic-cal__grid { gap: 4px; }
    .clinic-cal__cell { font-size: 12px; }
}

/* PURE schedule: scoped to the optional clinic designs. */
.clinic-cal--isehara,.clinic-cal--ebisu{--cc-accent:#ed2868;--cc-tint:#f7c7d6;--cc-mint:#9be1d8;container-type:inline-size;width:100%;max-width:600px;padding:5px 5px 0;background:var(--cc-accent);border-radius:8px;box-shadow:none;font-family:'Hiragino Maru Gothic ProN','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;color:#333}
.clinic-cal--ebisu{--cc-accent:#ef7018;--cc-tint:#f8d5bd}
.clinic-cal--isehara .clinic-cal__inner,.clinic-cal--ebisu .clinic-cal__inner{background:#fff;border-radius:6px;padding:0 12px 10px;overflow:hidden}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__header{position:relative;padding:12px 22px 10px;gap:0;min-height:90px}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__title{display:flex;align-items:baseline;gap:7px;width:100%;min-width:0;font-weight:500;line-height:1;letter-spacing:0;color:var(--cc-accent);white-space:nowrap}
.clinic-cal__year{font-size:clamp(17px,5.5cqw,34px)}
.clinic-cal__month{font-size:clamp(45px,12cqw,74px);font-weight:500}
.clinic-cal__clinic{align-self:center;border-radius:30px;padding:6px 9px;color:#fff;background:var(--cc-accent);font-size:clamp(9px,2.4cqw,15px);font-weight:700}
.clinic-cal__schedule{align-self:center;flex:1;font-size:clamp(11px,3.1cqw,20px);font-weight:600;text-align:right}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__nav{position:absolute;top:50%;transform:translateY(-50%);width:25px;height:44px;color:var(--cc-accent);border-radius:4px}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__nav--prev{left:-7px}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__nav--next{right:-7px}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__nav:focus-visible{outline:2px solid var(--cc-accent)}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__weekdays{gap:0;margin:0;padding:0;border-radius:0;background:#f2f2f2;border:1px solid #c5c5c5;border-bottom:0}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__weekday{font-size:clamp(12px,3cqw,19px);line-height:1.25;padding:3px 0;border-right:1px solid #c5c5c5;color:#333}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__weekday:first-child{color:#d82036}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__weekday:last-child{color:#0077bd;border-right:0}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__grid{gap:0;border-left:1px solid #c5c5c5;border-top:1px solid #c5c5c5}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__cell{display:flex;flex-direction:column;justify-content:flex-start;aspect-ratio:auto;min-width:0;min-height:clamp(53px,12cqw,77px);border-radius:0;border-right:1px solid #c5c5c5;border-bottom:1px solid #c5c5c5;background:#fff;color:#333;font-weight:500;line-height:1.1}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__cell--today{box-shadow:none;outline:2px solid var(--cc-accent);outline-offset:-2px;z-index:1}
.clinic-cal__date{width:100%;padding:3px 0;font-size:clamp(15px,4cqw,26px);border-bottom:1px solid #ccc}
.clinic-cal__cell--sun .clinic-cal__date{color:#d82036}
.clinic-cal__cell--sat .clinic-cal__date{color:#0077bd}
.clinic-cal__cell--tint .clinic-cal__date{background:var(--cc-tint)}
.clinic-cal__cell--mint .clinic-cal__date{background:var(--cc-mint)}
.clinic-cal__cell--outside .clinic-cal__date{opacity:.2}
.clinic-cal__marks{display:flex;flex-wrap:wrap;gap:2px;flex:1;align-items:center;justify-content:center;width:100%;min-height:28px;padding:3px 1px}
.clinic-cal__mark{font-size:clamp(20px,4.5cqw,30px);line-height:1}
.clinic-cal__mark--star{font-size:clamp(14px,3cqw,21px);align-self:flex-end}
.clinic-cal__mark--time{font-size:clamp(9px,2.1cqw,14px);white-space:pre-line;line-height:1.15;overflow-wrap:anywhere}
:is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__legend{display:flex;flex-direction:column;align-items:stretch;gap:3px;margin-top:10px;padding:0;border:0;font-size:clamp(10px,2.3cqw,14px);color:#333}
.clinic-cal__key{display:flex;align-items:baseline;gap:7px;text-align:left;line-height:1.45}
.clinic-cal__key-symbol{flex:0 0 20px;text-align:center;font-size:1.3em;line-height:1}
.clinic-cal__notice{margin:2px 0 0;font-size:.85em;text-align:right}
.clinic-cal__brand{position:relative;text-align:center;color:#fff;padding:9px 8px 14px;font-size:clamp(12px,3.3cqw,22px);letter-spacing:.18em;line-height:1.1}
.clinic-cal__brand strong{font-family:Arial,sans-serif;font-weight:900;font-size:1.35em;letter-spacing:.08em}
.clinic-cal__brand small{display:block;margin-top:3px;font-size:.5em;letter-spacing:.45em}
@container(max-width:430px){
 :is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__inner{padding:0 7px 8px}
 :is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__header{padding:10px 17px 9px;min-height:72px}
 :is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__title{gap:4px;flex-wrap:wrap;justify-content:center}
 .clinic-cal__schedule{flex:0 0 100%;text-align:center;font-size:13px}
 .clinic-cal__clinic{padding:5px 7px}
 :is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__nav--prev{left:-3px}
 :is(.clinic-cal--isehara,.clinic-cal--ebisu) .clinic-cal__nav--next{right:-3px}
 .clinic-cal__key{gap:3px}
 .clinic-cal__key-symbol{flex-basis:15px}
}

/* 当月と翌月の範囲外へは移動できない */
.clinic-cal .clinic-cal__nav:disabled{opacity:.25;cursor:default;background:transparent}
