@charset "UTF-8";
/* ============ Hero ============ */
.hero{
  position:relative;background:#1a1a1a;
  overflow:hidden;min-height:540px;
}
.hero-inner{
  max-width:1642px;margin:0 auto;position:relative;
}
.hero img.hero-photo{
  width:100%;display:block;
}
.hero-copy{
  position:absolute;top:0;left:0;bottom:0;
  width:42%;
  display:flex;flex-direction:column;justify-content:center;
  padding:0 56px;
  pointer-events:none;
}
.hero-en{
  display:block;
  font-size:10px;letter-spacing:0.32em;font-weight:500;
  color:rgba(255,255,255,0.45);
  margin-bottom:24px;
  text-transform:uppercase;
}
.hero-headline{
  font-family:"Noto Serif JP",serif;
  font-size:26px;font-weight:500;line-height:1.75;letter-spacing:0.06em;
  color:#fff;margin:0 0 24px;
}
.hero-lead{
  font-size:12.5px;line-height:1.95;
  color:rgba(255,255,255,0.6);
  margin:0 0 16px;
}
.hero-access{
  font-size:11px;letter-spacing:0.2em;
  color:rgba(255,255,255,0.35);
  margin:0;
}
.hero .scroll-indicator{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  color:#fff;font-size:10.5px;letter-spacing:0.3em;
  display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0.8;
}
.hero .scroll-indicator::after{
  content:"";width:1px;height:36px;background:#fff;opacity:0.6;
}

