@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500;700&family=Noto+Sans+JP:wght@300;400;500;700&display=swap');

:root{
  --brown-deep:#5c4433;
  --brown-mid:#8a6a4f;
  --tan:#c7a27c;
  --cream:#f7f1e8;
  --cream-soft:#fbf8f3;
  --green-tea:#7c8a5c;
  --text-dark:#3d2f24;
  --text-sub:#786354;
  --white:#ffffff;
  --shadow:0 10px 30px rgba(92,68,51,.08);
  --radius:18px;
}

*{box-sizing:border-box;margin:0;padding:0;}

html{scroll-behavior:smooth;}

body{
  font-family:'Noto Sans JP',sans-serif;
  color:var(--text-dark);
  background:var(--cream-soft);
  line-height:1.9;
  font-weight:300;
  overflow-x:hidden;
}

h1,h2,h3,h4{
  font-family:'Shippori Mincho',serif;
  font-weight:700;
  color:var(--brown-deep);
  line-height:1.5;
}

a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;}

.container{max-width:1080px;margin:0 auto;padding:0 24px;}

/* Header */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(251,248,243,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(138,106,79,.15);
}
.site-header .container{
  display:flex;align-items:center;justify-content:space-between;
  height:76px;
}
.logo{
  font-family:'Shippori Mincho',serif;
  font-size:1.5rem;
  color:var(--brown-deep);
  letter-spacing:.08em;
}
.logo span{
  display:block;font-family:'Noto Sans JP',sans-serif;
  font-size:.6rem;letter-spacing:.25em;color:var(--brown-mid);font-weight:400;
}
.nav-links{display:flex;gap:36px;align-items:center;}
.nav-links a{
  font-size:.92rem;color:var(--text-dark);position:relative;padding:4px 0;
}
.nav-links a:hover{color:var(--brown-mid);}
.nav-cta{
  background:var(--brown-deep);color:var(--white)!important;
  padding:11px 26px;border-radius:999px;font-size:.88rem;
}
.nav-cta:hover{background:var(--brown-mid);}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;}
.nav-toggle span{width:24px;height:2px;background:var(--brown-deep);display:block;}

/* Hero */
.hero{
  position:relative;min-height:88vh;display:flex;align-items:center;
  color:var(--white);
}
.hero-bg{
  position:absolute;inset:0;background-size:cover;background-position:center;
}
.hero-bg::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(61,47,36,.55),rgba(61,47,36,.7));
}
.hero-content{position:relative;z-index:2;max-width:640px;}
.eyebrow{
  display:inline-block;font-size:.8rem;letter-spacing:.3em;
  border:1px solid rgba(255,255,255,.5);padding:6px 18px;border-radius:999px;margin-bottom:24px;
}
.hero h1{color:var(--white);font-size:2.6rem;margin-bottom:20px;}
.hero p{font-size:1.05rem;font-weight:300;margin-bottom:36px;color:rgba(255,255,255,.9);}
.btn-row{display:flex;gap:16px;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:15px 34px;border-radius:999px;font-size:.95rem;
  transition:transform .2s ease;
}
.btn-primary{background:var(--white);color:var(--brown-deep);font-weight:500;}
.btn-outline{border:1px solid rgba(255,255,255,.7);color:var(--white);}
.btn:hover{transform:translateY(-2px);}

/* Section generic */
section{padding:96px 0;}
.section-head{text-align:center;max-width:620px;margin:0 auto 56px;}
.section-head .eyebrow{color:var(--brown-mid);border-color:rgba(138,106,79,.3);}
.section-head .eyebrow-dark{color:var(--brown-mid);}
.section-head h2{font-size:2rem;margin:16px 0;}
.section-head p{color:var(--text-sub);}
.alt-bg{background:var(--cream);}

/* Concept intro */
.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.concept-grid img{border-radius:var(--radius);box-shadow:var(--shadow);}
.concept-text h3{font-size:1.5rem;margin-bottom:18px;}
.concept-text p{color:var(--text-sub);margin-bottom:16px;}

/* Reasons / anshin points */
.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.reason-card{
  background:var(--white);border-radius:var(--radius);padding:38px 30px;
  box-shadow:var(--shadow);text-align:center;
}
.reason-icon{
  width:62px;height:62px;border-radius:50%;background:var(--cream);
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
  font-size:1.6rem;color:var(--brown-mid);
}
.reason-card h4{font-size:1.1rem;margin-bottom:10px;}
.reason-card p{font-size:.9rem;color:var(--text-sub);}

/* Flow steps */
.flow-list{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:step;}
.flow-step{position:relative;background:var(--white);border-radius:var(--radius);padding:34px 24px 28px;box-shadow:var(--shadow);}
.flow-num{
  width:40px;height:40px;border-radius:50%;background:var(--brown-deep);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-family:'Shippori Mincho',serif;
  margin-bottom:18px;font-size:1.05rem;
}
.flow-step h4{font-size:1rem;margin-bottom:8px;}
.flow-step p{font-size:.85rem;color:var(--text-sub);}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.gallery-grid img{border-radius:12px;height:220px;width:100%;object-fit:cover;box-shadow:var(--shadow);}
.gallery-grid div:first-child{grid-row:span 2;}
.gallery-grid div:first-child img{height:100%;min-height:456px;}

