/* ── RESET & ROOT ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  --navy:#1F3564;
  --navy-d:#152548;
  --navy-l:#2D4A8C;
  --purple:#9580C8;
  --purple-l:#BDB0E0;
  --purple-ll:#EAE6F6;
  --teal:#5DBFBF;
  --gray-f:#F5F5F8;
  --gray-e:#E5E5EC;
  --gray-b:#B8B8CC;
  --text:#1A1A2E;
  --text-m:#4A4A6A;
  --text-l:#9898B0;
  --sidebar:220px;
}
html{scroll-behavior:smooth;}
body{font-family:'Noto Sans JP',sans-serif;background:#fff;color:var(--text);display:flex;min-height:100vh;}

/* ── SIDEBAR ── */
.sidebar{
  position:fixed;left:0;top:0;
  width:var(--sidebar);height:100vh;
  background:#fff;border-right:1px solid var(--gray-e);
  display:flex;flex-direction:column;
  padding:28px 0 20px;z-index:300;overflow-y:auto;
}
.sb-logo{text-align:center;padding:0 20px 16px;}
.sb-emblem{
  width:58px;height:58px;background:var(--navy);border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin:0 auto 10px;
}
.sb-emblem svg{width:28px;height:28px;color:#fff;}
.sb-name{font-family:'Noto Serif JP',serif;font-size:13px;font-weight:500;color:var(--navy);letter-spacing:1px;line-height:1.8;}
.sb-name-en{font-size:9px;letter-spacing:2.5px;color:var(--text-l);margin-top:2px;}
.sb-div{width:36px;height:1px;background:var(--gray-e);margin:14px auto;}
.sb-nav{flex:1;list-style:none;padding-bottom:8px;}
.sb-nav li a{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 20px;text-decoration:none;
  color:var(--text-m);transition:background .2s,color .2s;
}
.sb-nav li a:hover,.sb-nav li a.active{background:var(--gray-f);color:var(--navy);}
.nav-icon{width:15px;height:15px;flex-shrink:0;margin-top:2px;color:var(--purple);}
.nav-icon svg{width:100%;height:100%;}
.nav-text{display:flex;flex-direction:column;}
.nav-jp{font-size:11.5px;font-weight:500;letter-spacing:0.5px;line-height:1.4;}
.nav-en{font-size:9px;letter-spacing:1.5px;color:var(--purple-l);margin-top:1px;}
.sb-tel{padding:14px 20px;border-top:1px solid var(--gray-e);}
.sb-tel .tel-label{font-size:10px;color:var(--text-l);margin-bottom:4px;}
.sb-tel .tel-num{font-family:'Cormorant Garamond',Georgia,serif;font-size:17px;color:var(--navy);font-weight:500;letter-spacing:1px;}
.sb-social{display:flex;gap:8px;padding:10px 20px 0;}
.sb-social a{
  width:26px;height:26px;border:1px solid var(--gray-e);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--purple);text-decoration:none;transition:background .2s;
}
.sb-social a:hover{background:var(--purple-ll);}
.sb-social a svg{width:12px;height:12px;}

/* ── MAIN ── */
.main{margin-left:var(--sidebar);flex:1;min-width:0;}

/* ── HERO (index) ── */
.hero{position:relative;height:100vh;overflow:hidden;}
.hero-img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(31,53,100,.08),rgba(31,53,100,.4));}
.hero-text{
  position:absolute;right:80px;top:50%;
  transform:translateY(-50%);
}
.hero-catch{
  font-family:'Noto Serif JP',serif;font-size:30px;font-weight:300;
  color:#fff;writing-mode:vertical-rl;line-height:1.9;
  letter-spacing:6px;text-shadow:0 2px 20px rgba(0,0,0,.25);
}
.hero-sub{
  position:absolute;bottom:110px;left:40px;
  color:rgba(255,255,255,.8);font-size:11px;letter-spacing:2px;
}
.hero-scroll{
  position:absolute;bottom:30px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:6px;
  color:rgba(255,255,255,.65);font-size:9px;letter-spacing:2px;
}
.hero-scroll::after{
  content:'';width:1px;height:36px;background:rgba(255,255,255,.5);
  animation:sline 1.6s ease-in-out infinite;
}
@keyframes sline{
  0%{transform:scaleY(0);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  51%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(0);transform-origin:bottom}
}
.hero-wave{position:absolute;bottom:-2px;left:0;right:0;}
.hero-wave svg{display:block;width:100%;}

