:root{
  --green:#334f1d;
  --green-hover:#4a6732;
  --brown:#715a3f;
  --brown-hover:#fdddba;
  --surface:#fbf9f8;
  --surface-low:#f6f3f2;
  --border:#c4c8ba;
  --text:#1b1c1c;
  --muted:#44483d;
  --footer:#5f5f5b;
  --white:#fff;
  --red:#c0392b;
  --max-width:1200px;
  --header-h:120px;
  --section-pc:120px;
  --section-sp:64px;
}

/* reset */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Noto Sans JP",sans-serif;
  color:var(--text);
  background:var(--surface);
  line-height:1.8;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}

.container{width:min(100% - 32px,var(--max-width));margin:0 auto}
.heading-font{font-family:"Shippori Mincho",serif}
.material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;vertical-align:middle}

/* ---------- header ---------- */
.header{
  position:fixed;top:0;left:0;width:100%;z-index:50;
  display:flex;justify-content:space-between;align-items:center;
  height:var(--header-h);padding:0 32px;
  background:rgba(251,249,248,.95);backdrop-filter:blur(4px);
  border-bottom:1px solid var(--border);
  transition:box-shadow .3s ease;
}
.header.scrolled{box-shadow:0 2px 10px rgba(0,0,0,.08)}
.brand{display:flex;flex-direction:column}
.brand-title{
  margin:0;
  font-size:24px;
  line-height:1.6;
  font-weight:600;
  color:var(--green);
}
.brand-sub{
  margin:0;
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--muted);
  line-height: 1.3em;
}

.nav{display:none;align-items:center;gap:32px;height:100%}
.nav a{
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  transition:color .3s ease;
  padding-bottom:4px;
}
.nav a:hover{color:var(--green)}
.nav .active{
  color:var(--green);
  border-bottom:2px solid var(--green);
}

.header-actions{display:flex;align-items:center;height:100%}
.header-btn{
  display:none;
  flex-direction:column;align-items:center;justify-content:center;
  width:128px;height:80px;
  transition:background-color .3s ease,transform .3s ease;
}
.header-btn:hover{transform:translateY(-1px)}
.contact-btn{background:var(--green);color:var(--white)}
.contact-btn:hover{background:var(--green-hover)}
.brochure-btn{background:var(--brown);color:var(--white)}
.brochure-btn:hover{background:var(--brown-hover);color:#584329}
.header-btn .material-symbols-outlined{font-size:24px}
.header-btn span:last-child{
  margin-top:4px;
  font-size:10px;
  font-weight:700;
}

.menu-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px;
  border:0;
  background:transparent;
  color:var(--green);
  transition:transform .3s ease,opacity .3s ease;
}
.menu-btn:hover{transform:scale(1.05);opacity:.85}

.mobile-menu{
  display:none;
  position:fixed;
  top:var(--header-h);
  left:0;
  width:100%;
  z-index:40;
  background:rgba(251,249,248,.98);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(4px);
}
.mobile-menu.open{display:block}
.mobile-menu a{
  display:block;
  padding:14px 16px;
  border-bottom:1px solid rgba(0,0,0,.05);
  font-size:14px;
  color:var(--text);
}
.mobile-menu a:hover{background:#fbf9f8;color:var(--green)}

/* ---------- 共通テキスト・見出しパーツ ---------- */
.section-title{
  margin:0 0 12px;
  font-family:"Shippori Mincho",serif;
  font-size:40px;
  line-height:1.6;
  font-weight:600;
  letter-spacing:.05em;
}
.section-lead{margin:0;color:var(--muted)}
.small-label{
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--muted);
  text-transform:uppercase;
}

/* ---------- ボタン ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  font-weight:700;
  transition:transform .3s ease,background-color .3s ease,color .3s ease;
}
.btn:hover{transform:translateY(-4px)}
.btn-primary{
  background:var(--green);
  color:var(--white);
  padding:16px 32px;
}

/* ---------- フッター ---------- */
.footer{
  width:100%;
  padding:64px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:32px;
  background:var(--footer);
  color:var(--white);
}
.footer-brand{text-align:center}
.footer-brand h2{
  margin:0;
  font-family:"Shippori Mincho",serif;
  font-size:24px;
  line-height:1.6;
  font-weight:600;
  color:var(--white);
}
.footer-brand p{margin:8px 0 0;font-size:14px;opacity:.6}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:32px;
}
.footer-links a{
  color:var(--white);
  opacity:.8;
  transition:opacity .3s ease;
}
.footer-links a:hover{opacity:1}
.footer-bottom{
  width:100%;
  max-width:var(--max-width);
  border-top:1px solid rgba(255,255,255,.1);
  padding-top:32px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  font-size:14px;
  opacity:.6;
}
.social-links{display:flex;gap:24px;flex-wrap:wrap}
.social-links a{color:var(--white);transition:color .3s ease}
.social-links a:hover{color:#afd191}

/* ---------- レスポンシブ（共通パーツ分のみ） ---------- */
@media (min-width:768px){
  .footer-bottom{flex-direction:row;justify-content:space-between}
}
@media (min-width:1024px){
  .nav{display:flex}
  .header-btn{display:flex}
  .menu-btn{display:none}
}
@media (max-width:767px){
  .header{padding:0 16px}
  .footer{padding:64px 24px}
}
