:root{--ivory: #fbf7ef;--ivory-2: #f3eee2;--white: #ffffff;--green-950: #12291a;--green-900: #1b3f26;--green-800: #1f4d2e;--green-700: #2f6b3a;--green-500: #4f8a52;--green-400: #8fbf6a;--green-200: #cfe0bf;--green-100: #e4edda;--green-50: #f1f6ec;--apricot: #e8955a;--ink: #1e2a22;--ink-2: #55635a;--line: #dce5d3;--line-dark: rgba(255, 255, 255, .16);--font-jp: "Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;--font-en: "Manrope", "Helvetica Neue", Arial, sans-serif;--radius: 12px;--radius-lg: 16px;--arc: clamp(120px, 24vw, 250px);--container: 1160px;--gutter: clamp(20px, 5vw, 56px);--header-h: 72px;--vine-w: 80px;--section-pad: clamp(4.5rem, 8vw, 7rem);--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip;scroll-padding-top:calc(var(--header-h) + 8px)}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--font-jp);font-size:clamp(.95rem,.92rem + .15vw,1.0625rem);line-height:1.9;letter-spacing:.02em;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip;overflow-wrap:anywhere}img,svg,video{display:block;max-width:100%;height:auto}a{color:var(--green-700)}h1,h2,h3,h4{margin:0;font-weight:700;line-height:1.4;letter-spacing:.01em;color:var(--green-900)}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}dl,dd{margin:0}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:2px solid var(--apricot);outline-offset:3px}.skip-link{position:absolute;top:-100px;left:12px;z-index:100;padding:.6em 1.1em;background:var(--green-900);color:var(--white);border-radius:6px;font-weight:700;text-decoration:none;transition:top .2s}.skip-link:focus{top:12px}.container{width:min(100% - 2 * var(--gutter),var(--container));margin-inline:auto}.caption{display:flex;align-items:center;gap:.75rem;font-family:var(--font-en);font-weight:600;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--green-700);margin-bottom:1rem}.caption:before{content:"";width:28px;height:1px;background:currentColor;flex:none}.caption--light{color:var(--green-200)}.section{position:relative;padding-block:var(--section-pad)}.section-title{font-size:clamp(1.8rem,1.25rem + 1.8vw,2.7rem);line-height:1.3;letter-spacing:.01em}.section-title--light{color:var(--white)}.mask-line{overflow:hidden;padding-block:.12em;margin-block:-.12em}.line-in,.phrase{display:inline-block;white-space:nowrap}.nowrap{white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:.8em;padding:.95em 1.7em;border-radius:6px;font-weight:700;font-size:.95rem;letter-spacing:.08em;line-height:1.2;text-decoration:none;transition:background-color .3s,transform .3s var(--ease-out),box-shadow .3s}.btn--primary{background:var(--green-800);color:var(--white)}.btn--primary:hover,.btn--primary:active{background:var(--green-950);transform:translateY(-1px);box-shadow:0 10px 24px #12291a2e}.btn__icon{width:1em;height:1em;transition:transform .3s var(--ease-out)}.btn:hover .btn__icon,.btn:active .btn__icon{transform:translate(4px)}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;transition:background-color .35s,border-color .35s}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--header-h)}.site-header.is-scrolled{background:#fbf7efe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:var(--line)}.brand{display:inline-flex;align-items:center;text-decoration:none;color:var(--green-900)}.brand__text{font-family:var(--font-en);font-weight:700;font-size:1.15rem;letter-spacing:.24em;line-height:1}.brand__sub{font-size:.7rem;letter-spacing:.08em;color:var(--ink-2);line-height:1.2;margin-left:.85rem;padding-left:.85rem;border-left:1px solid var(--line)}.brand--light{color:var(--white)}.brand--light .brand__sub{color:#ffffffb3;border-left-color:var(--line-dark)}.site-nav__list{display:flex;align-items:center;gap:clamp(1.25rem,2.6vw,2.5rem)}.site-nav__list a{text-decoration:none;color:var(--green-900);font-weight:400;font-size:.92rem;letter-spacing:.06em;position:relative;padding:.35em 0}.site-nav__list a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--green-700);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}.site-nav__list a:hover:after,.site-nav__list a:focus-visible:after{transform:scaleX(1)}.menu-btn{display:none;width:44px;height:44px;border-radius:6px;border:1px solid var(--line);align-items:center;justify-content:center;position:relative;z-index:70;background:#fff9}.menu-btn__bars{display:block;width:18px;height:10px;position:relative}.menu-btn__bars i{position:absolute;left:0;width:100%;height:1.5px;background:var(--green-900);transition:transform .35s var(--ease-out),top .35s var(--ease-out)}.menu-btn__bars i:nth-child(1){top:0}.menu-btn__bars i:nth-child(2){top:8.5px}.menu-btn[aria-expanded=true] .menu-btn__bars i:nth-child(1){top:4.25px;transform:rotate(45deg)}.menu-btn[aria-expanded=true] .menu-btn__bars i:nth-child(2){top:4.25px;transform:rotate(-45deg)}.menu-backdrop{position:fixed;inset:0;background:#12291a73;z-index:55;opacity:0;transition:opacity .4s}.menu-backdrop.is-open{opacity:1}.menu-backdrop[hidden]{display:none}@media(max-width:899px){.menu-btn{display:inline-flex}html.js .site-nav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--white);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:2rem var(--gutter) calc(2rem + env(safe-area-inset-bottom));box-shadow:0 -12px 40px #12291a2e;clip-path:inset(100% 0 0 0);transition:clip-path .55s var(--ease-out)}html.js .site-nav.is-visible{display:block}html.js .site-nav.is-open{clip-path:inset(0 0 0 0)}html.js .site-nav__list{flex-direction:column;align-items:stretch;gap:0}html.js .site-nav.is-visible .site-nav__list li{opacity:0;transform:translateY(12px);transition:opacity .4s var(--ease-out),transform .5s var(--ease-out)}html.js .site-nav.is-open .site-nav__list li{opacity:1;transform:none}html.js .site-nav.is-open .site-nav__list li:nth-child(1){transition-delay:.12s}html.js .site-nav.is-open .site-nav__list li:nth-child(2){transition-delay:.19s}html.js .site-nav__list a{display:block;font-size:1.15rem;font-weight:400;padding:.85em .1em;border-bottom:1px solid var(--line)}html.js .site-nav__list a:after{display:none}html:not(.js) .site-header__inner{flex-wrap:wrap;height:auto;padding-block:.75rem}html:not(.js) .site-nav{width:100%}html:not(.js) .site-nav__list{flex-wrap:wrap;gap:.5rem 1.25rem}html:not(.js) .menu-btn{display:none}}.hero{position:relative;overflow:hidden;min-height:calc(100svh - var(--header-h));display:flex;align-items:center;padding-block:clamp(2rem,5vw,4rem) clamp(5rem,8vw,7rem);background:radial-gradient(60% 55% at 90% 15%,#8fbf6a24,#fbf7ef00 60%),linear-gradient(180deg,var(--ivory) 0%,#f6f1e6 100%)}.hero__particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.hero__inner{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(2rem,6vw,5rem);align-items:center}.hero__copy{position:relative;z-index:2}.hero__eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .9rem;font-family:var(--font-en);font-weight:600;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--green-700);margin-bottom:1.6rem}.hero__eyebrow-sep{width:24px;height:1px;background:currentColor;display:inline-block}.hero__mark{width:40px;height:40px;margin-right:.35rem}.sprout path{fill:none;stroke:var(--green-800);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.hero__title{font-size:clamp(1.8rem,1rem + 2.2vw,2.65rem);line-height:1.38;letter-spacing:.005em;font-weight:700}.hero__line{display:block;overflow:hidden;padding-block:.08em;margin-block:-.08em}.hero__line-in{display:block}.hero__actions{margin-top:2.25rem}.hero__figure{position:relative;z-index:1}.hero__scroll{position:absolute;left:max(var(--gutter),calc(var(--vine-w) + 12px));bottom:1.6rem;display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-en);font-weight:600;font-size:.66rem;letter-spacing:.3em;color:var(--green-700);text-decoration:none;z-index:2}.hero__scroll i{display:block;width:40px;height:1px;background:var(--green-700);transform-origin:left;animation:growline 2.4s var(--ease-out) infinite}@keyframes growline{0%{transform:scaleX(0);opacity:1}60%{transform:scaleX(1);opacity:1}to{transform:scaleX(1);opacity:0}}@media(max-width:899px){.hero{min-height:auto;padding-top:1.5rem;padding-bottom:5.5rem}.hero__inner{grid-template-columns:1fr;gap:2rem}.hero__figure{width:min(86%,440px);margin-left:auto}}@media(max-width:480px){.hero__eyebrow-sep{display:none}.hero__title{font-size:min(1.8rem,calc((100vw - 2 * var(--gutter)) / 12.4))}.about__title{font-size:min(1.5rem,calc((100vw - 2 * var(--gutter)) / 12.4))}.section-title{font-size:min(1.8rem,calc((100vw - 2 * var(--gutter)) / 11.4))}}.figure{position:relative}.figure__frame{overflow:hidden;aspect-ratio:var(--ratio, 1 / 1);border-radius:var(--r);background:var(--green-100)}.figure__img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}.figure__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.04);opacity:0;transition:opacity .6s ease;pointer-events:none}.figure__video.is-ready{opacity:1}.figure__frame{position:relative}.figure--arc-tl{--r: calc(var(--arc) * var(--arc-k, 1)) var(--radius-lg) var(--radius-lg) var(--radius-lg)}.figure--arc-br{--r: var(--radius-lg) var(--radius-lg) calc(var(--arc) * var(--arc-k, 1)) var(--radius-lg)}.figure--arc-bl{--r: var(--radius-lg) var(--radius-lg) var(--radius-lg) calc(var(--arc) * var(--arc-k, 1))}.figure--leaf{--r: 0 calc(var(--arc) * .8 * var(--arc-k, 1)) 0 calc(var(--arc) * .8 * var(--arc-k, 1))}.figure__accent{position:absolute;left:-28px;top:58%;width:64px;height:2px;background:var(--apricot)}.figure--accent-right .figure__accent{left:auto;right:-28px}.vine{position:absolute;top:0;left:0;width:var(--vine-w);height:100%;pointer-events:none;z-index:1;overflow:visible}.vine-path{fill:none;stroke:var(--green-400);stroke-width:1.5;opacity:.9}.vine-node circle{fill:var(--ivory);stroke:var(--green-700);stroke-width:1.5}.vine-node line{stroke:var(--green-700);stroke-width:1.5}@media(max-width:1180px){:root{--vine-w: 28px}}.about{background:var(--white);border-top:1px solid var(--line)}.about__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,5rem);align-items:start}.about__head{position:sticky;top:calc(var(--header-h) + 2rem)}.about__title{font-size:clamp(1.5rem,1.05rem + 1.5vw,2.25rem);line-height:1.4}.about__title-main{display:block}.about__title-co{display:block;font-size:.68em;font-weight:400;color:var(--green-700);margin-top:.6em;letter-spacing:.04em}.about__list{border-top:1px solid var(--green-700)}.about__item{display:grid;grid-template-columns:3.75rem minmax(0,1fr);gap:1rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}.about__num{font-family:var(--font-en);font-weight:600;font-size:.78rem;letter-spacing:.14em;color:var(--green-700);padding-top:.45rem}.about__item-title{font-size:1.12rem;margin-bottom:.4rem;white-space:nowrap}.about__item-body{color:var(--ink)}@media(max-width:899px){.about__grid{grid-template-columns:1fr}.about__head{position:static}.about__item{grid-template-columns:3rem minmax(0,1fr);padding:1.3rem 0}}.service__head{background:var(--green-800);color:var(--white);padding-block:clamp(3.5rem,6vw,5rem)}.service__head-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem 3rem;align-items:end}.service__index{display:flex;gap:2rem}.service__index a{display:flex;flex-direction:column;gap:.3rem;min-width:12rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.4);color:var(--white);text-decoration:none;font-weight:700;letter-spacing:.04em;transition:border-color .3s}.service__index a:hover,.service__index a:focus-visible{border-top-color:var(--green-400)}.service__index-num{font-family:var(--font-en);font-weight:600;font-size:.7rem;letter-spacing:.22em;color:var(--green-200)}.service__body{background:var(--ivory);padding-block:var(--section-pad)}.svc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}.svc+.svc{margin-top:clamp(4rem,8vw,7rem);padding-top:clamp(3.5rem,6vw,5rem);border-top:1px solid var(--line)}.svc__media{grid-column:1;grid-row:1;position:relative}.svc__text{grid-column:2;grid-row:1}.svc--flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.svc--flip .svc__media{grid-column:2}.svc--flip .svc__text{grid-column:1}.svc__title{font-size:clamp(1.45rem,1rem + 1.3vw,2rem);margin:.25rem 0 1rem}.svc__intro{max-width:36em}.svc__items{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2.25rem}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.5rem;transition:transform .35s var(--ease-out),border-color .35s,box-shadow .35s}.card:hover,.card:active{transform:translateY(-3px);border-color:var(--green-700);box-shadow:0 16px 32px #1b3f2614}.card__icon{width:40px;height:40px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:var(--green-700);margin-bottom:1.1rem;transition:border-color .35s}.card:hover .card__icon{border-color:var(--green-700)}.card__icon svg{width:20px;height:20px}.card__title{font-size:1.05rem;margin-bottom:.4rem;white-space:nowrap}.card__body{font-size:.93rem;line-height:1.9;color:var(--ink-2)}@media(max-width:899px){.service__head-inner{grid-template-columns:1fr;align-items:start}.service__index{flex-direction:column;gap:0}.service__index a{min-width:0;flex-direction:row;align-items:baseline;gap:1rem;padding-block:.7rem;border-top:1px solid rgba(255,255,255,.25)}.svc{grid-template-columns:1fr;gap:1.75rem}.svc__media,.svc__text,.svc--flip .svc__media,.svc--flip .svc__text{grid-column:1;grid-row:auto}.svc__media{width:min(88%,460px)}.svc--flip .svc__media{margin-left:auto}.svc__items{grid-row:auto;grid-template-columns:1fr}}.outline{background:var(--white);border-top:1px solid var(--line)}.outline__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,5rem);align-items:start}.outline__media{margin-top:2.25rem;width:min(100%,360px)}.outline__table{border-top:1px solid var(--green-700)}.outline__row{display:grid;grid-template-columns:10em minmax(0,1fr);gap:1rem;padding:1.15rem 0;border-bottom:1px solid var(--line)}.outline__row dt{font-weight:700;font-size:.9rem;color:var(--green-700)}.outline__tel{color:inherit;text-decoration:underline;text-underline-offset:.2em;text-decoration-color:var(--line)}.outline__tel:hover{text-decoration-color:currentColor}@media(max-width:899px){.outline__grid{grid-template-columns:1fr}.outline__media{width:min(70%,320px);margin-left:auto}}@media(max-width:640px){.outline__row{grid-template-columns:1fr;gap:.1rem}}.site-footer{background:var(--green-950);color:#ffffffd1;padding:3.5rem 0 2rem;font-size:.9rem;line-height:1.9;border-top:1px solid var(--line-dark)}.site-footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:2rem 3rem}.site-footer a{color:inherit}.site-footer__brand .brand{margin-bottom:1rem}.site-footer__nav ul{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem}.site-footer__nav a{text-decoration:none;font-weight:400;letter-spacing:.06em}.site-footer__nav a:hover{text-decoration:underline;text-underline-offset:.3em}.site-footer__copy{text-align:center;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line-dark);font-family:var(--font-en);font-size:.72rem;letter-spacing:.1em;color:#fff9}.nf{min-height:60vh;display:grid;place-items:center;text-align:center;padding-block:var(--section-pad)}.nf__code{font-family:var(--font-en);font-weight:700;font-size:clamp(4rem,12vw,8rem);line-height:1;letter-spacing:.04em;color:var(--green-200)}.nf h1{margin:.5rem 0 1rem;font-size:clamp(1.4rem,1rem + 1.5vw,2rem)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.hero__scroll i{transform:none;opacity:1}}