/* ── WAVE SEPARATORS ── */
.wave-sep{line-height:0;}
.wave-sep svg{display:block;width:100%;}

/* ── SECTION ── */
.section{padding:76px 68px;}
.section-label{font-size:10px;letter-spacing:4px;color:var(--purple);margin-bottom:8px;}
.section-title{
  font-family:'Noto Serif JP',serif;font-size:25px;font-weight:400;
  color:var(--navy);letter-spacing:2px;margin-bottom:40px;
}
.section-center{text-align:center;margin-bottom:50px;}

/* ── NEWS ── */
.news-wrap{
  display:grid;grid-template-columns:160px 1fr;
  border:1px solid var(--gray-e);position:relative;
}
.news-wrap::before,.news-wrap::after{
  content:'';position:absolute;width:12px;height:12px;border:2px solid var(--purple-l);
}
.news-wrap::before{top:-2px;left:-2px;border-right:none;border-bottom:none;}
.news-wrap::after{bottom:-2px;right:-2px;border-left:none;border-top:none;}
.news-label-box{padding:28px 22px;border-right:1px solid var(--gray-e);display:flex;flex-direction:column;gap:10px;}
.news-label-box h3{font-family:'Noto Serif JP',serif;font-size:18px;color:var(--navy);letter-spacing:1px;}
.news-en{font-size:10px;letter-spacing:3px;color:var(--purple);}
.news-more{
  display:flex;align-items:center;gap:6px;margin-top:auto;
  text-decoration:none;color:var(--purple);font-size:11px;letter-spacing:1px;
}
.more-circle{
  width:20px;height:20px;border:1px solid var(--purple-l);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
}
.more-circle svg{width:7px;height:7px;}
.news-list{padding:16px 26px;}
.news-item{
  display:flex;gap:14px;padding:12px 0;
  border-bottom:1px solid var(--gray-e);
  text-decoration:none;color:var(--text-m);
  transition:color .2s;align-items:baseline;
}
.news-item:last-child{border-bottom:none;}
.news-item:hover{color:var(--navy);}
.news-date{font-size:11px;color:var(--text-l);flex-shrink:0;}
.news-tag{
  font-size:10px;padding:2px 8px;flex-shrink:0;
  border:1px solid var(--purple-l);color:var(--purple);border-radius:2px;
}
.news-text{font-size:13px;line-height:1.7;}

/* ── FEATURES ── */
.feature-item{
  display:grid;grid-template-columns:1fr 1fr;
  gap:56px;align-items:center;margin-bottom:64px;
}
.feature-item.rev{direction:rtl;}
.feature-item.rev>*{direction:ltr;}
.feature-num{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:56px;color:var(--purple-l);line-height:1;
  margin-bottom:14px;letter-spacing:-1px;
}
.feature-title{
  font-family:'Noto Serif JP',serif;font-size:19px;color:var(--navy);
  letter-spacing:1px;margin-bottom:8px;
}
.feature-quote{
  font-size:14px;color:var(--purple);font-style:italic;
  margin-bottom:14px;
}
.feature-text{font-size:13px;color:var(--text-m);line-height:2.1;}
.feature-img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;border-radius:2px;display:block;}
.dot-deco{position:relative;}
.dot-deco::after{
  content:'';position:absolute;bottom:-18px;right:-18px;
  width:90px;height:90px;z-index:-1;
  background-image:radial-gradient(circle,var(--purple-l) 1.2px,transparent 1.2px);
  background-size:9px 9px;
}

/* ── DOCTOR ── */
.doctor-wrap{display:grid;grid-template-columns:380px 1fr;gap:56px;align-items:start;}
.doctor-img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:top center;display:block;}
.doctor-title-en{font-size:10px;letter-spacing:3px;color:var(--purple);margin-bottom:4px;}
.doctor-name{font-family:'Noto Serif JP',serif;font-size:26px;color:var(--navy);letter-spacing:3px;margin-bottom:4px;}
.doctor-name-en{font-size:12px;color:var(--text-l);letter-spacing:2px;margin-bottom:22px;}
.doctor-role{font-size:12px;color:var(--text-l);letter-spacing:1px;margin-bottom:6px;}
.doctor-div{width:38px;height:1px;background:var(--purple-l);margin:18px 0;}
.doctor-text{font-size:13px;color:var(--text-m);line-height:2.2;margin-bottom:18px;}
.hist-label{font-size:10px;letter-spacing:2px;color:var(--purple);margin-bottom:10px;}
.history-table{width:100%;border-collapse:collapse;}
.history-table td{padding:5px 0;font-size:12px;color:var(--text-m);line-height:1.8;vertical-align:top;}
.history-table td:first-child{width:80px;color:var(--text-l);}