/* ============ News + Column ============ */
.news-col{padding:72px 40px;background:var(--marble);
  background:
    radial-gradient(ellipse at 20% 20%, #f8f5ef 0%, transparent 60%),
    radial-gradient(ellipse at 80% 80%, #fff 0%, transparent 50%),
    #f1eee4;
}
.news-col-grid{
  max-width:1080px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:56px;
}
.nc-block h3{
  display:flex;align-items:baseline;justify-content:space-between;
  border-bottom:1px solid var(--ink-300);
  padding-bottom:12px;margin:0 0 16px;
}
.nc-block h3 .jp{
  font-family:"Noto Serif JP",serif;font-size:22px;font-weight:500;letter-spacing:0.14em;
}
.nc-block h3 .en{
  font-size:10.5px;letter-spacing:0.24em;color:var(--green-700);margin-left:10px;
}
.nc-block h3 .more{
  margin-left:auto;font-size:10.5px;color:var(--ink-700);
  border:1px solid var(--ink-300);padding:4px 14px;border-radius:1px;
  letter-spacing:0.12em;
}
.nc-list{list-style:none;margin:0;padding:0}
.nc-list li{
  display:grid;grid-template-columns:86px 1fr;gap:14px;
  padding:10px 0;border-bottom:1px dotted var(--ink-200);
  font-size:12.5px;line-height:1.7;
}
.nc-list time{color:var(--ink-500);font-size:11px;padding-top:2px}
.nc-list a{color:var(--ink-800)}
.nc-list a:hover{color:var(--green-700)}

/* ============ Gallery strip ============ */
.gallery{padding:0;background:var(--brown)}
.gallery-strip{
  display:flex;gap:2px;overflow-x:auto;
  padding:28px 28px 24px;
}
.gallery-strip .g{
  flex:0 0 180px;height:120px;background:#ccc;
  background-size:cover;background-position:center;
}
.g1{background:url('../img/main_copy04.jpg') center/cover;}
.g2{background:url('../img/sec06_img01.jpg') center/cover;}
.g3{background:url('../img/sec06_img02.jpg') center/cover;}
.g4{background:url('../img/sec06_img04.jpg') center/cover;}
.g5{background:url('../img/sec06_img05.jpg') center/cover;}
.g6{background:url('../img/sec06_img06.jpg') center/cover;}
.g7{background:url('../img/hero.png') center/cover;}

/* ============ Menu (診療案内) ============ */
.menu{padding:80px 40px;background:var(--green-900)}
.menu .sec-title .jp{color:#fff}
.menu .sec-title .en{color:#fff}
.menu-lead{
  text-align:center;color:rgba(255,255,255,0.6);font-size:14px;letter-spacing:0.04em;
  max-width:600px;margin:0 auto 48px;line-height:1.8;
}
.menu-grid{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;
}
.menu-card{
  background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);
  padding:40px 32px;display:flex;flex-direction:column;position:relative;
}
.menu-card.featured{background:var(--green-700);border-color:var(--green-600)}
.menu-featured-badge{
  position:absolute;top:-12px;right:20px;
  background:#fff;color:var(--green-700);
  font-size:11px;letter-spacing:0.12em;padding:2px 10px;font-weight:500;
}
.menu-card-en{
  display:block;font-size:11px;letter-spacing:0.22em;color:#fff;
  margin-bottom:12px;
}
.menu-card.featured .menu-card-en{color:rgba(255,255,255,0.8)}
.menu-card-jp{
  font-family:"Noto Serif JP",serif;font-size:22px;letter-spacing:0.1em;font-weight:500;
  color:#fff;margin:0 0 20px;
}
.menu-card-desc{
  font-size:13px;line-height:1.9;color:#fff;
  margin:0 0 24px;flex:1;
}
.menu-card.featured .menu-card-desc{color:rgba(255,255,255,0.85)}
.menu-tags{
  list-style:none;padding:0;margin:0 0 32px;
  display:flex;flex-wrap:wrap;gap:8px;
}
.menu-tags li{
  font-size:11.5px;letter-spacing:0.06em;
  border:1px solid rgba(255,255,255,0.3);color:#fff;
  padding:4px 12px;
}
.menu-card.featured .menu-tags li{border-color:rgba(255,255,255,0.4)}
.menu-more{
  display:inline-block;padding:12px 28px;
  background:#fff;color:var(--green-900);
  font-size:12px;letter-spacing:0.16em;align-self:flex-start;
  transition:opacity .2s;
}
.menu-more:hover{opacity:0.85}

/* ============ Greeting ============ */
.greeting{padding:80px 40px;background:#fff}
.greeting .wrap{max-width:760px;text-align:left}
.greeting .body{font-size:13.5px;line-height:2.1;color:var(--ink-800);margin:20px 0 32px}
.greeting .body p{margin:0 0 16px}
.greeting .sign{text-align:right;font-family:"Noto Serif JP",serif;font-size:14px;letter-spacing:0.1em;margin-bottom:36px}
.greeting .sign .big{font-size:18px;margin-left:14px}
.greeting-cta{display:flex;gap:16px;justify-content:center}
.greeting-cta a{
  background:var(--green-800);color:#fff;padding:14px 28px;
  font-size:12.5px;letter-spacing:0.14em;
  min-width:220px;text-align:center;position:relative;
}
.greeting-cta a::after{content:"›";position:absolute;right:14px}
.greeting-cta a:hover{background:var(--green-700)}

/* ============ Features ============ */
.features{
  padding:80px 40px;
  background:
    radial-gradient(ellipse at 10% 0%, #fff 0%, transparent 50%),
    radial-gradient(ellipse at 90% 100%, #fff 0%, transparent 50%),
    var(--marble);
}
.features .sec-title{margin-bottom:60px}
.feat-grid{
  max-width:1160px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:0;
}
.feat{
  aspect-ratio:1.4/1;position:relative;overflow:hidden;
  display:grid;place-items:center;
}
.feat.photo .bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
}
.feat.photo.exam .bg{background-image:url('../img/sec06_img01.jpg');}
.feat.photo.waiting .bg{background-image:url('../img/sec06_img02.jpg');}
.feat.photo.stethoscope .bg{background-image:url('../img/sec06_img04.jpg');}
.feat.photo.building .bg{background-image:url('../img/sec06_img05.jpg');}
.feat.photo.card .bg{background-image:url('../img/sec06_img06.jpg');}

.feat.text{background:var(--ink-800);color:#fff;padding:48px 56px;display:flex;flex-direction:column;align-items:flex-start;position:relative}
.feat.text.light{background:var(--marble);color:var(--ink-900)}
.feat.text .num{
  position:absolute;top:24px;right:32px;
  font-family:"Noto Serif JP",serif;font-size:56px;opacity:0.12;font-weight:500;
}
.feat.text .title{
  font-family:"Noto Serif JP",serif;font-size:20px;letter-spacing:0.08em;
  line-height:1.7;margin-top:32px;font-weight:500;
}
.feat.text .desc{
  font-size:12px;line-height:2;margin-top:16px;opacity:0.85;max-width:320px;
  flex-grow:1;
}
.feat.text .btn{
  display:inline-block;margin-top:22px;font-size:11px;letter-spacing:0.2em;
  padding:10px 22px;border:1px solid currentColor;position:relative;padding-right:40px;
}
.feat.text .btn::after{content:"›";position:absolute;right:18px;top:50%;transform:translateY(-50%)}

@media (max-width:860px){
  .hero{min-height:auto;aspect-ratio:16/9;}
  .hero-copy{width:55%;padding:0 28px;}
  .hero-headline{font-size:20px;}
  .hero-lead{font-size:12px;}
  .hero-access{display:none;}

  .news-col-grid,.info-grid,.menu-grid,.feat-grid{grid-template-columns:1fr;gap:32px}
  .feat-grid > :nth-child(1){order:2;}
  .feat-grid > :nth-child(2){order:1;}
  .feat-grid > :nth-child(3){order:3;}
  .feat-grid > :nth-child(4){order:4;}
  .feat-grid > :nth-child(5){order:6;}
  .feat-grid > :nth-child(6){order:5;}
  .feat-grid > :nth-child(7){order:7;}
  .feat-grid > :nth-child(8){order:8;}

  .nc-list li{grid-template-columns:1fr;gap:4px;padding:12px 0;}
  .nc-list time{font-size:12px;padding-top:0;}

  .info-table dl{grid-template-columns:1fr;gap:4px;padding:12px 0;}

  .feat.text{aspect-ratio:unset;overflow:visible;padding:32px 24px;}
  .feat.text .num{top:16px;right:24px;font-size:40px;}
  .feat.text .title{font-size:18px;margin-top:16px;}
  .feat.text .desc{max-width:100%;}

  .menu-card{padding:32px 24px;}
  .greeting .wrap{padding:0;}
  .greeting-cta{flex-direction:column;align-items:center;gap:12px;}
  .greeting-cta a{width:100%;min-width:auto;padding:14px 20px;}
}

@media (max-width:600px){
  .hero{aspect-ratio:unset;min-height:auto;}
  .hero-inner{display:flex;flex-direction:column;}
  .hero img.hero-photo{
    width:100%;height:52vw;object-fit:cover;object-position:right center;
    display:block;
  }
  .hero-copy{
    position:static;width:100%;
    background:var(--green-900);
    padding:32px 24px 40px;
  }
  .hero-en{margin-bottom:14px;}
  .hero-headline{font-size:22px;margin-bottom:16px;}
  .hero-lead{font-size:13px;color:rgba(255,255,255,0.75);}
  .hero-access{display:block;margin-top:8px;}
}

@media (max-width:480px){
  .feat.text{padding:24px 16px;}
}
