
:root{
  --bg:#f6f2ea;
  --paper:#fbf8f2;
  --ink:#29251f;
  --text:#635e56;
  --soft:#efe5d7;
  --line:#ded4c5;
  --warm:#bf7245;
  --warm-text:#9d5b33;
  --leaf:#65765b;
  --deep:#30382a;
  --shadow:0 18px 44px rgba(41,37,31,.08);
  --max:1180px;
  --radius:28px;
  --font:"Avenir Next","Nunito","Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic",ui-rounded,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
p{line-height:1.65}
.nav{position:sticky;top:0;z-index:30;background:rgba(246,242,234,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(222,212,197,.65)}
.nav-in{max-width:var(--max);margin:0 auto;padding:17px 24px;display:flex;align-items:center;justify-content:space-between}
.brand{font-size:22px;font-weight:760;letter-spacing:-.035em;color:#45523e}
.menu{display:flex;gap:25px;align-items:center;color:var(--text);font-size:13px}
.menu a{padding:8px 0;border-bottom:1px solid transparent}
.menu a.active{color:var(--ink);border-bottom-color:var(--warm)}
.nav-contact{border:1px solid var(--line);border-radius:999px;padding:10px 16px!important;background:rgba(251,248,242,.75)}
.hero{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:44% 56%;min-height:calc(100vh - 65px);gap:0}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:58px 44px 58px 44px}
.kicker,.label{font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--warm-text)}
.kicker{margin-bottom:18px}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(46px,7vw,96px);line-height:.95;letter-spacing:-.065em;font-weight:720;margin-bottom:24px;color:#41503a}
.lead{font-size:clamp(18px,2vw,23px);line-height:1.58;color:var(--text);max-width:560px;margin-bottom:32px}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:0 18px;border-radius:999px;font-size:14px;font-weight:670}
.btn.primary{background:#4c5b43;color:#fff8ec}
.btn.secondary{border:1px solid var(--line);background:rgba(251,248,242,.75)}
.hero-visual{position:relative;min-height:680px;overflow:hidden;border-bottom-left-radius:40px;background:var(--soft)}
.hero-visual img{width:100%;height:100%;object-fit:cover}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(41,37,31,0) 48%,rgba(41,37,31,.42))}
.hero-note{position:absolute;left:34px;right:34px;bottom:28px;z-index:1;color:#fffaf2;font-size:18px;line-height:1.48;max-width:420px}
.section{max-width:var(--max);margin:0 auto;padding:92px 24px;border-bottom:1px solid var(--line)}
.section.tight{padding-top:70px;padding-bottom:70px}
.section-head{display:grid;grid-template-columns:270px 1fr;gap:66px;align-items:end;margin-bottom:42px}
.title{font-size:clamp(34px,4.6vw,66px);line-height:.99;letter-spacing:-.055em;font-weight:710;color:#41503a;margin:0}
.intro{font-size:19px;line-height:1.68;color:var(--text);max-width:680px;margin:14px 0 0}
.center{text-align:center}.center .title,.center .intro{margin-left:auto;margin-right:auto}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:var(--paper);border:1px solid rgba(222,212,197,.82);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}
.media{height:225px;overflow:hidden;background:var(--soft)}
.media img{width:100%;height:100%;object-fit:cover}
.card-body{padding:22px 22px 25px}
.num{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--warm-text);margin-bottom:13px}
.card h3{font-size:25px;line-height:1.1;letter-spacing:-.04em;font-weight:690;margin-bottom:11px;color:#3d4936}
.card p{font-size:15px;line-height:1.62;color:var(--text);margin:0}
.mosaic{display:grid;grid-template-columns:1.08fr .92fr;gap:22px}
.tile{position:relative;min-height:460px;border-radius:28px;overflow:hidden;background:var(--paper)}
.tile.small{min-height:219px}
.tile img{width:100%;height:100%;object-fit:cover}
.tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(41,37,31,0) 40%,rgba(41,37,31,.48))}
.tile-copy{position:absolute;left:28px;right:28px;bottom:24px;z-index:1;color:#fffaf2}
.tile h3{font-size:30px;line-height:1.08;letter-spacing:-.045em;font-weight:700;margin:0 0 8px}
.tile p{font-size:15px;line-height:1.55;color:rgba(255,250,242,.84);margin:0}
.stack{display:grid;gap:22px}
.notes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.note{background:rgba(251,248,242,.78);border:1px solid rgba(222,212,197,.9);border-radius:24px;padding:25px 23px}
.note h3{font-size:24px;line-height:1.14;letter-spacing:-.04em;color:#3d4936;margin:0 0 10px}
.note p{font-size:15px;color:var(--text);margin:0}
.about-band{background:var(--deep);color:#fbf8f2;border-radius:32px;padding:48px;display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.about-band .label{color:#e7a176}
.about-band .title{color:#fbf8f2}
.about-band p{color:rgba(251,248,242,.76);font-size:18px}
.pills{display:flex;flex-wrap:wrap;gap:11px;margin-top:24px}
.pill{border:1px solid var(--line);background:rgba(251,248,242,.7);border-radius:999px;padding:11px 14px;color:var(--text);font-size:14px}
.dark-pill{border-color:rgba(251,248,242,.2);background:rgba(251,248,242,.08);color:rgba(251,248,242,.86)}
.btn.secondary.dark-pill{border-color:rgba(251,248,242,.35);background:rgba(251,248,242,.08);color:rgba(251,248,242,.92)}
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.step{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:24px;min-height:250px}
.step .num{margin-bottom:26px}
.step h3{font-size:24px;line-height:1.12;letter-spacing:-.04em;color:#3d4936;margin-bottom:12px}
.step p{font-size:15px;color:var(--text);margin:0}
.split{display:grid;grid-template-columns:.94fr 1.06fr;gap:42px;align-items:center}
.photo-round{border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.photo-round img{width:100%;height:100%;object-fit:cover;min-height:450px}
.illustration{border-radius:28px;background:var(--paper);border:1px solid var(--line);overflow:hidden}
.illustration img{width:100%;height:100%;object-fit:cover}
.contact-panel{max-width:900px;margin:0 auto;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:34px;padding:58px 34px;box-shadow:var(--shadow)}
.email{display:inline-block;margin-top:18px;color:var(--warm);font-size:clamp(28px,4vw,48px);font-weight:730;letter-spacing:-.05em;border-bottom:2px solid currentColor;padding-bottom:3px}
.footer{max-width:var(--max);margin:0 auto;padding:28px 24px 42px;display:flex;justify-content:space-between;gap:24px;color:var(--text);font-size:13px}
.page-hero{max-width:var(--max);margin:0 auto;padding:78px 24px 70px;display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;border-bottom:1px solid var(--line)}
.page-hero .title{font-size:clamp(42px,6vw,84px)}
.page-hero .intro{font-size:20px}
.page-visual{border-radius:32px;overflow:hidden;min-height:420px;background:var(--soft);box-shadow:var(--shadow)}
.page-visual img{width:100%;height:100%;object-fit:cover}
.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.article{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:26px}
.article h3{font-size:24px;letter-spacing:-.04em;line-height:1.14;color:#3d4936;margin:0 0 12px}
.article p{font-size:15px;color:var(--text);margin:0}
.mini{font-size:13px;color:var(--warm-text);font-weight:760;letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}
.form{display:grid;gap:14px;margin-top:24px}
.input{width:100%;border:1px solid var(--line);background:#fffdf8;border-radius:16px;padding:15px 16px;font:inherit;color:var(--ink)}
textarea.input{min-height:150px;resize:vertical}
@media(max-width:960px){
  .menu{display:none}
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-copy{padding:46px 24px 30px}
  .hero-visual{min-height:420px;border-radius:26px;margin:0 16px 16px}
  .section,.page-hero{padding:70px 20px}
  .section-head,.card-grid,.mosaic,.notes-grid,.about-band,.process,.split,.page-hero,.article-grid{grid-template-columns:1fr;gap:24px}
  .footer{flex-direction:column}
}

.lang-toggle {
  border: 1px solid rgba(51,68,53,.22);
  border-radius: 999px;
  background: #f8f3ea;
  color: #304333;
  padding: 9px 12px;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .02em;
  cursor: pointer;
}
.lang-toggle:hover { background: #efe6d8; }
html[lang="ja"] body { font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Noto Sans CJK JP", "Hiragino Sans", "Yu Gothic", sans-serif; }
html[lang="ja"] .title, html[lang="ja"] h1, html[lang="ja"] h2, html[lang="ja"] h3 { letter-spacing: -0.03em; }
html[lang="ja"] .lead, html[lang="ja"] .intro, html[lang="ja"] p { line-height: 1.95; }
@media (max-width: 820px) { .lang-toggle { padding: 8px 10px; font-size: 11px; } }
