.menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
@media(max-width:900px){ .menu-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:540px){ .menu-grid{grid-template-columns:1fr} }
.menu-card { border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; overflow:hidden; transition:background .3s; }
.menu-card:hover { background:var(--paper); }
.menu-card .img { aspect-ratio:3/2; position:relative; overflow:hidden; }
.menu-card .img .ph { position:absolute; inset:0; transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.menu-card:hover .img .ph { transform:scale(1.06); }
.menu-card .body { padding:28px 28px 32px; flex:1; display:flex; flex-direction:column; }
.menu-card .n { font-family: var(--latin); font-weight: 600; font-size:12px; letter-spacing:.18em; color:var(--accent); margin-bottom:14px; }
.menu-card h3 { font-family:var(--serif); font-size:21px; font-weight:500; margin:0 0 6px; }
.menu-card .en { font-family: var(--latin); font-weight: 600; font-size:13px; letter-spacing:.14em; color:var(--accent-soft); margin-bottom:14px; }
.menu-card p { font-size:13px; line-height:1.95; color:var(--ink-soft); margin:0 0 auto; }
.menu-card .link { display:inline-flex; align-items:center; gap:8px; margin-top:20px; font-family: var(--latin); font-weight: 600; font-size:12px; letter-spacing:.18em; color:var(--accent); transition:gap .3s; }
.menu-card:hover .link { gap:12px; }
.menu-card .link::after { content:"→"; }

/* featured card (古民家・町家) */
.menu-card-feature { grid-column:span 3; }
.menu-feature-grid { display:grid; grid-template-columns:1fr 1fr; }
.menu-feature-img { aspect-ratio:auto; min-height:260px; }
.menu-feature-ph { position:absolute; inset:0; }
@media(max-width:900px){
  .menu-card-feature { grid-column:span 2; }
}
@media(max-width:540px){
  .menu-card-feature { grid-column:span 1; }
  .menu-feature-grid { grid-template-columns:1fr; }
  .menu-feature-img { min-height:220px; }
}

.consult-band { background:var(--bg-soft); padding:80px 0; border-top:1px solid var(--line); }
.consult-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.consult-inner h3 { font-family:var(--serif); font-size:26px; font-weight:500; margin:0 0 10px; }
.consult-inner p { font-size:14px; color:var(--ink-soft); margin:0; max-width:480px; line-height:1.9; }