/* ── ACCESS ── */
.access-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:50px;align-items:start;}
.access-item{margin-bottom:26px;}
.access-item h4{font-size:10px;letter-spacing:3px;color:var(--purple);margin-bottom:8px;text-transform:uppercase;}
.access-item p{font-size:13px;color:var(--text-m);line-height:2.1;}
.access-tel{font-family:'Cormorant Garamond',Georgia,serif;font-size:26px;color:var(--navy);letter-spacing:2px;margin-top:4px;}
.map-frame{width:100%;border-radius:2px;overflow:hidden;border:1px solid var(--gray-e);}
.map-frame iframe{display:block;width:100%;height:370px;border:none;}

/* ── PAGE HERO (sub-pages) ── */
.page-hero{position:relative;height:60vh;overflow:hidden;}
.page-hero img{width:100%;height:100%;object-fit:cover;object-position:center;}
.page-hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to right,rgba(31,53,100,.65),rgba(31,53,100,.2));
  display:flex;align-items:flex-end;padding:48px 68px;
}
.page-hero-title{font-family:'Noto Serif JP',serif;font-size:34px;font-weight:300;color:#fff;letter-spacing:6px;margin-bottom:6px;}
.page-hero-en{font-size:11px;letter-spacing:4px;color:rgba(255,255,255,.55);}

/* ── CHECKLIST ── */
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;}
.check-item{
  display:flex;align-items:center;gap:12px;
  padding:14px 16px;border-bottom:1px solid var(--gray-e);
  font-size:13px;color:var(--text-m);
}
.check-item svg{width:15px;height:15px;color:var(--purple);flex-shrink:0;}

/* ── SERVICE CARDS ── */
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.service-card{
  text-align:center;padding:28px 18px;border:1px solid var(--gray-e);
  transition:box-shadow .2s,border-color .2s;
}
.service-card:hover{box-shadow:0 4px 20px rgba(31,53,100,.1);border-color:var(--purple-l);}
.card-icon{width:52px;height:52px;margin:0 auto 14px;color:var(--navy);}
.card-icon svg{width:100%;height:100%;}
.service-card h4{font-family:'Noto Serif JP',serif;font-size:14px;color:var(--navy);letter-spacing:1px;margin-bottom:8px;}
.service-card p{font-size:12px;color:var(--text-l);line-height:1.9;}

/* ── HOURS TABLE ── */
.hours-table{width:100%;border-collapse:collapse;font-size:13px;}
.hours-table th{
  background:var(--navy);color:#fff;padding:10px 14px;
  font-weight:400;letter-spacing:1px;font-size:11px;border:1px solid rgba(255,255,255,.15);
}
.hours-table td{
  padding:10px 14px;text-align:center;
  border:1px solid var(--gray-e);color:var(--text-m);
}
.hours-table .cell-label{text-align:left;}
.circle-mark{color:var(--purple);font-size:17px;font-weight:400;}
.cross-mark{color:var(--gray-b);}
.hours-note{font-size:11px;color:var(--text-l);margin-top:12px;line-height:1.9;}

/* ── CONTACT FORM ── */
.form-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
.form-group{margin-bottom:22px;}
.form-group label{display:block;font-size:11px;letter-spacing:1.5px;color:var(--text-l);margin-bottom:7px;}
.form-req{color:var(--purple);margin-left:3px;}
.form-group input,.form-group textarea,.form-group select{
  width:100%;padding:12px 15px;
  border:1px solid var(--gray-e);font-family:'Noto Sans JP',sans-serif;
  font-size:13px;color:var(--text);background:var(--gray-f);
  outline:none;transition:border-color .2s,background .2s;
  appearance:none;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  border-color:var(--purple-l);background:#fff;
}
.form-group textarea{height:130px;resize:vertical;}
.btn-submit{
  padding:13px 50px;background:var(--navy);color:#fff;border:none;
  font-family:'Noto Sans JP',sans-serif;font-size:13px;
  letter-spacing:3px;cursor:pointer;transition:background .3s;
}
.btn-submit:hover{background:var(--navy-d);}
.contact-info h3{font-family:'Noto Serif JP',serif;font-size:18px;color:var(--navy);letter-spacing:1px;margin-bottom:26px;}
.contact-info-item{margin-bottom:24px;}
.contact-info-item h4{font-size:10px;letter-spacing:3px;color:var(--purple);margin-bottom:8px;text-transform:uppercase;}
.contact-info-item p{font-size:13px;color:var(--text-m);line-height:2.1;}
.contact-tel{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px;color:var(--navy);letter-spacing:2px;margin:6px 0 2px;}

