:root{--ink:#292b27;--muted:#6b6c65;--green:#63754b;--green-dark:#53633f;--line:#e6e6e0;--cream:#f7f7f3}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.9;letter-spacing:.035em;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--green);outline-offset:4px}img{max-width:100%;display:block}svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.serif{font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif}.container{width:min(100% - 40px,1040px);margin-inline:auto}.narrow{max-width:760px}.section{padding:100px 0}.eyebrow{font-size:11px;letter-spacing:.24em;color:var(--green);font-weight:700;margin:0 0 20px}.section-title{font-size:clamp(25px,3.5vw,36px);font-weight:500;line-height:1.65;letter-spacing:.06em;margin:0 0 42px}.section-heading{text-align:center;margin-bottom:48px}.section-heading .section-title{margin-bottom:0}.section-lead{font-size:15px;line-height:2.25}.section-lead p{margin:0 0 24px}.section-lead p:last-child{margin-bottom:0}.mobile-only{display:none}
.skip-link{position:absolute;top:-100px;left:12px;z-index:10;background:#fff;padding:10px 16px}.skip-link:focus{top:12px}
.site-header{height:84px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:#fff}.header-inner{width:min(100% - 48px,1200px);margin:auto;display:flex;justify-content:space-between;align-items:center;gap:16px}.logo{display:inline-flex;flex-direction:column;align-items:center;line-height:1.2}.logo-main{font-size:22px;letter-spacing:.25em;font-weight:400;white-space:nowrap}.logo-sub{font-family:"Yu Mincho",serif;font-size:10px;letter-spacing:.15em;margin-top:9px}.header-link{color:var(--green-dark);font-size:12px;letter-spacing:.08em;font-weight:600;white-space:nowrap}.header-link span{margin-left:4px}
.hero{max-width:1440px;margin:auto}.hero-image-link{display:block;overflow:hidden}.hero-image-link img{width:100%;height:auto}.hero-image-link:hover img{opacity:.98}
.intro{text-align:center}.intro .section-lead{text-align:left}.intro .section-title{margin-bottom:36px}
.works-gallery{padding:0 0 100px}.works-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.works-gallery-item{margin:0;overflow:hidden;background:var(--cream);aspect-ratio:16/10}.works-gallery-item img{width:100%;height:100%;object-fit:cover}.works-gallery-item:first-child img{object-position:center 48%}.works-gallery-item:last-child img{object-position:center 54%}
.topics,.booking{background:var(--cream)}.topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}.topic{background:#fff;border:1px solid #e9e9e3;padding:26px 30px;display:flex;align-items:center;gap:18px;min-height:94px;font-size:14px;font-weight:500;line-height:1.8}.topic-icon{display:block;color:var(--green);width:30px;height:30px;flex-shrink:0}.topics-note{text-align:center;font-size:14px;margin:40px 0 0}
.flow-list{max-width:820px;margin:0 auto;padding:0;list-style:none}.flow-item{display:grid;grid-template-columns:100px minmax(0,1fr);gap:22px;padding:34px 0;border-bottom:1px solid var(--line)}.flow-item:first-child{border-top:1px solid var(--line)}.flow-number{font-family:Georgia,serif;color:var(--green);font-size:35px;line-height:1.1}.flow-number small{display:block;font-family:sans-serif;font-size:10px;letter-spacing:.15em;margin-bottom:8px}.flow-content h3{font-size:19px;font-weight:600;margin:0 0 12px}.flow-content p{font-size:14px;line-height:2;margin:0;color:#50514b}
.booking{text-align:center}.booking-lead{font-size:14px;line-height:2.1;margin:0 auto 36px;max-width:650px}.calendar-placeholder{max-width:820px;min-height:280px;margin:0 auto;background:#fff;border:1px solid var(--line);padding:42px 24px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px}.calendar-icon{width:34px;height:34px;color:var(--green)}.calendar-placeholder p{font-size:15px;color:var(--muted);font-weight:500;margin:0;letter-spacing:.08em}
.phone-reservation{max-width:820px;margin:0 auto 28px;padding:32px;background:#fff;border:1px solid var(--line)}.phone-reservation h3{font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:22px;font-weight:500;letter-spacing:.06em;margin:0 0 14px}.phone-reservation>p{max-width:620px;margin:0 auto 22px;font-size:14px;line-height:1.9}.phone-reservation-link{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 16px;width:min(100%,480px);margin:0 auto;padding:16px 24px;border-radius:4px;background:var(--green-dark);color:#fff;transition:background-color .2s}.phone-reservation-link:hover{background:#465436}.phone-reservation-label{width:100%;font-size:12px;font-weight:600;letter-spacing:.1em}.phone-reservation-link strong{font-family:Georgia,"Times New Roman",serif;font-size:30px;letter-spacing:.05em}.phone-reservation-link small{font-size:11px}
.reservation-shell{max-width:820px;min-height:280px;margin:0 auto;background:#fff;border:1px solid var(--line);padding:24px 18px;text-align:left;overflow:hidden}.reservation-shell iframe{display:block;width:100%!important;max-width:100%;border:0}
.site-footer{padding:58px 20px 30px;text-align:center;border-top:1px solid var(--line)}.site-footer .logo{margin-bottom:30px}.footer-address{font-size:12px;line-height:2;color:var(--muted);font-style:normal}.copyright{font-size:10px;color:#9a9b94;margin:40px 0 0;letter-spacing:.08em}
@media(max-width:767px){.container{width:min(100% - 40px,520px)}.section{padding:72px 0}.site-header{height:68px}.header-inner{width:calc(100% - 40px)}.logo-main{font-size:17px}.logo-sub{font-size:8px;margin-top:6px}.header-link{font-size:10px}.section-title{font-size:27px;margin-bottom:30px}.section-heading{margin-bottom:30px}.section-lead{font-size:16px;line-height:1.9}.intro{text-align:left}.intro .section-title{margin-bottom:30px}.intro .section-lead p{margin-bottom:20px}.intro .section-lead p:last-child{margin-bottom:0}.works-gallery{padding:0 0 72px}.works-gallery-grid{grid-template-columns:1fr;gap:12px}.works-gallery-item{aspect-ratio:16/10}.mobile-only{display:initial}.desktop-only{display:none}.topic-grid{grid-template-columns:1fr;gap:10px}.topic{padding:19px 20px;min-height:75px;gap:15px;font-size:15px;line-height:1.65}.topics-note{font-size:15px;text-align:left;line-height:1.8;margin-top:28px}.flow-item{grid-template-columns:52px minmax(0,1fr);gap:14px;padding:28px 0}.flow-number{font-size:28px}.flow-number small{font-size:8px}.flow-content h3{font-size:17px}.flow-content p{font-size:15px;line-height:1.8}.booking-lead{font-size:15px;line-height:1.85}.phone-reservation{margin-bottom:20px;padding:25px 16px}.phone-reservation h3{font-size:20px}.phone-reservation>p{font-size:15px;line-height:1.75;text-align:left}.phone-reservation-link{padding:15px 12px;gap:3px 10px}.phone-reservation-link strong{font-size:27px}.phone-reservation-link small{width:100%}.calendar-placeholder{min-height:250px;padding:35px 18px}.reservation-shell{min-height:250px;padding:14px 8px}.site-footer{padding-top:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
