:root{
  --bg-cream:#FBF9F8;
  --paper:#F5F1ED;
  --accent-deep:#7b3f3f; /* main hero maroon */
  --nav-deep:#083a4e; /* logo bar */
  --txt-bk:#333;
  --muted:#9b948f;
  --card:#efe9e6;
  --shadow: rgba(0,0,0,0.06);
  --max-width:1100px;
  --container-padding:24px;
  --serif: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  --sans: 'Noto Sans JP',Noto Sans JP, sans-serif;,"Helvetica",Arial,sans-serif;
	
}

/* Reset & base */
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--sans);
  background:var(--bg-cream);
  color:#2a2322;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.8;
  font-size:16px;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max-width);margin:0 auto;padding:var(--container-padding);}
.ntm-wrap{max-width:var(--max-width);margin:0 auto;padding:var(--container-padding);}


/* Skip link */
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{left:8px;top:8px;width:auto;height:auto;padding:8px 12px;background:#000;color:#fff;z-index:9999}

/* Header */
header{
  background:var(--paper);
  border-bottom:1px solid rgba(0,0,0,0.04);

}
.header-inner{display:flex;align-items:center;justify-content:center;gap:24px}
.logo{
  max-width: 400px;
  height: auto;
}

/* Hero */
.hero{
  background-image: url("../img/mv.png");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  padding:64px 0 72px;
  position:relative;
  overflow:hidden;
  z-index: 0;	
}
section.attention-icon {
    margin-top: -230px;
}
.hero-inner{margin:0 auto;padding:0 var(--container-padding);display:flex;align-items:center;gap:40px}
.hero-left{
  width:44%;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  padding-left:3.8%;
}

.hero-right{display:flex;align-items:center;justify-content:flex-end;padding-right:2%;}
.circles{display:flex;gap:10px;align-items:center;justify-content:flex-end;position:relative;/*width: 52%;*/}

.circle{
  width: 190px; height: 190px; max-width:190px;max-height:190px;border-radius:50%; max-height:14%; 
  display:flex;align-items:center;justify-content:center;
}
.circle--8D8B71 img,.circle--E3C9AE img{max-width:60%;}
.circle--F5B49D img{max-width: 78%; padding-top: 8%;}

.circle--8D8B71{background-color: rgba(141,139,113,0.85);}
.circle--E3C9AE{background-color: rgba(227,201,174,0.85);}
.circle--F5B49D{background-color: rgba(245,180,157,0.85);}

/* Main content */
main{background:var(--bg-cream);padding:56px 0 0;}
.section{padding:40px 0;}
.title{
  text-align:center;margin:0 0 42px;
  font-family:var(--serif);
  color:var(--txt-bk);
}
.subtitle{
  text-align:center;font-family:var(--sans);color:var(--muted);margin-bottom:28px;font-size:14px;
}
.lead{
  max-width:966px;margin:0 auto;color:var(--txt-bk);font-size:15px;line-height:1.9;text-align:center;padding:0 18px;margin: 0 auto 54px;
}
.pc_view{display: block;}
.sp_view{display: none;}
/* Card row - services */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:82%s;margin:0 auto 100px;}
.service-card{
  background:var(--card);
  padding:25px;border-radius:8px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:12px;
}
.service-icon{
  width:64px;height:64px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,0.04);
  font-size:22px;color:var(--muted)
}
.service-icon img {
    padding: 20%;
}
.service-title{font-family:var(--serif);font-size:22px;color:#674A4A;}
.service-details{font-family:var(--serif);font-size:15px;color:#674A4A;letter-spacing: -0.09em;}
.service-notes{font-family:var(--serif);font-size:12px;color:#674A4A;}

/* Text blocks */
.content-columns{max-width:920px;margin:36px auto;display:grid;grid-template-columns:1fr;gap:28px;padding:0 12px}
.text-block{background:transparent;color:#6b6361;line-height:1.9;padding:12px 6px;text-align:left}

/* Author / footer note */
.author{max-width:var(--max-width);margin:0 auto 60px;padding:0 18px;text-align:center;color:#674A4A;font-family:var(--serif);font-size:27px;}
span.dr {
    font-size: 22px;
}

/* Access section */
.access{
  background:var(--paper);
  padding:60px 0;
}
.access-inner{display:grid;grid-template-columns:1fr 360px;gap:80px;align-items:start;max-width:var(--max-width);margin:0 auto;padding:var(--container-padding);}
.map{
  border-radius:4px;display:flex;align-items:center;position: relative;padding-top: 65%;
}
.map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.access-details{background:transparent;padding:6px}
.access-details h3{font-family:var(--serif);margin:0 0 12px;font-size:31px;font-weight: normal;letter-spacing: 6.2px;}
.access-details p{font-family:var(--sans);margin:0 0 20px 0;color:var(--txt-bk);font-size:15px;line-height: 25px;}
.access-details h4{font-family:var(--sans);font-size:15px;color:var(--txt-bk);font-weight: 500;}
.access-details h4::before{display: inline-block;margin: 0 5px 0 0;width: 6px;height: 6px;content: '';border-radius: 100%;background:#F5B49D;}
.btn-map{font-family:var(--serif);display:inline-block;margin-top:12px;padding:10px 20px;background:#A18B84;color:#fff;border-radius:6px;font-size:15px;}
address{font-family:var(--sans);font-size:15px;color:var(--txt-bk);margin-bottom: 20px;font-style: normal;}

/* Steps grid photos */
.steps{max-width:var(--max-width);margin:24px auto 0 auto; padding:var(--container-padding);background:#fff;border-radius:5px;border: 2px solid #E2DCD9;}
.steps-title{font-family:var(--serif);font-size:20px;color:var(--txt-bk);}
.steps-title::before{display: inline-block;margin: 0 15px 0 0;width: 20px;height: 20px;content: '';border-radius: 0;background:#B09C53;}
.steps-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:var(--container-padding);}
.step{border-radius:6px;background:#fff;display:flex;flex-direction:column;gap:8px;margin-bottom: 20px;}
.step img{object-fit:cover;border-radius:4px;}
.step .cap{font-size:13px;color:#7b7471}

.step-header {
      display: flex;
      align-items: center;
      gap: 1rem;
      margin-bottom:0;
    }

    .step-number {
      font-family:var(--serif);
      font-size: 40px;
      font-weight: normal;
      color:#674A4A;
      flex-shrink: 0;
    }

    .step-header p {
      margin: 0;
      font-size: 15px;
      flex: 1;
      font-family:var(--sans);color:var(--txt-bk);line-height: normal;
    }

/* Footer */
footer{background:var(--paper);padding:32px 0;text-align:center;color:#7f7876;font-size:13px;}
.copyright{font-size:15px;color:var(--txt-bk);}

/* Small floating top button */
.page-top{font-family:var(--serif);position:fixed;right:12px;bottom:12px;background:#efe1da;border-radius:5px;display: flex;justify-content: end;align-items: center;flex-direction: column;width: 60px;height: 60px;border: none;color: #674A4A;}
.page-top::before{content: "";display: block;width:18px;height:18px;border-top:3px solid #674A4A;border-right:3px solid #674A4A;transform: rotate(-45deg);}

/* Responsive */
@media (max-width:1000px){
  section.attention-icon {margin-top: -120px;}	
  .hero-inner{flex-direction:column;align-items:flex-start;padding:36px 28px}
  .hero-left{width:100%;padding-left:0;font-size:18px}
  .hero-left img{max-width: 60%;}
  .hero-right{width:100%;justify-content:flex-end;}
  .circles{justify-content:flex-end;}
  .services{grid-template-columns:repeat(4,1fr);}
  .access-inner{grid-template-columns:1fr;gap: 48px;}
  .map{height:200px;order:2;}
  .access-details{order:1;}	
  .steps-list{grid-template-columns:1fr;}
  .circle{width:140px;height:140px}
  .access{padding: 16px 0;}
  .access-details h3{text-align: center;margin: 50px 0 42px;}	
}
@media (max-width:520px){
  body{font-size:15px}
  section.attention-icon {margin-top: -90px;}	
  .hero{padding:44px 0}
  .hero-left{font-size:16px;letter-spacing:3px}
  .hero-left img{max-width: 80%;}
  .circle{width:100px;height:100px;}
  .circles{width:100%;}
  .services{grid-template-columns:1fr 1fr;gap:12px;margin: 0 auto;}
  .lead{font-size:14px;margin: 0 auto;}
  .logo{padding:10px 20px;font-size:16px}
  .map{height:160px}
  .author{margin:40px auto 0;}
  .access-inner{gap: 30px;}
  .service-card{padding: 26px;}
  .wrap{margin: 0 auto 100px;}
  .section{padding:40px 0 0;}
  .access{padding: 0 0;}
  .pc_view{display: none;}
  .sp_view{display: block;}
}
@media (max-width:408px){
  .lead{letter-spacing: -0.03em;}
}

/* Typography refinements */
h1,h2,h3,h4,p{margin:0;padding:0}
h1.title{font-size:31px; font-weight: normal; letter-spacing:6.2px;}
.english{display:block;margin-top:-16px;color:#A18B84;font-size:25px;letter-spacing:0;}
