@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');

:root{
  --indigo: #2C4A5E;
  --indigo-dark: #1B3040;
  --paper: #EFE7D8;
  --paper-deep: #E4D9C4;
  --wood: #4A3728;
  --tan: #B8946A;
  --ink: #2A2621;
  --white: #FFFFFF;
  --line: rgba(74,55,40,0.22);
  --max: 1080px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }

body{
  margin:0;
  background: var(--paper);
  color: var(--ink);
  font-family: 'Zen Kaku Gothic New', sans-serif;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4{
  font-family: 'Shippori Mincho', serif;
  color: var(--indigo-dark);
  line-height: 1.5;
  margin: 0 0 0.6em;
  font-weight: 600;
}

h1{ font-size: clamp(1.9rem, 3.4vw, 2.7rem); }
h2{ font-size: clamp(1.5rem, 2.6vw, 2.05rem); }
h3{ font-size: 1.2rem; }

p{ margin: 0 0 1.1em; max-width: 34em; }

a{ color: var(--indigo); }

img{ max-width:100%; display:block; }

.wrap{ max-width: var(--max); margin: 0 auto; padding: 0 24px; }

/* ---------- Header / Nav ---------- */
.site-header{
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  position: sticky; top:0; z-index: 50;
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top: 14px; padding-bottom: 14px; gap: 16px;
}
.brand{
  font-family:'Shippori Mincho', serif;
  font-size: 1.15rem; font-weight:700; color: var(--indigo-dark);
  text-decoration:none; letter-spacing:.02em;
  white-space: nowrap;
}
.brand small{ display:block; font-family:'Zen Kaku Gothic New',sans-serif; font-weight:400; font-size:.68rem; color: var(--wood); margin-top: 2px;}

.nav-toggle{
  display:none;
  background:none; border:1px solid var(--wood); border-radius:2px;
  width:42px; height:38px; position: relative; cursor:pointer;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:''; position:absolute; left:10px; right:10px; height:2px; background: var(--wood);
}
.nav-toggle span{ top:18px; }
.nav-toggle span::before{ top:-7px; }
.nav-toggle span::after{ top:7px; }

nav.main-nav{ display:flex; align-items:center; gap: 22px; }
nav.main-nav a{
  text-decoration:none; color: var(--ink); font-size:.92rem;
  padding: 6px 2px; border-bottom: 2px solid transparent;
}
nav.main-nav a:hover, nav.main-nav a.active{ border-color: var(--tan); color: var(--indigo-dark); }

.btn-line{
  background: var(--indigo); color:#fff !important; padding: 9px 20px;
  border-radius: 2px; font-size:.88rem; white-space:nowrap;
  border: 1px solid var(--indigo);
}
.btn-line:hover{ background: var(--indigo-dark); }

@media (max-width: 820px){
  nav.main-nav{
    display:none; position:absolute; top:100%; left:0; right:0;
    background: var(--paper); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:flex-start; padding: 6px 24px 18px; gap: 4px;
  }
  nav.main-nav.open{ display:flex; }
  nav.main-nav a{ width:100%; padding: 10px 0; }
  .nav-toggle{ display:block; }
  .btn-line{ margin-top: 8px; }
}

/* ---------- Hero (split layout) ---------- */
.hero{
  display:grid; grid-template-columns: 1.05fr 1fr; align-items:stretch;
  border-bottom: 1px solid var(--line);
}
.hero-copy{ padding: 64px 40px; display:flex; flex-direction:column; justify-content:center; }
.hero-copy .eyebrow{ color: var(--wood); font-size:.85rem; margin-bottom: 14px; }
.hero-copy h1{ margin-bottom: .5em; }
.hero-copy p.lead{ color: var(--wood); font-size:1.02rem; max-width: 30em; }
.hero-photo{ overflow:hidden; min-height: 320px; }
.hero-photo img{ width:100%; height:100%; object-fit:cover; }

.cta-row{ display:flex; gap:14px; margin-top: 22px; flex-wrap:wrap; }
.btn-primary{
  background: var(--indigo); color:#fff; text-decoration:none;
  padding: 13px 26px; border-radius:2px; font-size:.95rem; border:1px solid var(--indigo);
}
.btn-primary:hover{ background: var(--indigo-dark); }
.btn-secondary{
  color: var(--indigo-dark); text-decoration:none; padding: 13px 22px;
  border: 1px solid var(--wood); border-radius:2px; font-size:.95rem;
}
.btn-secondary:hover{ background: rgba(74,55,40,0.06); }

@media (max-width: 820px){
  .hero{ grid-template-columns: 1fr; }
  .hero-copy{ order:2; padding: 40px 24px; }
  .hero-photo{ order:1; min-height: 260px; }
}

/* ---------- Sections ---------- */
section{ padding: 64px 0; border-bottom: 1px solid var(--line); }
section:last-of-type{ border-bottom:none; }
section.alt{ background: var(--paper-deep); }
.section-head{ margin-bottom: 34px; }
.section-head .kicker{ color: var(--wood); font-size:.85rem; display:block; margin-bottom:6px; }

.grid-3{ display:grid; grid-template-columns: repeat(3,1fr); gap: 30px; }
.grid-2{ display:grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items:center; }
@media (max-width: 820px){
  .grid-3{ grid-template-columns:1fr; }
  .grid-2{ grid-template-columns:1fr; }
}

.feature{ border-top: 2px solid var(--wood); padding-top: 16px; }
.feature h3{ margin-bottom:.4em; }
.feature p{ color: var(--wood); font-size:.94rem; margin-bottom:0; }

.quote-block{
  border-left: 3px solid var(--tan); padding: 4px 0 4px 22px; margin: 28px 0;
  color: var(--wood); font-family:'Shippori Mincho',serif; font-size:1.15rem;
}

/* ---------- Tables (pricing) ---------- */
table.menu{ width:100%; border-collapse:collapse; margin-top: 10px; }
table.menu th, table.menu td{
  text-align:left; padding: 18px 14px; border-bottom: 1px solid var(--line);
}
table.menu th{ font-family:'Shippori Mincho',serif; font-weight:600; color:var(--wood); font-size:.85rem; }
table.menu td.price{ font-family:'Shippori Mincho',serif; font-size:1.2rem; color: var(--indigo-dark); white-space:nowrap; }
table.menu td.time{ color: var(--wood); white-space:nowrap; }
table.menu tr:last-child td{ border-bottom:none; }

.note{ font-size:.86rem; color: var(--wood); margin-top: 18px; }

/* ---------- Info list (access) ---------- */
.info-list{ list-style:none; margin:0; padding:0; }
.info-list li{
  display:flex; gap:18px; padding: 16px 0; border-bottom:1px solid var(--line);
}
.info-list li:last-child{ border-bottom:none; }
.info-list dt{ width: 6.5em; flex-shrink:0; color:var(--wood); font-size:.86rem; padding-top:2px; }
.info-list dd{ margin:0; }

.map-frame{ border:1px solid var(--line); width:100%; height:340px; }
.map-frame iframe{ width:100%; height:100%; border:0; }

.aside-note{
  background: var(--white); border:1px solid var(--line); padding: 22px 24px; margin-top: 28px;
}
.aside-note h3{ margin-bottom:.5em; font-size:1.05rem; }
.aside-note p{ margin-bottom:0; font-size:.92rem; }
.aside-note .thumb{ float:right; width:150px; margin: 0 0 12px 18px; }
@media (max-width:600px){ .aside-note .thumb{ float:none; width:100%; margin:0 0 12px; } }

/* ---------- Footer ---------- */
footer{ background: var(--indigo-dark); color: #F2EEE4; padding: 46px 0 30px; }
footer .wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; gap: 30px; }
footer h4{ color:#fff; font-size:1rem; }
footer p, footer a{ color: #CBD6DC; font-size:.9rem; }
footer a{ text-decoration:none; }
.foot-bottom{ margin-top: 30px; padding-top: 18px; border-top:1px solid rgba(255,255,255,.15); font-size:.78rem; color:#93A4AC; }