/* ── GROUP NAV ── */
.group-nav{background:var(--gray-f);border-top:1px solid var(--gray-e);}
.group-nav-inner{
  display:flex;align-items:center;gap:0;
  max-width:100%;overflow-x:auto;
}
.group-label{
  padding:14px 24px;font-size:10px;letter-spacing:2px;
  color:var(--text-l);border-right:1px solid var(--gray-e);
  white-space:nowrap;flex-shrink:0;
}
.group-link{
  padding:14px 22px;font-size:12px;color:var(--text-m);
  text-decoration:none;border-right:1px solid var(--gray-e);
  white-space:nowrap;transition:color .2s,background .2s;flex-shrink:0;
}
.group-link:hover{color:var(--navy);background:#eee;}
.group-link.current{color:var(--navy);font-weight:500;background:#fff;}

/* ── FOOTER ── */
.footer{background:var(--navy-d);padding:48px 68px 28px;color:rgba(255,255,255,.6);}
.footer-inner{display:grid;grid-template-columns:190px 1fr 1fr;gap:46px;margin-bottom:36px;}
.f-emblem{
  width:48px;height:48px;background:rgba(255,255,255,.14);
  border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:12px;
}
.f-emblem svg{width:24px;height:24px;color:rgba(255,255,255,.9);}
.f-name{font-family:'Noto Serif JP',serif;font-size:13px;color:rgba(255,255,255,.9);letter-spacing:1px;line-height:1.9;}
.f-name-en{font-size:9px;letter-spacing:2px;color:rgba(255,255,255,.35);margin-top:3px;}
.footer-info p{font-size:12px;line-height:2.3;}
.f-tel{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;color:rgba(255,255,255,.9);letter-spacing:2px;margin:6px 0 4px;}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:2px;align-content:start;}
.footer-nav a{
  font-size:12px;color:rgba(255,255,255,.45);
  text-decoration:none;padding:5px 0;
  display:flex;align-items:center;gap:8px;transition:color .2s;
}
.footer-nav a::before{content:'';width:14px;height:1px;background:rgba(255,255,255,.2);flex-shrink:0;}
.footer-nav a:hover{color:rgba(255,255,255,.9);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);padding-top:20px;
  font-size:10px;letter-spacing:1px;text-align:center;
}

/* ── DARK BAND ── */
.band-dark{background:var(--navy);padding:56px 68px;color:rgba(255,255,255,.8);}
.band-dark .section-title{color:#fff;}
.band-dark .section-label{color:var(--purple-l);}

/* ── ANIMATIONS ── */
.fi{opacity:0;transform:translateY(28px);transition:opacity .7s,transform .7s;}
.fi.on{opacity:1;transform:none;}
.fi-l{opacity:0;transform:translateX(-28px);transition:opacity .7s,transform .7s;}
.fi-l.on{opacity:1;transform:none;}
.fi-r{opacity:0;transform:translateX(28px);transition:opacity .7s,transform .7s;}
.fi-r.on{opacity:1;transform:none;}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .sidebar{display:none;}
  .main{margin-left:0;}
  .section{padding:48px 22px;}
  .feature-item{grid-template-columns:1fr;gap:28px;}
  .feature-item.rev{direction:ltr;}
  .doctor-wrap{grid-template-columns:1fr;}
  .doctor-img{aspect-ratio:4/3;max-height:380px;}
  .access-grid{grid-template-columns:1fr;}
  .form-layout{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr;gap:28px;}
  .news-wrap{grid-template-columns:1fr;}
  .news-label-box{border-right:none;border-bottom:1px solid var(--gray-e);}
  .check-grid{grid-template-columns:1fr;}
  .service-grid{grid-template-columns:1fr 1fr;}
  .hero-catch{font-size:22px;}
  .hero-text{right:20px;}
  .page-hero{height:38vh;}
  .page-hero-overlay{padding:28px 22px;}
  .page-hero-title{font-size:24px;}
}
