:root{--c-sage:#6b7f5e;--c-sage-d:#4f5f44;--c-sage-l:#8fa57e;--c-gold:#b8a472;--c-gold-d:#9a8555;--c-gold-l:#d4c5a0;--c-sand:#e8e1d5;--c-cream:#f6f3ee;--c-ivory:#fbf9f6;--c-white:#ffffff;--c-charcoal:#2a2a28;--c-dark:#1c1c1a;--c-text:#33332f;--c-text-2:#6e6e66;--c-text-3:#a3a39a;--c-border:#ddd8ce;--ff-body:'Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif;--ff-head:'Playfair Display','Georgia',serif;--h-header:72px;--w-max:1160px;--sp:140px;--ease:cubic-bezier(.22,1,.36,1);--tr:.35s var(--ease)}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--h-header)}body{font-family:var(--ff-body);font-size:15px;font-weight:300;line-height:1.9;color:var(--c-text);background:var(--c-ivory);-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -20px;padding:0 20px}.table-wrap table{min-width:600px}.container{max-width:var(--w-max);margin:0 auto;padding:0 32px}.section-header{margin-bottom:56px}.section-header--center{text-align:center}.section-label{display:inline-block;font-family:var(--ff-head);font-size:12px;font-weight:400;letter-spacing:4px;text-transform:uppercase;color:var(--c-sage);margin-bottom:18px}.section-label::after{content:'';display:block;width:28px;height:1px;background:linear-gradient(90deg,var(--c-gold),var(--c-gold-l));margin-top:10px}.section-header--center .section-label::after,.vision-header .section-label::after{margin-left:auto;margin-right:auto}.section-title{font-family:var(--ff-body);font-size:clamp(28px,3.8vw,42px);font-weight:400;letter-spacing:.06em;line-height:1.5;color:var(--c-charcoal)}.section-lead{font-size:14px;color:var(--c-text-2);margin-top:16px;letter-spacing:.03em}.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--ff-body);font-size:13px;font-weight:400;letter-spacing:.1em;border:none;cursor:pointer;transition:all var(--tr)}.btn-primary{padding:16px 38px;background:linear-gradient(135deg,var(--c-charcoal) 0%,#3a3a38 100%);color:var(--c-white);border-radius:0;box-shadow:0 2px 8px rgba(0,0,0,.1)}.btn-primary:hover{background:linear-gradient(135deg,var(--c-sage-d) 0%,var(--c-sage) 100%);transform:translateY(-2px);box-shadow:0 16px 40px rgba(107,127,94,.25)}.btn-ghost{padding:16px 32px;background:transparent;color:var(--c-text);border:1px solid var(--c-border)}.btn-ghost:hover{border-color:var(--c-sage);color:var(--c-sage-d)}.header{position:fixed;inset:0 0 auto;height:var(--h-header);z-index:100;background:rgba(251,249,246,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:box-shadow var(--tr)}.header.scrolled{box-shadow:0 1px 0 var(--c-border)}.header-inner{max-width:var(--w-max);margin:0 auto;padding:0 32px;height:100%;display:flex;align-items:center;justify-content:space-between}.logo{font-family:var(--ff-head);font-size:22px;font-weight:500;letter-spacing:3px;color:var(--c-charcoal);text-transform:lowercase}.nav-list{display:flex;gap:40px}.nav-link{font-size:11px;font-weight:400;letter-spacing:2.5px;text-transform:uppercase;color:var(--c-text-2);padding:4px 0;position:relative;transition:color var(--tr)}.nav-link::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--c-sage);transition:width var(--tr)}.nav-link:hover,.nav-link.active{color:var(--c-charcoal)}.nav-link:hover::after,.nav-link.active::after{width:100%}.hamburger{display:none;background:none;border:none;cursor:pointer;min-width:44px;min-height:44px;padding:12px;z-index:101;flex-direction:column;gap:7px;align-items:center;justify-content:center}.hamburger span{display:block;width:22px;height:1px;background:var(--c-charcoal);transition:all var(--tr)}.hamburger.active span:first-child{transform:rotate(45deg) translate(3px,3px)}.hamburger.active span:last-child{transform:rotate(-45deg) translate(3px,-3px)}.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}.hero-bg{position:absolute;inset:0;background:linear-gradient(160deg,#eae5db 0%,#dfdace 35%,#d6dbd0 65%,#cdd5c6 100%)}.hero-gradient{position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 20% 60%,rgba(107,127,94,.1),transparent),radial-gradient(ellipse 50% 40% at 80% 30%,rgba(176,155,113,.08),transparent)}.hero-grain{position:absolute;inset:0;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");background-size:180px}.hero-plant{position:absolute;color:var(--c-sage);pointer-events:none}.hero-plant--1{right:4%;bottom:0;width:180px}.hero-plant--2{left:6%;bottom:0;width:130px}.hero-plant--3{left:22%;bottom:0;width:80px}.hero-content{position:relative;z-index:2;max-width:var(--w-max);margin:0 auto;padding:calc(var(--h-header) + 80px) 32px 120px;width:100%}.hero-label{display:flex;align-items:center;gap:16px;margin-bottom:36px}.hero-label-line{width:40px;height:1px;background:var(--c-sage)}.hero-label span:last-child{font-family:var(--ff-head);font-size:11px;font-style:italic;letter-spacing:2px;color:var(--c-sage-d)}.hero-title{font-family:var(--ff-body);font-weight:200;font-size:clamp(40px,6.5vw,76px);letter-spacing:.06em;line-height:1.3;color:var(--c-charcoal);margin-bottom:32px}.hero-title em{font-family:var(--ff-head);font-weight:400;font-style:italic;color:var(--c-sage-d)}.hero-title-line{display:block}.hero-description{font-size:15px;font-weight:300;line-height:2.1;color:var(--c-text-2);max-width:480px;margin-bottom:48px}.hero-actions{display:flex;gap:16px;flex-wrap:wrap}.hero-scroll{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:2}.scroll-line{width:1px;height:56px;background:linear-gradient(to bottom,var(--c-sage),transparent);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:.8;transform:scaleY(1)}50%{opacity:.25;transform:scaleY(.5)}}.about{padding:var(--sp) 0;background:var(--c-white);position:relative;content-visibility:auto;contain-intrinsic-size:auto 800px}.about::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:48px;background:linear-gradient(to bottom,var(--c-gold-l),transparent)}.about-grid{display:grid;grid-template-columns:.9fr 1fr;gap:100px;align-items:center}.about-visual{position:relative}.about-image{position:relative;overflow:hidden;border-radius:4px}.about-image-inner svg{width:100%;height:auto;display:block}.about-image-accent{position:absolute;inset:24px -20px -20px 24px;border:1px solid var(--c-sage-l);border-radius:4px;z-index:-1;opacity:.4}.about-text p{font-size:15px;color:var(--c-text-2);margin-bottom:20px}.about-info{margin-top:48px;display:flex;flex-direction:column;gap:0}.about-info-item{display:flex;gap:24px;padding:18px 0;border-bottom:1px solid var(--c-border);align-items:baseline}.about-info-item:first-child{border-top:1px solid var(--c-border)}.about-info-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--c-sage);min-width:72px;font-weight:400}.about-info-value{font-size:14px;color:var(--c-text);line-height:1.7}.services{padding:var(--sp) 0;background:var(--c-cream);position:relative;content-visibility:auto;contain-intrinsic-size:auto 1000px}.services::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:48px;background:linear-gradient(to bottom,var(--c-gold-l),transparent)}.services-grid{display:flex;flex-direction:column;gap:32px;margin-top:48px}.service-card{display:flex;align-items:center;gap:56px;background:var(--c-white);padding:48px;border-radius:12px;border:1px solid var(--c-border);transition:all .4s var(--ease);position:relative;overflow:hidden}.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c-sage),var(--c-gold));opacity:0;transition:opacity var(--tr)}.service-card:hover{transform:translateY(-4px);box-shadow:0 20px 60px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.04);border-color:transparent}.service-card:hover::before{opacity:1}.service-card:nth-child(even){flex-direction:row-reverse}.service-card-icon{flex:0 0 40%;max-width:40%;color:var(--c-sage);display:flex;align-items:center;justify-content:center;padding:16px}.service-card-icon svg{width:100%;height:auto;max-width:160px}.service-card-body{flex:1;min-width:0}.service-card-num{display:block;font-family:var(--ff-head);font-size:13px;font-weight:400;color:var(--c-gold);letter-spacing:2px;margin-bottom:12px}.service-card-title{font-size:20px;font-weight:400;letter-spacing:.06em;color:var(--c-charcoal);margin-bottom:16px}.service-card-desc{font-size:14px;color:var(--c-text-2);line-height:2;margin-bottom:24px}.service-tags{display:flex;flex-wrap:wrap;gap:8px}.service-tags li{font-size:11px;letter-spacing:.08em;color:var(--c-sage-d);padding:6px 16px;border:1px solid rgba(107,127,94,.25);border-radius:20px;transition:all var(--tr)}.service-tags li:hover{background:var(--c-sage);color:var(--c-white);border-color:var(--c-sage)}.service-card-link{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-size:13px;font-weight:400;letter-spacing:.06em;color:var(--c-sage);transition:all var(--tr)}.service-card-link:hover{color:var(--c-sage-d);transform:translateX(4px)}.flow{padding:var(--sp) 0;background:var(--c-sand);position:relative;content-visibility:auto;contain-intrinsic-size:auto 400px}.flow::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:48px;background:linear-gradient(to bottom,var(--c-gold-l),transparent)}.flow-steps{display:flex;align-items:flex-start;gap:0;margin-top:20px}.flow-step{flex:1;text-align:center;padding:0 20px}.flow-step-num{font-family:var(--ff-head);font-size:32px;font-weight:400;color:var(--c-sage);opacity:.45;margin-bottom:20px}.flow-step h3{font-size:15px;font-weight:500;letter-spacing:.04em;color:var(--c-charcoal);margin-bottom:10px}.flow-step p{font-size:13px;color:var(--c-text-2);line-height:1.8}.flow-connector{width:48px;min-width:48px;height:1px;background:var(--c-gold-l);margin-top:20px;align-self:flex-start;position:relative;top:18px}.contact{padding:var(--sp) 0;background:var(--c-white);position:relative;content-visibility:auto;contain-intrinsic-size:auto 800px}.contact::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:48px;background:linear-gradient(to bottom,var(--c-gold-l),transparent)}.contact-layout{display:grid;grid-template-columns:.8fr 1fr;gap:100px;align-items:start}.contact-lead{font-size:15px;color:var(--c-text-2);line-height:2;margin-bottom:48px}.contact-details{display:flex;flex-direction:column;gap:0}.contact-detail{padding:20px 0;border-bottom:1px solid var(--c-border)}.contact-detail:first-child{border-top:1px solid var(--c-border)}.contact-detail-label{display:block;font-family:var(--ff-head);font-size:11px;font-weight:400;letter-spacing:3px;text-transform:uppercase;color:var(--c-sage);margin-bottom:6px}.contact-detail-value{font-size:14px;color:var(--c-text);line-height:1.7;transition:color var(--tr)}a.contact-detail-value:hover{color:var(--c-sage)}.contact-form{background:var(--c-cream);padding:48px;border-radius:8px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group{margin-bottom:24px}.form-group label{display:block;font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-text-2);margin-bottom:10px}.required{color:var(--c-sage);font-size:10px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:14px 0;font-size:14px;font-family:var(--ff-body);font-weight:300;color:var(--c-text);background:transparent;border:none;border-bottom:1px solid var(--c-border);border-radius:0;outline:none;transition:border-color var(--tr)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-bottom-color:var(--c-sage)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--c-text-3);font-weight:300}.form-group textarea{resize:vertical;min-height:100px}.form-group select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23a3a39a' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;padding-right:24px}.btn-submit{width:100%;justify-content:center;padding:18px;font-size:13px;margin-top:12px}.form-alert{padding:20px 24px;border-radius:8px;margin-bottom:24px;font-size:14px;line-height:1.8;animation:alertSlideIn .4s var(--ease)}@keyframes alertSlideIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.form-alert--success{background:rgba(107,127,94,.10);border:1px solid rgba(107,127,94,.30);color:var(--c-sage-d)}.form-alert--error{background:rgba(180,80,60,.08);border:1px solid rgba(180,80,60,.25);color:#8b4040}.form-alert-text{font-weight:400;margin:0}.form-alert-list{margin:10px 0 0;padding-left:20px;list-style:disc}.form-alert-list li{font-size:13px;font-weight:300;line-height:1.7;list-style:disc}.form-field-error{border-bottom-color:#b4503c !important}.form-field-error::placeholder{color:rgba(180,80,60,.5) !important}.btn-loading{opacity:.6;pointer-events:none;cursor:not-allowed}.footer{background:var(--c-dark);padding:64px 0 0;content-visibility:auto;contain-intrinsic-size:auto 200px}.footer-inner{display:flex;justify-content:space-between;align-items:center;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.07)}.footer .logo{background:linear-gradient(135deg,rgba(255,255,255,.9),var(--c-gold-l));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.footer-tagline{font-size:12px;color:rgba(255,255,255,.3);margin-top:8px;letter-spacing:.05em}.footer-nav{display:flex;gap:36px}.footer-nav a{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.35);transition:color var(--tr)}.footer-nav a:hover{color:rgba(255,255,255,.8)}.footer-bottom{padding:28px 0;text-align:center}.footer-bottom p{font-size:11px;color:rgba(255,255,255,.2);letter-spacing:.05em}.vision{padding:var(--sp) 0;background:linear-gradient(160deg,#2e2e2c 0%,var(--c-dark) 50%,#28281e 100%);color:var(--c-white);position:relative;overflow:hidden;content-visibility:auto;contain-intrinsic-size:auto 600px}.vision::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 50% 60% at 20% 80%,rgba(107,127,94,.15),transparent),radial-gradient(ellipse 40% 50% at 80% 20%,rgba(176,155,113,.1),transparent);pointer-events:none}.vision-header{text-align:center;margin-bottom:72px;position:relative}.vision .section-label{color:var(--c-sage-l);opacity:.7}.vision-statement{font-family:var(--ff-body);font-size:clamp(22px,3vw,32px);font-weight:300;letter-spacing:.06em;line-height:1.8;color:rgba(255,255,255,.85);margin-top:20px}.vision-statement em{font-family:var(--ff-head);font-style:italic;color:var(--c-gold-l)}.vision-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;position:relative}.vision-card{padding:40px 32px;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:all var(--tr);background:rgba(255,255,255,.02);backdrop-filter:blur(4px)}.vision-card:hover{border-color:rgba(184,164,114,.35);background:rgba(255,255,255,.05);transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,.25)}.vision-card-icon{width:44px;height:44px;color:var(--c-sage-l);margin-bottom:24px}.vision-card-icon svg{width:100%;height:100%}.vision-card h3{font-size:16px;font-weight:400;letter-spacing:.06em;color:rgba(255,255,255,.9);margin-bottom:12px}.vision-card p{font-size:13px;font-weight:300;color:rgba(255,255,255,.45);line-height:1.9}.cta-banner{padding:80px 0;background:linear-gradient(135deg,var(--c-sage-d) 0%,#3d5032 50%,#4a5a3a 100%);position:relative;overflow:hidden;content-visibility:auto;contain-intrinsic-size:auto 200px}.cta-banner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(255,255,255,.06),transparent 60%);pointer-events:none}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:48px;position:relative}.cta-text h2{font-size:clamp(22px,3vw,30px);font-weight:300;letter-spacing:.06em;line-height:1.6;color:var(--c-white)}.cta-text p{font-size:14px;color:rgba(255,255,255,.55);margin-top:12px}.btn-cta{background:var(--c-white);color:var(--c-charcoal);white-space:nowrap;flex-shrink:0;box-shadow:0 4px 16px rgba(0,0,0,.1)}.btn-cta:hover{background:linear-gradient(135deg,var(--c-gold-l),var(--c-gold));color:var(--c-charcoal);transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,0,0,.25)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-stagger .reveal:nth-child(2){transition-delay:.08s}.reveal-stagger .reveal:nth-child(3){transition-delay:.16s}.reveal-stagger .reveal:nth-child(4){transition-delay:.24s}@media(max-width:1024px){:root{--sp:100px}.about-grid{gap:60px}.contact-layout{gap:60px}.services-grid{gap:24px}.service-card{padding:36px;gap:40px}.service-card-icon svg{max-width:140px}.flow-connector{width:28px;min-width:28px}}@media(max-width:768px){:root{--h-header:60px;--sp:80px}html,body{overflow-x:hidden}.container{padding:0 20px}.hamburger{display:flex}.nav{position:fixed;top:0;right:0;width:280px;height:100vh;background:var(--c-ivory);transform:translateX(100%);transition:transform .4s var(--ease);padding:calc(var(--h-header) + 40px) 32px 32px;box-shadow:-12px 0 40px rgba(0,0,0,.08);z-index:99}.nav.open{transform:translateX(0)}.nav-list{flex-direction:column;gap:0}.nav-link{display:block;padding:18px 0;font-size:13px;letter-spacing:2px;border-bottom:1px solid var(--c-border)}.nav-link::after{display:none}.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:98;opacity:0;visibility:hidden;transition:all .3s ease}.nav-overlay.active{opacity:1;visibility:visible}.hero-content{padding:calc(var(--h-header) + 60px) 20px 100px}.hero-title{font-size:clamp(32px,9vw,48px)}.hero-description{font-size:14px}.hero-description br{display:none}.hero-plant--1{width:110px;right:0}.hero-plant--2{width:80px;left:0}.hero-plant--3{display:none}.hero-actions{flex-direction:column;gap:12px}.hero-actions .btn{justify-content:center;text-align:center;min-height:48px}.about-grid{grid-template-columns:1fr;gap:48px}.about-visual{order:-1;max-width:360px;margin:0 auto}.about-image-accent{display:none}.about-info-label{font-size:13px;min-width:80px}.about-info-value{font-size:14px}.services-grid{gap:20px;margin-top:32px}.service-card{flex-direction:column;padding:32px 24px;gap:24px}.service-card:nth-child(even){flex-direction:column}.service-card-icon{flex:none;max-width:100%;padding:0}.service-card-icon svg{max-width:100px}.service-card-title{font-size:18px}.service-card-desc{font-size:14px}.service-tags li{font-size:13px;padding:10px 18px;min-height:44px;display:inline-flex;align-items:center}.flow-steps{flex-direction:column;gap:0;align-items:stretch}.flow-step{text-align:left;display:flex;gap:20px;padding:24px 0;border-bottom:1px solid rgba(0,0,0,.06)}.flow-step:last-child{border-bottom:none}.flow-step-num{margin-bottom:0;min-width:40px;font-size:26px}.flow-step h3{font-size:15px}.flow-step p{font-size:14px}.flow-connector{display:none}.contact-layout{grid-template-columns:1fr;gap:48px}.contact-lead br{display:none}.contact-detail-label{font-size:13px}.contact-detail-value{font-size:15px}a.contact-detail-value{display:inline-block;padding:8px 0;min-height:44px}.contact-form{padding:32px 24px}.form-row{grid-template-columns:1fr;gap:0}.form-group label{font-size:13px}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:16px 0}.vision-cards{grid-template-columns:1fr;gap:20px}.vision-card{padding:32px 24px}.vision-card h3{font-size:17px}.vision-card p{font-size:14px}.cta-inner{flex-direction:column;text-align:center;gap:32px}.cta-text h2{font-size:22px}.footer-inner{flex-direction:column;gap:28px;text-align:center}.footer-nav{flex-wrap:wrap;justify-content:center;gap:8px 16px}.footer-nav a{font-size:13px;padding:12px 8px;min-height:44px;display:inline-flex;align-items:center}.footer-bottom p{font-size:12px}}@media(max-width:400px){.hero-title{font-size:28px}.btn-primary,.btn-ghost{padding:14px 24px;font-size:12px}.contact-form{padding:24px 16px}}