@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600&family=Outfit:wght@400;500;600&display=swap');

:root { --ink:#223027; --forest:#304d3b; --cream:#f5f2e9; --paper:#fcfbf7; --line:rgba(34,48,39,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Noto Serif JP",serif; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
svg { width:1.2em; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

.site-header { height:104px; padding:0 4.5vw; display:flex; align-items:center; justify-content:space-between; background:var(--paper); }
.brand { display:flex; flex-direction:column; line-height:1; }
.brand-en,.eyebrow { font:500 10px/1.4 "Outfit",sans-serif; letter-spacing:.22em; }
.brand-ja { margin-top:8px; font-size:23px; letter-spacing:.2em; }
nav { display:flex; gap:38px; font-size:13px; }
nav a { padding:8px 0; border-bottom:1px solid transparent; }
nav a:hover { border-color:var(--forest); }
.header-tel { font:500 19px/1.2 "Outfit",sans-serif; letter-spacing:.06em; }
.header-tel span { display:block; margin-bottom:4px; font:400 9px/1.2 "Noto Serif JP",serif; letter-spacing:.08em; }

.hero { min-height:calc(100vh - 104px); display:grid; grid-template-columns:58% 1fr; position:relative; background:var(--cream); }
.hero-photo { min-height:680px; overflow:hidden; }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding:9vw 8vw 8vw 7vw; }
.hero-copy .eyebrow { color:#6e806f; }
.hero h1 { margin:28px 0 32px; font-size:clamp(42px,4.3vw,72px); font-weight:500; line-height:1.48; letter-spacing:.08em; }
.hero-lead { font-size:15px; line-height:2.2; }
.text-link { width:fit-content; margin-top:42px; padding-bottom:8px; display:flex; align-items:center; gap:30px; border-bottom:1px solid; font-size:13px; }
.hero-side { position:absolute; right:2vw; bottom:30px; margin:0; writing-mode:vertical-rl; font:500 9px/1 "Outfit",sans-serif; letter-spacing:.2em; color:#829083; }

.section { padding:140px 8vw; }
.section-heading h2 { margin:22px 0 0; font-size:clamp(36px,4vw,60px); font-weight:500; line-height:1.55; letter-spacing:.08em; }
.section-heading .eyebrow { color:#798b7c; }
.intro { display:grid; grid-template-columns:.75fr 1fr .85fr; gap:7vw; align-items:start; }
.intro-body { padding-top:52px; font-size:15px; line-height:2.25; }
.intro-body p { margin:0 0 24px; }
.intro-photo { margin:0; height:550px; overflow:hidden; }
.intro-photo img { height:100%; object-fit:cover; }
.button { width:fit-content; min-width:240px; margin-top:26px; padding:18px 20px; display:flex; align-items:center; justify-content:space-between; gap:30px; background:var(--forest); color:white; font-size:13px; transition:background .2s; }
.button:hover { background:#1f3828; }
.eflora-badge { width:237px; max-width:100%; margin-top:18px; display:block; }
.eflora-badge img { width:237px; max-width:100%; height:auto; }

.news { display:grid; grid-template-columns:.8fr 1.5fr; gap:10vw; background:var(--cream); }
.section-note { margin-top:32px; color:#617064; font-size:13px; line-height:1.9; }
.news-list { padding-top:12px; border-top:1px solid var(--line); }
.news-list>a { min-height:112px; display:grid; grid-template-columns:105px 1fr 28px; align-items:center; gap:24px; border-bottom:1px solid var(--line); transition:opacity .2s; }
.news-list>a:hover { opacity:.58; }
.news-list time { font:500 11px/1 "Outfit",sans-serif; letter-spacing:.08em; color:#738076; }
.news-list span { font-size:14px; line-height:1.8; }
.news-list .all-posts { min-height:70px; display:flex; justify-content:flex-end; gap:18px; font-size:12px; border:0; }

.access { padding-right:0; display:grid; grid-template-columns:.85fr 1.15fr; background:var(--forest); color:white; }
.access-info { padding-right:8vw; }
.access .eyebrow { color:#b9c6b9; }
.access dl { margin:50px 0 0; border-top:1px solid rgba(255,255,255,.25); }
.access dl div { display:grid; grid-template-columns:100px 1fr; padding:19px 0; border-bottom:1px solid rgba(255,255,255,.25); }
.access dt { font-size:12px; color:#c5cec6; }
.access dd { margin:0; font-size:14px; line-height:1.8; }
.access small { display:inline-block; font-size:11px; color:#c5cec6; }
.button-light { background:white; color:var(--forest); }
.button-light:hover { background:var(--cream); }
.map-wrap { min-height:590px; }
.map-wrap iframe { width:100%; height:100%; min-height:590px; border:0; filter:saturate(.72) contrast(.94); }

footer { min-height:300px; padding:75px 8vw 40px; position:relative; display:grid; grid-template-columns:1fr 1fr; align-content:center; gap:40px; background:#17231b; color:white; }
.footer-brand { display:flex; flex-direction:column; }
.footer-brand span { font:500 9px/1 "Outfit",sans-serif; letter-spacing:.2em; color:#aeb8b0; }
.footer-brand strong { margin-top:12px; font-size:24px; font-weight:400; letter-spacing:.2em; }
footer>p { margin:0; font-size:12px; line-height:2; color:#c4ccc5; }
.copyright { position:absolute; right:8vw; bottom:35px; font:400 9px/1 "Outfit",sans-serif; letter-spacing:.08em; }
.mobile-call { display:none; }

@media (max-width:900px) {
  .site-header { height:80px; padding:0 22px; }
  nav,.header-tel { display:none; }
  .hero { min-height:auto; grid-template-columns:1fr; }
  .hero-photo { min-height:0; height:58vh; }
  .hero-copy { padding:65px 28px 80px; }
  .hero h1 { margin:20px 0 25px; font-size:42px; }
  .hero-side { display:none; }
  .section { padding:90px 24px; }
  .intro { grid-template-columns:1fr; gap:45px; }
  .intro-body { padding-top:0; }
  .intro-photo { height:105vw; max-height:520px; }
  .eflora-badge { margin-top:16px; }
  .news { grid-template-columns:1fr; gap:55px; }
  .news-list>a { min-height:105px; grid-template-columns:1fr 22px; gap:8px 20px; padding:22px 0; }
  .news-list time,.news-list span { grid-column:1/2; }
  .news-list svg { grid-column:2; grid-row:1/3; }
  .news-list .all-posts { justify-content:flex-start; min-height:65px; }
  .access { padding:85px 0 0; grid-template-columns:1fr; }
  .access-info { padding:0 24px 75px; }
  .map-wrap,.map-wrap iframe { min-height:430px; }
  footer { padding:65px 24px 110px; grid-template-columns:1fr; }
  .copyright { right:24px; bottom:75px; }
  .mobile-call { position:fixed; z-index:10; left:14px; right:14px; bottom:14px; height:58px; padding:0 20px; display:flex; align-items:center; justify-content:space-between; background:#f5f2e9; color:var(--forest); box-shadow:0 6px 24px rgba(0,0,0,.2); font-size:12px; }
  .mobile-call span { font:500 17px/1 "Outfit",sans-serif; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
