:root{--green:#2f714b;--deep:#173c2b;--light:#eaf3e7;--pale:#f3f8f0;--line:#d8e6d8;--body:#263b2f}
*{box-sizing:border-box}
html{background:#f4f7f1;color:var(--body);scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;line-height:1.75;-webkit-text-size-adjust:100%}
main{width:100%;max-width:480px;margin-inline:auto;background:#fff;container-type:inline-size}
h1,h2,h3,p,figure{margin:0}ul,ol{margin:0;padding:0;list-style:none}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}svg{display:block}section{scroll-margin-top:16px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #7fa66f;outline-offset:4px}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.hero.hero-square{background:#fff}.hero-square-image{width:100%;height:auto;aspect-ratio:1;object-fit:contain}.line-cta{padding:24px}.hero-line-cta{padding-top:22px;padding-bottom:21px;background:#f3f8f0;border-bottom:1px solid var(--line)}.line-cta-inset{padding:26px 0 0}.section>.line-cta{padding-bottom:0}.contact-line-cta{padding-top:0;padding-bottom:32px}.line-button{display:flex;align-items:center;justify-content:center;width:100%;max-width:360px;min-height:44px;margin-inline:auto;padding:0;border:0;border-radius:0;background:transparent;color:#fff;font:inherit;text-decoration:none}.line-button-art{display:block;flex:0 0 auto;width:100%;height:auto;aspect-ratio:416/106;overflow:hidden}.line-button:disabled{opacity:1;cursor:not-allowed;-webkit-text-fill-color:currentColor}.line-button:not(:disabled):hover{filter:brightness(.96)}.line-status{margin-top:11px;text-align:center;font-size:12px;line-height:1.7;color:var(--deep)}
.site-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 22px;background:#fff;border-bottom:1px solid var(--line);min-height:72px}
.wordmark{color:var(--deep);font-size:21px;font-weight:800;letter-spacing:-.04em;white-space:nowrap}.wordmark span{color:var(--green)}
.site-head nav{display:flex;align-items:center;gap:17px;font-size:13px;font-weight:600}.site-head nav a{display:flex;align-items:center;min-height:44px}
.hero{background:linear-gradient(140deg,#fbfdf9 0%,#e9f3e5 100%)}.hero-copy{padding:30px 24px 27px}.eyebrow{font-size:12px;line-height:1.5;font-weight:700;letter-spacing:.12em;color:var(--green)}.hero .eyebrow{font-size:12px;letter-spacing:.025em}
h1{margin:17px 0;font-size:clamp(24px,7.1cqw,34px);line-height:1.5;font-weight:800;letter-spacing:.01em;color:var(--deep)}h1 span{display:block;white-space:nowrap}h1 .accent{color:#3f8a57}
.hero-lead{font-size:15px;line-height:1.9}.primary-link{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:22px;padding:13px 17px;min-height:50px;background:var(--green);color:#fff;font-size:14px;font-weight:700;transition:background .18s}.primary-link:hover{background:#215c3b}.primary-link>span:last-child{font-size:21px}
.hero-gallery{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 12px 12px}.hero-gallery figure{height:115px;overflow:hidden;position:relative;background:#dce8d9}.hero-gallery .gallery-main{grid-column:1/-1;height:auto;aspect-ratio:1.94}.photo-crop{width:100%;height:100%}.hero-gallery img{width:100%;height:100%;object-fit:cover}.gallery-main figcaption,.process-photo figcaption,.family-photo figcaption{position:absolute;bottom:9px;left:10px;padding:3px 9px;background:#ffffffed;font-size:11px;line-height:1.6;color:#244a33}
.image-note{padding:0 13px 14px;text-align:right;font-size:11px;color:#3b5042;line-height:1.6}.section{padding:53px 24px}.section-heading{text-align:center;margin-bottom:28px}.section-heading .eyebrow{margin-bottom:10px}.section-heading h2,.process-intro h2{color:var(--deep);font-size:clamp(20px,5.8cqw,27px);font-weight:750;line-height:1.65;letter-spacing:.015em}.section-heading h2 span,.process-intro h2 span{display:block;white-space:nowrap}.section-heading>p:last-child:not(.eyebrow),.process-intro>p:last-child{margin-top:12px;font-size:13px;line-height:1.85}
.signs-image-section{background:#e4eae0}.signs-image{display:block;width:100%;height:auto}
.services{background:var(--light);padding:0}.service-overview-section{background:#fff}.service-overview-image{display:block;width:100%;height:auto}
.process-intro{text-align:center;padding:41px 8px 24px}.process-intro .eyebrow{margin-bottom:10px}.process-photo{margin-inline:-16px;aspect-ratio:1.94;position:relative;overflow:hidden}.process-list{padding:14px 8px 28px}.process-list li{display:flex;gap:19px;align-items:center;padding:17px 0;border-bottom:1px solid #cddfc9}.process-list li:last-child{border:0}.step-number{font-size:26px;line-height:1;font-weight:500;color:#6e9a73;letter-spacing:.015em;min-width:32px}.process-list h3{font-size:18px;font-weight:700;color:var(--deep);line-height:1.5}.process-list p{font-size:14px;line-height:1.8;margin-top:3px}
.examples{padding-inline:0;background:#fff}.examples .section-heading{padding-inline:24px}.examples .section-heading>p:last-child{font-size:13px}.evidence-image{width:100%;height:auto;background:#fff}
.pricing{background:var(--pale);padding-top:48px;padding-bottom:43px}.price-card{background:#fff;border:1px solid #bfd3b9}.offer-label{text-align:center;padding:12px 10px;background:#dcebd5;font-size:16px;color:var(--deep);font-weight:700;line-height:1.6}.price-inner{padding:25px 20px 20px;text-align:center}.unit{font-size:17px;font-weight:650;color:var(--deep)}.regular-price{font-size:15px;margin-top:8px}.regular-price small{font-size:12px}.amount{display:flex;align-items:baseline;justify-content:center;gap:6px;white-space:nowrap;color:var(--green);line-height:1.2;margin-top:7px}.amount>strong{font-size:clamp(52px,15cqw,72px);font-weight:750;letter-spacing:-.04em}.amount>span{font-size:24px;font-weight:700}.amount small{display:block;font-size:12px;font-weight:500;line-height:1.5;margin-top:2px}.travel-fee{display:inline-block;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 24px;margin-top:19px;color:var(--green);font-size:16px;font-weight:700}.other-price{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding-top:22px;margin-top:20px;border-top:1px solid var(--line);font-size:13px;text-align:left}.other-price strong{font-size:18px;color:var(--deep);font-weight:650}.other-price small{display:block;font-size:11px;text-align:right}.price-note{font-size:12px;line-height:1.85;margin-top:18px;text-align:center}
.faq-section{padding-top:49px;padding-bottom:48px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:0}.faq-list summary{list-style:none;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:19px 0;cursor:pointer;font-size:14px;line-height:1.75;font-weight:650;color:var(--deep)}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary>span:first-child{display:flex;gap:9px;align-items:baseline}.faq-list b{color:#6f9b72;flex:0 0 auto;font-size:16px}.toggle{position:relative;flex:0 0 12px;width:12px;height:12px;margin-top:7px}.toggle:before,.toggle:after{content:"";position:absolute;top:5px;left:0;width:12px;height:1px;background:var(--green)}.toggle:after{transform:rotate(90deg);transition:transform .2s}.faq-list details[open] .toggle:after{transform:rotate(0)}.answer{padding:0 8px 20px 28px;font-size:14px;line-height:1.9}
.contact{background:#e9f3e3}.family-photo{width:100%;aspect-ratio:1.72;position:relative;overflow:hidden}.contact-copy{text-align:center;padding:35px 20px 39px}.contact-copy .eyebrow{margin-bottom:12px}.contact-copy h2{font-size:clamp(18px,5.3cqw,24px);color:var(--deep);line-height:1.7;font-weight:750}.contact-copy h2 span{display:block;white-space:nowrap}.contact-offer{font-size:13px;line-height:1.9;margin-top:17px}.contact-offer strong{font-size:20px;color:var(--green)}.message-guide{margin-top:23px;padding:19px 10px;border-top:1px solid #bdd0b7;border-bottom:1px solid #bdd0b7;font-size:13px;line-height:1.9}.message-text{font-weight:700;font-size:clamp(13px,3.8cqw,17px);color:var(--deep);white-space:nowrap}
.site-footer{padding:30px 24px 26px;text-align:center;background:#fff}.site-footer>.wordmark{font-size:22px}.site-footer>p:not(.wordmark){margin-top:5px;font-size:12px}.site-footer>a{display:inline-flex;gap:12px;align-items:center;min-height:44px;margin-top:12px;font-size:12px;color:var(--green)}
@media(min-width:600px){main{box-shadow:0 0 45px #1c3c2510}}
.process-image-section{margin:34px 0 0;background:#fff}.process-image{display:block;width:100%;height:auto}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.site-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:80px;padding:12px 16px;background:#fff;border-bottom:1px solid #e6eee3}.brand-logo{width:clamp(132px,38cqw,180px);height:auto;flex:0 0 auto}.header-line-cta{width:clamp(136px,35cqw,160px);flex:0 0 auto}.header-line-cta .line-button{min-height:44px}.trust-image-section{background:#fff}.trust-image{display:block;width:100%;height:auto}

.intro-offer-section,.pricing-image-section{background:#fff}.offer-image{display:block;width:100%;height:auto}

.site-footer{border-top:1px solid var(--line)}.footer-logo{width:clamp(180px,50cqw,230px);height:auto;margin:0 auto 12px}.footer-phone{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.footer-phone p{font-size:12px;color:var(--deep)}.footer-phone a{display:inline-flex;align-items:center;min-height:44px;font-size:clamp(24px,7cqw,30px);line-height:1.5;letter-spacing:.035em;font-weight:650;color:var(--deep);white-space:nowrap}.footer-phone a:hover{text-decoration:underline;text-underline-offset:5px}
