*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--green: #5aab7a;--green-dark: #3d8a5e;--green-light: #e8f7ed;--amber: #e8a84a;--beige: #f7f3ee;--cream: #fdfaf6;--text: #2a2a2a;--text-mid: #555;--text-light: #888;--white: #fff}html{scroll-behavior:smooth}body{font-family:Noto Sans JP,Helvetica Neue,sans-serif;color:var(--text);background:var(--white);line-height:1.75}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{max-width:1100px;margin:0 auto;padding:0 24px}.section{padding:88px 0}.section-cream{background:var(--cream)}.section-green{background:var(--green-light)}.section-beige{background:var(--beige)}.kicker{font-family:Poppins,sans-serif;font-size:11px;font-weight:900;letter-spacing:.15em;color:var(--green);text-transform:uppercase;margin-bottom:12px}.section-title{font-size:clamp(24px,3.5vw,38px);font-weight:900;line-height:1.35;margin-bottom:20px}.section-title span{display:block}.section-copy{color:var(--text-mid);line-height:1.85;max-width:560px}.section-head{display:flex;gap:48px;align-items:flex-start;margin-bottom:56px}.section-head>div:first-child{flex:1}.section-head .section-copy{flex:1;margin-top:52px}.card{background:var(--white);border-radius:12px;padding:32px 28px;box-shadow:0 2px 12px #0000000f}.card-mark{display:block;font-family:Poppins,sans-serif;font-size:13px;font-weight:900;color:var(--green);letter-spacing:.08em;margin-bottom:12px}.card h3{font-size:17px;font-weight:700;margin-bottom:8px}.card p{font-size:14px;color:var(--text-mid);line-height:1.75}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.hero{position:relative;background:var(--green-light)}.hero-image{width:100%;max-height:520px;object-fit:cover}.hero-content{position:absolute;display:flex;flex-direction:column;justify-content:center;padding:60px 24px;max-width:1100px;margin:0 auto;inset:0}.hero h1{font-size:clamp(28px,4.5vw,52px);font-weight:900;line-height:1.3;margin-bottom:20px;color:var(--white);text-shadow:0 2px 12px rgba(0,0,0,.35)}.hero h1 span{display:block}.hero-lead{font-size:clamp(14px,1.5vw,16px);color:#ffffffeb;max-width:520px;margin-bottom:28px;text-shadow:0 1px 6px rgba(0,0,0,.3)}.button{display:inline-flex;align-items:center;justify-content:center;padding:14px 32px;border-radius:6px;font-weight:700;font-size:15px;transition:all .2s}.button-primary{background:var(--green);color:var(--white)}.button-primary:hover{background:var(--green-dark)}.button-white{background:var(--white);color:var(--green)}.button-white:hover{background:var(--beige)}.hero-actions{display:flex;gap:16px;flex-wrap:wrap}.site-header{position:sticky;top:0;z-index:100;background:#fffffff5;backdrop-filter:blur(8px);border-bottom:1px solid rgba(90,171,122,.15)}.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;max-width:1100px;margin:0 auto}.site-logo{font-family:Poppins,sans-serif;font-weight:900;font-size:18px;color:var(--green);letter-spacing:.03em}.site-logo span{display:block;font-size:10px;font-weight:700;color:var(--text-light);letter-spacing:.08em}.site-nav{display:flex;gap:28px;align-items:center}.site-nav a{font-size:14px;font-weight:700;color:var(--text-mid);transition:color .2s}.site-nav a:hover{color:var(--green)}.nav-cta{background:var(--green);color:var(--white)!important;padding:10px 20px;border-radius:6px}.site-footer{background:#2a3d32;color:#ffffffb3;padding:48px 24px 24px}.footer-inner{max-width:1100px;margin:0 auto}.footer-logo{font-family:Poppins,sans-serif;font-size:20px;font-weight:900;color:#fff;margin-bottom:4px}.footer-sub{font-size:12px;margin-bottom:24px}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px}.footer-col h4{font-size:13px;font-weight:700;color:#fff;margin-bottom:12px}.footer-col p,.footer-col a{font-size:13px;line-height:1.8;display:block}.footer-copy{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;font-size:12px;text-align:center}.info-ribbon{background:var(--amber);padding:20px 24px}.info-ribbon .wrap{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.info-ribbon b{font-size:15px;font-weight:900;color:#2a2a2a;white-space:nowrap}.info-ribbon p{font-size:14px;color:#2a2a2a;flex:1}.schedule-row{display:flex;gap:24px;padding:18px 0;border-bottom:1px solid rgba(90,171,122,.15)}.schedule-row b{font-family:Poppins,sans-serif;font-weight:900;font-size:15px;color:var(--green);width:56px;flex-shrink:0}.schedule-row strong{display:block;font-size:15px;margin-bottom:2px}.schedule-row span{font-size:13px;color:var(--text-mid)}.news-item{display:flex;gap:20px;align-items:flex-start;padding:20px 0;border-bottom:1px solid #eee}.news-date{font-family:Poppins,sans-serif;font-size:12px;font-weight:700;color:var(--green);white-space:nowrap;padding-top:3px}.news-item h3{font-size:15px;font-weight:700;margin-bottom:4px}.news-item p{font-size:13px;color:var(--text-mid)}.cta-band{background:var(--green-dark);padding:72px 24px;text-align:center}.cta-band h2{font-size:clamp(20px,3vw,32px);font-weight:900;color:#fff;margin-bottom:28px}.reveal{opacity:0;transform:translateY(32px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}.page-hero{background:var(--green-light);padding:72px 24px 56px}.page-hero h1{font-size:clamp(28px,4vw,44px);font-weight:900;margin-bottom:12px}.page-hero p{color:var(--text-mid);max-width:560px}.proposal-section{padding:64px 0}.proposal-section h2{font-size:26px;font-weight:900;margin-bottom:16px}.price-table{width:100%;border-collapse:collapse;margin-top:24px}.price-table th,.price-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #eee;font-size:14px}.price-table th{background:var(--green-light);font-weight:900}.price-table .highlight{background:var(--amber);color:#2a2a2a;font-weight:900}@media (max-width: 860px){.grid-3{grid-template-columns:1fr 1fr}.section-head{flex-direction:column;gap:16px}.section-head .section-copy{margin-top:0}.site-nav{display:none}}@media (max-width: 560px){.grid-3,.grid-2{grid-template-columns:1fr}.hero-content{position:relative;padding:40px 24px}.hero-image{max-height:280px}}
