/* Internal medicine: reference-design layout. Shared header/footer are unchanged. */
body.internal{background:linear-gradient(150deg,#f4faff,#fff 650px);color:#000}
body.internal .sub-main>.wrap.section{width:100%;max-width:none;padding:0}
.internal-page-content{font-size:17px;line-height:1.9;color:#000;--accent:var(--blue)}
.internal-body{width:min(1120px,calc(100% - 64px));margin:0 auto;padding-bottom:20px}
.internal-hero{position:relative;isolation:isolate;overflow:hidden;min-height:430px;margin:0 auto 24px;max-width:1440px;background:#eaf6ff}
.internal-hero-photo{position:absolute;inset:0 0 0 auto;width:min(100%,1050px);z-index:-2}
.internal-hero-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:75% 0%;transition:none}
.internal-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#f2faff 0,#edf8fff7 27%,#edf8ffd9 43%,#edf8ff4d 60%,transparent 77%)}
.internal-hero-copy{width:min(1120px,calc(100% - 64px));margin:auto;padding:55px 0 52px}
.internal-eyebrow{color:var(--navy);letter-spacing:.1em;font-size:15px;margin-bottom:5px}
.internal-hero h1{font-family:"Yu Gothic",Meiryo,sans-serif;font-size:46px;font-weight:600;line-height:1.4;color:var(--navy);margin-bottom:16px}
.internal-hero-copy>p:last-child{font-size:17px;line-height:1.85;max-width:29em;margin-bottom:0}
.internal-anchor-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 28px}
.internal-nav-card{display:flex;align-items:center;gap:12px;min-height:88px;padding:16px 13px;border:1px solid #d2e9fa;border-radius:10px;background:linear-gradient(135deg,#fff,#fbfdff);font-size:17px;font-weight:600;color:var(--navy);transition:transform 240ms ease,box-shadow 240ms ease}
.internal-nav-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;flex:0 0 52px;border-radius:50%;background:#edf8ff;color:#0095d5}
.internal-nav-icon svg{width:33px;height:33px}.internal-nav-arrow{margin-left:auto;color:#008fce;font-size:24px}
.internal-page-content .panel{padding:26px;border:1px solid #d4e9f8;border-radius:14px;background:linear-gradient(145deg,#fff,#fcfeff);box-shadow:0 4px 18px #19527a04;margin-bottom:18px;min-width:0}
.internal-page-content h2{display:flex;align-items:center;gap:16px;font-family:"Yu Gothic",Meiryo,sans-serif;color:var(--navy);font-size:27px;font-weight:600;line-height:1.5;letter-spacing:.02em;margin-bottom:24px}
.internal-section-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 46px;background:#edf8ff;border-radius:9px;color:#0098d8;font-size:35px;line-height:1}
.internal-section-icon svg{width:31px;height:31px}
.internal-page-content h3{font-size:21px;line-height:1.6;color:var(--navy)}
.internal-page-content p{line-height:1.9}
.internal-hours .internal-schedule-panel{padding:26px;background:linear-gradient(135deg,#fff,#f8fcff)}
.internal-page-content .schedule-wrap{max-width:100%;overflow-x:auto}
.internal-page-content .schedule{width:100%;border-collapse:collapse;table-layout:auto;min-width:560px;font-size:17px;text-align:center}
.internal-page-content .schedule caption{font-size:15px;text-align:left;margin:0 0 12px;color:#000}
.internal-page-content .schedule th,.internal-page-content .schedule td{padding:16px 9px;line-height:1.75;border:1px solid #deedf7;white-space:nowrap}
.internal-page-content .schedule thead th{background:linear-gradient(#079bd6,#008bc8);color:#fff;font-weight:500}
.internal-page-content .schedule-compact thead th:first-child{width:185px}
.internal-page-content .schedule tbody th{background:#eff8fe;color:#123f70}
.internal-page-content .schedule td[data-state=closed]{background:#f1f5f8;color:#000}
.internal-page-content .schedule .schedule-band{display:block;font-size:17px;line-height:1.65;margin-top:4px;font-weight:500}
.internal-page-content .schedule .schedule-band time{display:inline;font-size:17px}
.internal-note{font-size:15px;line-height:1.8;color:#000;margin:13px 0 0}
.internal-note a{text-decoration:underline;text-underline-offset:4px}
.internal-page-content .internal-reception{background:linear-gradient(110deg,#edf8ff,#eaf6fe);border-color:#edf7fd;box-shadow:none}
.internal-reception-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;overflow:hidden;border:1px solid #fff;border-radius:8px;background:#ffffffbd}
.internal-reception-card{padding:15px 20px;border-right:1px solid #deedf7;min-width:0}
.internal-reception-card:last-child{border:0}
.internal-reception-card h3{font-size:17px;margin:0 0 7px}
.internal-reception-card p{font-size:17px;margin:0;overflow-wrap:anywhere}
.internal-closed-card p{font-weight:600;color:var(--navy)}
.internal-reception-contact{font-size:15px;margin:13px 0 0}
.internal-reception-contact a{font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:4px;display:inline-block;padding-block:3px}
.internal-physician{min-width:0}
.internal-physician-additional{border-top:1px solid #dcebf6;margin-top:28px;padding-top:28px}
.internal-doctor{display:grid;grid-template-columns:400px minmax(0,1fr);gap:32px;align-items:start;min-width:0}
.internal-doctor figure{margin:0;min-width:0}
.internal-doctor img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:8px}
.internal-doctor img[src*="doctor-kamiya"]{object-position:58% 35%}
.internal-doctor img[src*="doctor-nakazato"]{object-position:72% 30%}
.internal-doctor-profile{min-width:0}
.internal-doctor-name{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.internal-role{padding:4px 16px;border-radius:5px;background:#edf7fe;color:var(--navy);font-size:17px;font-weight:600}
.internal-doctor-name strong{font-size:25px;line-height:1.6;color:var(--navy)}
.internal-facts{display:grid;grid-template-columns:95px minmax(0,1fr);margin:0 0 18px;gap:12px}
.internal-facts dt{align-self:start;text-align:center;padding:4px 8px;border-radius:5px;background:#edf7fe;font-weight:600;color:var(--navy)}
.internal-facts dd{margin:0;padding-top:4px}
.internal-doctor-message{padding:18px 20px;border-radius:10px;background:linear-gradient(130deg,#f0f9ff,#eaf7ff)}
.internal-doctor-message h3{font-size:18px;margin:0 0 9px}.internal-doctor-message p{font-size:17px;margin:0}
.internal-doctor-hours{margin-top:24px}
.internal-doctor-hours h3{font-size:21px;margin:0 0 12px}
.internal-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}
.internal-service-card{position:relative;isolation:isolate;display:flex;align-items:flex-start;gap:14px;border:1px solid #dfedf7;border-radius:10px;padding:20px 16px;background:linear-gradient(135deg,#f1f9ff,#f7fcff);overflow:hidden;min-width:0;transition:transform 240ms ease,box-shadow 240ms ease}
.internal-service-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:#e5f5ff;color:#0098d8}
.internal-service-icon svg{width:31px;height:31px}
.internal-service-card h3{font-size:19px;margin:0 0 7px}
.internal-service-card p{font-size:17px;line-height:1.8;margin:0}
.internal-page-content .internal-vaccines{margin-top:18px;border-color:#f3dfbb;background:linear-gradient(105deg,#fff6e7,#fffaf1)}
.internal-vaccines .internal-section-icon{color:#ba8a50;background:#ffecd2}
.internal-vaccine-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:20px 0}
.internal-vaccine-grid article{padding:16px 0;border-top:1px solid #eddcbd;min-width:0}
.internal-vaccine-grid h3{font-size:20px;margin:0 0 10px}
.internal-vaccine-grid p{font-size:17px;margin-bottom:15px}
.internal-vaccine-grid .button{font-size:17px;padding:9px 19px;min-height:46px;text-align:center}
.internal-pending{font-size:15px!important;margin:15px 0 0;padding:13px 15px;background:#fff9eb;border-left:3px solid #d3ac69}
.internal-service-card:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(170px circle at var(--ix,50%) var(--iy,50%),#99d8ff40,transparent 80%);transition:opacity 240ms}
@media(hover:hover) and (pointer:fine) and (min-width:761px) and (prefers-reduced-motion:no-preference){
 .internal-nav-card:hover,.internal-service-card:hover{transform:translateY(-3px);box-shadow:0 9px 20px #188dca12}
 .internal-service-card:hover:before{opacity:1}

}
@media(prefers-reduced-motion:no-preference){.internal-reveal-ready{transform:translateY(10px);transition:transform 550ms ease}.internal-reveal-ready.internal-reveal-visible{transform:none}}
@media(max-width:1100px){.internal-anchor-nav{gap:12px}.internal-nav-card{gap:9px;font-size:16px;padding:15px 10px}.internal-nav-icon{flex-basis:40px;width:40px;height:40px}.internal-nav-icon svg{width:27px;height:27px}.internal-doctor{grid-template-columns:36% minmax(0,1fr);gap:26px}.internal-service-card{display:block}.internal-service-icon{margin-bottom:12px}}
@media(max-width:760px){
 .internal-body{width:calc(100% - 28px)}.internal-hero-copy{width:calc(100% - 40px);padding:34px 0 42px}.internal-hero{min-height:420px;margin-bottom:18px}.internal-hero h1{font-size:38px}.internal-hero-photo img{object-position:75% 0%}.internal-hero:after{background:linear-gradient(90deg,#f2fafff7,#edf8ffde 39%,#edf8ff4d 70%,#edf8ff0d)}.internal-hero-copy>p:last-child{max-width:17em;font-size:17px}
 .internal-anchor-nav{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.internal-nav-card{font-size:17px;min-height:86px;gap:10px;padding:13px 10px}.internal-nav-icon{flex-basis:38px;width:38px;height:38px}.internal-nav-arrow{font-size:22px}
 .internal-page-content .panel,.internal-hours .internal-schedule-panel{padding:22px 17px;margin-bottom:16px}.internal-page-content h2{font-size:23px;gap:12px;margin-bottom:20px}.internal-section-icon{flex-basis:40px;width:40px;height:40px}.internal-section-icon svg{width:28px;height:28px}
 .internal-reception-grid{grid-template-columns:1fr}.internal-reception-card{padding:15px 17px;border-right:0;border-bottom:1px solid #deedf7}
 .internal-doctor{grid-template-columns:1fr;gap:22px}.internal-doctor figure{width:100%;max-width:480px}.internal-doctor img{aspect-ratio:16/10}.internal-doctor-name strong{font-size:24px}.internal-doctor-message{padding:18px}.internal-doctor-hours{margin-top:22px}
 .internal-service-grid{grid-template-columns:1fr;gap:12px}.internal-service-card{display:flex;padding:20px 16px}.internal-service-icon{margin-bottom:0}
 .internal-vaccine-grid{grid-template-columns:1fr;gap:8px}.internal-vaccine-grid .button{width:100%}
}
@media(max-width:380px){.internal-nav-card{display:grid;grid-template-columns:38px 1fr;font-size:16px;gap:8px}.internal-nav-arrow{display:none}}
@media(prefers-reduced-motion:reduce){.internal-reveal-ready{transform:none}.internal-hero-photo img{transform:none!important}}
@media print{.internal-reveal-ready{transform:none}.internal-anchor-nav{display:none}.internal-body{width:100%}}
/* Explicit per-day times: keep each range together and emphasize noon closing. */
.internal-page-content .schedule-compact{min-width:850px;table-layout:fixed}
.internal-page-content .schedule-compact thead th:first-child{width:76px}
.internal-page-content .schedule-compact th,.internal-page-content .schedule-compact td{padding:15px 7px}
.schedule-cell-time{display:block;white-space:nowrap;font-size:17px;font-weight:500;font-variant-numeric:tabular-nums}
.internal-page-content .schedule .schedule-early{background:#edf7ff;box-shadow:inset 0 -3px #1596d3}
.schedule-end-note{display:block;font-size:15px;color:#075c91;margin-top:5px}
.internal-page-content .schedule-wrap:focus-visible{outline:3px solid #008fce;outline-offset:3px}

.internal-schedule-panel .schedule-symbol{display:block;text-align:center;font-size:26px;line-height:1.5;font-weight:500;color:var(--navy)}
.internal-schedule-panel .schedule-legend{font-size:15px;margin-top:10px}

/* Overall timetable only: 16% period column and seven equal 12% day columns. */
.internal-schedule-panel .schedule-compact thead th:first-child{width:16%}
.internal-schedule-panel .schedule-compact thead th:not(:first-child){width:12%}
.internal-schedule-panel .schedule-compact tbody th{text-align:center;vertical-align:middle}

/* Physician tables: standard hours in the row heading, exceptions only below symbols. */
.internal-doctor-hours .schedule-compact{min-width:720px}
.internal-doctor-hours .schedule-compact thead th:first-child{width:170px}
.internal-doctor-hours .schedule tbody th{text-align:center;vertical-align:middle}
.internal-doctor-hours .schedule-symbol{display:block;text-align:center;font-size:26px;line-height:1.5;color:var(--navy);font-weight:500}
.internal-doctor-hours .schedule-exception-note{display:block;text-align:center;font-size:15px;line-height:1.6;color:#477d9d;margin-top:4px;white-space:normal}
.internal-doctor-hours .schedule tbody td{vertical-align:middle;background:#fff}
.internal-doctor-hours .schedule tbody td:nth-child(7),.internal-doctor-hours .schedule tbody td:nth-child(8){background:#f1f5f8}

/* Longer supplied draft copy: retain three cards with generous, flexible height. */
.internal-services .internal-service-grid{gap:20px;align-items:stretch}
.internal-services .internal-service-card{display:block;padding:26px 24px;height:auto;min-height:0}
.internal-services .internal-service-icon{margin-bottom:16px}
.internal-services .internal-service-card h3{font-size:20px;line-height:1.6;margin-bottom:14px}
.internal-services .internal-service-card p{font-size:17px;line-height:1.95;overflow-wrap:anywhere}
.internal-services .internal-service-card p+p{margin-top:16px}
@media(max-width:760px){.internal-services .internal-service-grid{grid-template-columns:1fr;gap:16px}.internal-services .internal-service-card{padding:24px 22px}}