/* Testimonials */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.testi-card{background:var(--white);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow);}
.testi-card p{font-size:.92rem;color:var(--text-sub);margin-bottom:20px;}
.testi-user{display:flex;align-items:center;gap:12px;}
.testi-user img{width:46px;height:46px;border-radius:50%;object-fit:cover;}
.testi-user strong{display:block;font-size:.88rem;font-weight:500;}
.testi-user span{font-size:.75rem;color:var(--text-sub);}
.stars{color:var(--tan);font-size:.8rem;margin-bottom:8px;}

/* FAQ */
.faq-list{max-width:760px;margin:0 auto;}
.faq-item{
  background:var(--white);border-radius:14px;margin-bottom:14px;box-shadow:var(--shadow);
  overflow:hidden;
}
.faq-q{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 28px;cursor:pointer;font-weight:500;color:var(--brown-deep);
}
.faq-q .plus{font-size:1.3rem;color:var(--brown-mid);transition:transform .25s ease;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 28px;}
.faq-item.open .faq-a{max-height:240px;padding-bottom:22px;}
.faq-a p{font-size:.9rem;color:var(--text-sub);}

/* CTA band */
.cta-band{
  background:var(--brown-deep);color:var(--white);text-align:center;border-radius:var(--radius);
  padding:60px 40px;margin:0 24px;
}
.cta-band h2{color:var(--white);font-size:1.8rem;margin-bottom:14px;}
.cta-band p{color:rgba(255,255,255,.85);margin-bottom:30px;}

/* Fee table page specifics */
.page-hero{
  position:relative;min-height:46vh;display:flex;align-items:center;color:var(--white);
}
.page-hero .hero-bg::after{background:linear-gradient(180deg,rgba(61,47,36,.6),rgba(61,47,36,.75));}
.page-hero h1{color:var(--white);font-size:2.2rem;}
.page-hero p{color:rgba(255,255,255,.88);margin-top:12px;}

.fee-note{
  display:flex;gap:18px;background:var(--cream);border-radius:var(--radius);padding:28px 30px;margin-bottom:48px;
  border-left:4px solid var(--brown-mid);
}
.fee-note .ico{font-size:1.4rem;}
.fee-note p{font-size:.92rem;color:var(--text-sub);}

.fee-table-wrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow);background:var(--white);}
table.fee-table{width:100%;border-collapse:collapse;min-width:560px;}
table.fee-table th,table.fee-table td{padding:18px 22px;text-align:left;font-size:.92rem;}
table.fee-table thead th{
  background:var(--brown-deep);color:var(--white);font-family:'Shippori Mincho',serif;font-weight:500;letter-spacing:.04em;
}
table.fee-table tbody tr:nth-child(odd){background:var(--cream-soft);}
table.fee-table tbody tr:hover{background:var(--cream);}
.area-tag{
  display:inline-block;background:var(--cream);color:var(--brown-mid);font-size:.78rem;
  padding:3px 12px;border-radius:999px;margin-right:6px;
}
.fee-price{font-weight:500;color:var(--brown-deep);}
.fee-free{color:var(--green-tea);font-weight:500;}

.area-map-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;}
.area-map-grid img{border-radius:var(--radius);box-shadow:var(--shadow);}

/* Footer */
footer{background:var(--brown-deep);color:rgba(255,255,255,.8);padding:60px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:40px;}
.footer-logo{font-family:'Shippori Mincho',serif;color:var(--white);font-size:1.3rem;margin-bottom:14px;}
footer p{font-size:.85rem;line-height:1.8;}
footer h5{color:var(--white);font-size:.9rem;margin-bottom:16px;font-family:'Noto Sans JP',sans-serif;font-weight:500;}
footer ul li{margin-bottom:10px;font-size:.85rem;}
footer ul li a:hover{color:var(--tan);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:24px;text-align:center;font-size:.78rem;color:rgba(255,255,255,.55);}
.demo-badge{
  background:rgba(255,255,255,.1);display:inline-block;padding:8px 18px;border-radius:999px;font-size:.75rem;margin-bottom:18px;
}

/* Responsive */
@media(max-width:860px){
  .nav-links{position:fixed;top:76px;left:0;right:0;background:var(--cream-soft);flex-direction:column;
    padding:20px 24px;gap:18px;box-shadow:0 10px 20px rgba(0,0,0,.06);transform:translateY(-130%);
    transition:transform .3s ease;}
  .nav-links.show{transform:translateY(0);}
  .nav-toggle{display:flex;}
  .concept-grid,.area-map-grid{grid-template-columns:1fr;gap:30px;}
  .reason-grid,.testi-grid{grid-template-columns:1fr;}
  .flow-list{grid-template-columns:1fr 1fr;}
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .gallery-grid div:first-child{grid-row:auto;}
  .gallery-grid div:first-child img{min-height:220px;}
  .hero h1{font-size:2rem;}
  .footer-grid{grid-template-columns:1fr;}
  section{padding:64px 0;}
}
@media(max-width:480px){
  .flow-list{grid-template-columns:1fr;}
}
