:root{--green-deep:#163728;--green:#1e4d35;--green-soft:#eef3ee;--cream:#F7F5EF;--accent:#C7B89A;--ink:#2b2b26;--ink-soft:#5c5c54;--line:#06c755;--border:#dde0d8}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans),"Hiragino Kaku Gothic ProN",sans-serif;color:var(--ink);background:var(--cream);line-height:1.9;word-break:auto-phrase;overflow-wrap:break-word;padding-bottom:76px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.header{background:#fff;border-bottom:1px solid var(--border)}.header-inner{max-width:1080px;margin:0 auto;padding:12px 16px 8px}.header-top{justify-content:space-between;gap:12px}.brand,.header-top{display:flex;align-items:center}.brand{gap:10px}.brand-logo{height:48px;width:auto;flex-shrink:0}.brand-text{display:flex;flex-direction:column}.brand-name{font-family:var(--font-serif),serif;font-size:1.25rem;font-weight:600;color:var(--green-deep);line-height:1.3}.brand-sub{font-size:.62rem;color:var(--ink-soft);letter-spacing:.01em;white-space:nowrap}.header-tel{display:none;text-align:right}.header-tel-label{display:block;font-size:.72rem;color:var(--green);font-weight:700}.header-tel-number{display:block;font-size:1.5rem;font-weight:700;color:var(--green-deep);line-height:1.3}.header-tel-hours{display:block;font-size:.72rem;color:var(--ink-soft)}.nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;background:transparent;border:none;cursor:pointer;flex-shrink:0}.nav-toggle-bar{display:block;width:100%;height:2px;border-radius:2px;background:var(--green-deep);transition:transform .3s ease,opacity .3s ease}.nav-toggle.is-open .nav-toggle-bar:first-child{transform:translateY(7px) rotate(45deg)}.nav-toggle.is-open .nav-toggle-bar:nth-child(2){opacity:0}.nav-toggle.is-open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s ease;overflow:hidden}.nav-list-clip{min-height:0}.nav.is-open{grid-template-rows:1fr}.nav-link{display:block;padding:13px 14px;font-size:.98rem;color:var(--green-deep);border-bottom:1px solid var(--border);transition:background .25s ease}.nav-link:hover{background:var(--green-soft)}.nav-link.nav-link-contact{margin:10px 0 12px;text-align:center;font-weight:700;border-radius:999px;border-bottom:none;background:var(--green-deep);color:#fff}.nav-link.nav-link-contact:hover{background:var(--green)}.hero{position:relative;overflow:hidden;color:#fff;padding:72px 16px 80px;text-align:center}.hero-bg{position:absolute;inset:0;z-index:0;background:linear-gradient(rgba(23,45,32,.55),rgba(23,45,32,.65)),url(/hero.jpg) 50% /cover no-repeat,linear-gradient(160deg,#2e5941,#1f3d2b 60%,#16291e)}.js .hero-bg{transform:scale(1.07);animation:hero-zoom 16s ease-out forwards}@keyframes hero-zoom{to{transform:scale(1)}}.hero-badges,.hero-sub,.hero-title{position:relative;z-index:1}.js .hero-title span{animation:fade-up 1.1s cubic-bezier(.22,.61,.36,1) both}.js .hero-title span:first-of-type{animation-delay:.2s}.js .hero-title span:nth-of-type(2){animation-delay:.4s}.js .hero-title span:nth-of-type(3){animation-delay:.6s}.js .hero-sub{animation:fade-up 1.1s ease .85s both}.js .hero-badge{animation:fade-up .8s ease both}.js .hero-badge:first-child{animation-delay:1.15s}.js .hero-badge:nth-child(2){animation-delay:1.3s}.js .hero-badge:nth-child(3){animation-delay:1.45s}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s cubic-bezier(.22,.61,.36,1)}.js .reveal.on{opacity:1;transform:none}.js .reveal-left{transform:translateX(-32px)}.js .reveal-right{transform:translateX(32px)}.js .reveal-scale{transform:scale(.94) translateY(18px)}.js .reveal-blur{filter:blur(6px);transition:opacity 1s ease,transform 1s cubic-bezier(.22,.61,.36,1),filter 1s ease}.js .reveal-left.on,.js .reveal-right.on,.js .reveal-scale.on{transform:none}.js .reveal-blur.on{filter:none}.js .flow-list .reveal:nth-child(2){transition-delay:.1s}.js .flow-list .reveal:nth-child(3){transition-delay:.2s}.js .flow-list .reveal:nth-child(4){transition-delay:.3s}.js .flow-list .reveal:nth-child(5){transition-delay:.4s}.js .faq-list .reveal:nth-child(2){transition-delay:.1s}.js .faq-list .reveal:nth-child(3){transition-delay:.2s}.js .faq-list .reveal:nth-child(4){transition-delay:.3s}.js .faq-list .reveal:nth-child(5){transition-delay:.4s}.js .service-grid .reveal:nth-child(2){transition-delay:.12s}.js .service-grid .reveal:nth-child(3){transition-delay:.24s}.js .service-grid .reveal:nth-child(4){transition-delay:.36s}.js .section-title.reveal:after{width:0;transition:width .9s ease .45s}.js .section-title.reveal.on:after{width:36px}@media (prefers-reduced-motion:reduce){.js .hero-badge,.js .hero-bg,.js .hero-sub,.js .hero-title span{animation:none;transform:none}.js .reveal{opacity:1;transform:none;filter:none;transition:none}.js .section-title.reveal:after{width:36px;transition:none}}.hero-title span{display:inline-block}.hero-title{font-family:var(--font-serif),serif;font-size:1.45rem;font-weight:600;line-height:2;letter-spacing:.06em;max-width:640px;margin:0 auto}.hero-sub{margin-top:16px;font-size:.92rem;opacity:.92}.hero-badges{margin-top:24px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.hero-badge{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.45);border-radius:999px;padding:4px 14px;font-size:.8rem}.section{position:relative;padding:56px 16px;background:#fff;overflow:hidden}.section.alt{background:transparent}.section-inner{max-width:880px;margin:0 auto}.section-title{font-family:var(--font-serif),serif;font-size:1.4rem;font-weight:600;color:var(--green-deep);text-align:center;letter-spacing:.08em;margin-bottom:8px}.section-title.light{color:#fff}.section-title:after{content:"";display:block;width:36px;height:2px;background:var(--green);margin:14px auto 0}.section-title.light:after{background:rgba(255,255,255,.7)}.section-lead{text-align:center;color:var(--ink-soft);font-size:.92rem;margin-bottom:32px}.section-body p+p{margin-top:1em}.greeting p,.hero-sub,.price-note,.section-body,.section-lead{line-height:1.95;word-break:auto-phrase;overflow-wrap:break-word}.more-link{display:block;width:-moz-fit-content;width:fit-content;margin:28px auto 0;padding:10px 28px;border:1px solid var(--green);border-radius:999px;color:var(--green-deep);font-size:.9rem;transition:background .3s ease,transform .3s ease}.more-link:hover{background:var(--green-soft);transform:translateY(-2px)}.service-grid{display:grid;grid-gap:16px;gap:16px}.service-card{background-color:#fff;background-repeat:no-repeat;background-position:right 10px bottom 10px;background-size:auto 70px;border:1px solid var(--border);border-radius:10px;padding:24px 20px;overflow:hidden}.section.alt .service-card{border-color:transparent;box-shadow:0 1px 6px rgba(31,61,43,.08)}.service-card h3{font-family:var(--font-serif),serif;font-size:1.1rem;color:var(--green-deep);margin-bottom:8px;max-width:calc(100% - 90px)}.service-card p{font-size:.92rem;color:var(--ink-soft);max-width:calc(100% - 90px)}.service-detail{background-color:#fff;background-repeat:no-repeat;background-position:right 16px bottom 16px;background-size:auto 90px;border:1px solid var(--border);border-radius:10px;padding:28px 22px;overflow:hidden}.service-detail,.service-detail h2{position:relative}.service-detail+.service-detail{margin-top:20px}.service-detail h2{font-family:var(--font-serif),serif;font-size:1.2rem;color:var(--green-deep);margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid var(--green-soft)}.service-detail p{font-size:.95rem}.service-points{margin-top:14px;list-style:none}.service-points li{position:relative;padding-left:1.4em;font-size:.92rem;color:var(--ink-soft)}.service-points li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}.section-logo-bg{position:absolute;right:6%;top:50%;transform:translateY(-50%);width:44%;max-width:240px;opacity:.05;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (min-width:768px){.section-logo-bg{right:8%;max-width:260px}}.wave-bottom{position:absolute;bottom:-1px;left:0;width:100%;line-height:0;pointer-events:none}.wave-bottom svg{display:block;width:100%;height:40px}.pillars-section{position:relative;overflow:hidden}.pillar-grid{display:grid;grid-gap:20px;gap:20px;margin-top:36px}.pillar{background:#fff;border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:8px;padding:28px 22px 24px;text-align:center}.pillar-number{font-size:.72rem;letter-spacing:.18em;color:var(--accent)}.pillar-number,.pillar-title{font-family:var(--font-serif),serif;font-weight:600;margin-bottom:12px}.pillar-title{font-size:1.08rem;color:var(--green-deep);letter-spacing:.06em}.pillar-text{font-size:.9rem;color:var(--ink-soft);line-height:1.85}.chappy-wrap{position:relative;margin-top:44px;display:flex;flex-direction:column;align-items:flex-end;gap:0;padding-right:4px}.chappy-bubble{background:#fff;border:1px solid var(--border);border-radius:999px;padding:9px 20px;font-size:.9rem;color:var(--green-deep);font-weight:600;position:relative;margin-right:24px;box-shadow:0 4px 14px rgba(22,55,40,.08);z-index:1}.chappy-bubble:after{content:"";position:absolute;bottom:-8px;right:36px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:9px solid #fff;filter:drop-shadow(0 2px 1px rgba(22,55,40,.06))}.chappy-img{width:240px;max-width:70%;height:auto;margin-top:-6px}@media (min-width:768px){.chappy-img{width:280px}}.greeting{max-width:640px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:10px;padding:28px 24px;font-family:var(--font-yuji),var(--font-serif),serif;font-size:1.08rem;line-height:2.1}.greeting p+p{margin-top:1em}.greeting-sign{text-align:right;font-family:var(--font-yuji),var(--font-serif),serif;color:var(--green-deep);margin-top:1.5em;font-size:1rem;line-height:2}.qr-box{margin-top:32px;background:var(--cream);border:1px solid var(--border);border-radius:10px;padding:24px 20px;text-align:center}.qr-box-title{font-weight:700;color:var(--green-deep);margin-bottom:12px}.qr-box img{margin:0 auto;border-radius:6px}.qr-box-note{margin-top:12px;font-size:.82rem;color:var(--ink-soft)}.flow-list{list-style:none;display:grid;grid-gap:12px;gap:12px}.flow-item{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 18px;display:flex;gap:16px;align-items:flex-start}.flow-icon{width:36px;height:36px;flex-shrink:0;object-fit:contain}.flow-item strong{display:block;color:var(--green-deep);font-size:1rem}.flow-item span{font-size:.88rem;color:var(--ink-soft)}.price-box{background:#fff;border:1px solid var(--border);border-radius:10px;padding:28px 22px;text-align:center}.price-main{font-family:var(--font-serif),serif;font-size:1.25rem;color:var(--green-deep);font-weight:600}.price-note{margin-top:10px;font-size:.9rem;color:var(--ink-soft)}.faq-list{display:grid;grid-gap:12px;gap:12px}.faq-item{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px 20px}.faq-q{display:flex;gap:10px;font-weight:700;color:var(--green-deep);font-size:.97rem}.faq-q:before{content:"Q";color:var(--green);font-family:var(--font-serif),serif;flex-shrink:0}.faq-a{display:flex;gap:10px;margin-top:8px;font-size:.92rem;color:var(--ink-soft)}.faq-a:before{content:"A";color:#b08d4f;font-family:var(--font-serif),serif;font-weight:600;flex-shrink:0}.works-empty{background:var(--cream);border:1px dashed var(--border);border-radius:10px;padding:48px 20px;text-align:center;color:var(--ink-soft)}.works-empty strong{display:block;font-family:var(--font-serif),serif;font-size:1.1rem;color:var(--green-deep);margin-bottom:8px}.works-grid{display:grid;grid-gap:20px;gap:20px}.work-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.work-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.work-card-body{padding:16px 18px}.work-card h3{font-size:1rem;color:var(--green-deep)}.work-card p{font-size:.88rem;color:var(--ink-soft);margin-top:6px}.work-card time{display:block;font-size:.78rem;color:var(--ink-soft);margin-top:8px}.contact-cta{background:var(--green-deep);color:#fff;padding:64px 16px;text-align:center;position:relative;overflow:hidden}.contact-cta-catch{font-family:var(--font-serif),serif;font-size:1.18rem;font-weight:600;letter-spacing:.06em;margin-bottom:8px}.contact-cta-sub{font-size:.88rem;opacity:.85;margin-bottom:32px}.contact-cta-lead{font-size:.95rem;opacity:.95;margin-bottom:28px}.tel-button{display:block;max-width:480px;margin:0 auto;background:#fff;color:var(--green-deep);border-radius:12px;padding:18px 24px;box-shadow:0 2px 10px rgba(0,0,0,.18);transition:transform .3s ease,box-shadow .3s ease}.tel-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.24)}.tel-button-label{display:block;font-size:.8rem;font-weight:700;color:var(--green)}.tel-button-number{display:block;font-size:2rem;font-weight:700;letter-spacing:.03em;line-height:1.4}.tel-button-hours{display:block;font-size:.78rem;color:var(--ink-soft)}.line-button{display:block;max-width:480px;margin:14px auto 0;background:var(--line);color:#fff;font-weight:700;border-radius:12px;padding:16px 24px;font-size:1.05rem;transition:transform .3s ease,box-shadow .3s ease}.line-button:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.2)}.contact-cta-note{margin-top:20px;font-size:.82rem;opacity:.85}.info-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.info-table td,.info-table th{padding:14px 16px;border-bottom:1px solid var(--border);font-size:.92rem;text-align:left;vertical-align:top}.info-table tr:last-child td,.info-table tr:last-child th{border-bottom:none}.info-table th{background:var(--green-soft);color:var(--green-deep);width:7em;font-weight:700;white-space:nowrap}.area-note{margin-top:12px;font-size:.85rem;color:var(--ink-soft)}.footer{background:var(--green-deep);color:rgba(255,255,255,.92);padding:40px 16px 32px}.footer-inner{max-width:880px;margin:0 auto}.footer-brand{display:flex;align-items:center;gap:14px}.footer-logo{width:76px;height:auto;flex-shrink:0;filter:brightness(0) invert(1)}.footer-brand-text{display:flex;flex-direction:column}.footer-name{font-family:var(--font-serif),serif;font-size:1.2rem;line-height:1.3}.footer-line{font-size:.78rem;opacity:.72;margin-top:5px;letter-spacing:.02em}.footer-rep{font-size:.96rem;opacity:.9;margin-top:5px;letter-spacing:.04em}.footer-info{margin-top:20px;display:grid;grid-gap:8px;gap:8px;font-size:.85rem}.footer-info div{display:flex;gap:12px}.footer-info dt{width:5.5em;flex-shrink:0;opacity:.75}.footer-copy{margin-top:28px;font-size:.75rem;opacity:.6}.mobile-cta{position:fixed;bottom:0;left:0;right:0;display:flex;z-index:100;box-shadow:0 -2px 10px rgba(0,0,0,.15)}.mobile-cta a{flex:1 1;display:flex;align-items:center;justify-content:center;gap:8px;text-align:left;padding:10px 8px 12px;color:#fff}.cta-icon{width:22px;height:22px;fill:#fff;flex-shrink:0}.mobile-cta-tel{background:var(--green-deep)}.mobile-cta-line{background:var(--line)}.mobile-cta-main{display:block;font-weight:700;font-size:1rem}.mobile-cta-sub{display:block;font-size:.72rem;opacity:.9}.back-bar{position:fixed;left:12px;bottom:88px;z-index:40}.back-link{display:inline-flex;align-items:center;gap:5px;padding:10px 16px;background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:999px;font-size:.85rem;font-weight:500;color:var(--green-deep);box-shadow:0 3px 12px rgba(22,55,40,.18);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:background .25s ease}.back-link:hover{background:var(--green-soft)}@media (min-width:768px){.back-bar{bottom:24px}}.page-header{background:var(--green-soft);padding:40px 16px;text-align:center}.page-header h1{font-family:var(--font-serif),serif;font-size:1.45rem;font-weight:600;color:var(--green-deep);letter-spacing:.08em}.page-header p{margin-top:8px;font-size:.88rem;color:var(--ink-soft)}@media (min-width:768px){body{padding-bottom:0}.mobile-cta{display:none}.header-tel{display:block}.hero{padding:120px 16px 130px}.hero-title{font-size:2.1rem}.hero-sub{font-size:1rem}.section{padding:80px 24px}.section-title{font-size:1.7rem}.pillar-grid,.service-grid{grid-template-columns:repeat(3,1fr)}.works-grid{grid-template-columns:repeat(2,1fr)}.nav-toggle{display:none}.nav{display:block;grid-template-rows:none;overflow:visible}.nav-list-clip{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:10px 0}.nav-link{display:inline-block;padding:6px 14px;font-size:.92rem;border-radius:999px;border-bottom:none}.nav-link.nav-link-contact{margin:0}}