.component { color:#263e31; background:#f1eadf; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:18px; line-height:1.9; padding-bottom:120px; overflow-wrap:anywhere; }
.component *, .component *::before, .component *::after { box-sizing:border-box; }
.component a { color:inherit; text-decoration:none; }
.component a:focus-visible { outline:3px solid #263e31; outline-offset:5px; }
.component .site-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 3.5%; }
.component .site-logo { font-size:32px; letter-spacing:.14em; font-weight:600; }
.component .nav-cta, .component .hero-link, .component .cv-bar-button { display:flex; align-items:center; justify-content:center; position:relative; border-radius:5px; background:#ae603e; color:#fffaf1; padding:12px 42px; letter-spacing:.08em; }
.component .nav-cta::after, .component .hero-link::after, .component .cv-bar-button::after, .component .services-link::after { content:""; width:10px; height:10px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg); position:absolute; right:22px; }
.component section { scroll-margin-top:24px; }
.component .hero-image { display:block; width:100%; aspect-ratio:2.1; object-fit:cover; }
.component .section-inner { max-width:1200px; margin:0 auto; padding:48px 6.4%; }
.component .hero-inner { position:relative; }
.component .hero-copy { max-width:760px; width:76%; }
.component .hero-title { font-size:clamp(30px,5.5vw,64px); line-height:1.4; font-weight:500; letter-spacing:.06em; margin:0 0 20px; }
.component .hero-text { font-size:21px; letter-spacing:.08em; margin:0 0 22px; }
.component .hero-link { font-size:24px; padding:16px 42px; }
.component .leaf-image { position:absolute; right:5%; top:28%; width:13%; max-width:145px; height:auto; }
.component .services-section, .component .faq-section { background:#eae2d4; }
.component .section-title { display:flex; align-items:baseline; gap:28px; margin:0 0 28px; font-size:clamp(25px,3.5vw,40px); font-weight:500; letter-spacing:.08em; line-height:1.6; }
.component .section-title::before { content:""; width:48px; height:1px; background:#263e31; flex-shrink:0; transform:translateY(-.3em); }
.component .services-list, .component .process-list, .component .faq-list { list-style:none; padding:0; margin:0; }
.component .service-item { display:grid; grid-template-columns:1.4fr 1fr; gap:42px; align-items:center; margin-bottom:24px; }
.component .service-item:nth-child(2) { grid-template-columns:1fr 1.4fr; }
.component .service-item:nth-child(2) .service-image { grid-column:1; grid-row:1; }
.component .service-item:nth-child(2) .service-text { grid-column:2; grid-row:1; }
.component .service-text { margin:0; font-size:23px; line-height:2; }
.component .service-image { width:100%; aspect-ratio:1.8; object-fit:cover; display:block; }
.component .services-link { display:inline-flex; align-items:center; position:relative; border-bottom:1px solid; padding:0 42px 6px 0; letter-spacing:.08em; }
.component .services-link::after { right:8px; }
.component .process-list { max-width:850px; }
.component .process-list li { position:relative; border-left:1px solid #ae603e; padding:16px 0 36px 44px; margin-left:16px; font-size:22px; }
.component .process-list li::before { content:""; position:absolute; left:-9px; top:30px; width:17px; height:17px; border-radius:50%; background:#ae603e; }
.component .process-list li:last-child { padding-bottom:12px; border-color:transparent; }
.component .faq-list { max-width:900px; }
.component .faq-list li { padding:24px 12px; border-bottom:1px solid #c9c3b6; font-size:21px; line-height:2; }
.component .faq-list li:last-child { border-bottom:0; }
.component .site-footer { background:#304c3c; color:#f8f2e8; padding:30px 5%; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.component .site-copyright { margin:0; font-size:16px; }
.component .cv-bar { position:fixed; bottom:0; left:0; right:0; z-index:10; padding:16px 2.5% calc(16px + env(safe-area-inset-bottom)); background:#304c3c; }
.component .cv-bar-button { min-height:60px; font-size:23px; }
@media (max-width:600px) {
.component { font-size:16px; padding-bottom:120px; }
.component .site-header { padding:12px 16px; gap:12px; }
.component .site-logo { font-size:20px; letter-spacing:.06em; }
.component .nav-cta { max-width:50%; font-size:12px; padding:9px 22px 9px 12px; }
.component .nav-cta::after { right:9px; width:6px; height:6px; }
.component .hero-image { aspect-ratio:1.55; }
.component .section-inner { padding:32px 22px; }
.component .hero-copy { width:100%; }
.component .hero-title { font-size:32px; }
.component .hero-text { font-size:16px; }
.component .hero-link { font-size:16px; padding:14px 30px 14px 14px; }
.component .leaf-image { position:static; display:block; width:65px; margin:24px 0 0 auto; }
.component .section-title { gap:14px; font-size:25px; }
.component .section-title::before { width:24px; }
.component .service-item, .component .service-item:nth-child(2) { grid-template-columns:1fr; gap:16px; margin-bottom:30px; }
.component .service-item:nth-child(2) .service-image, .component .service-item:nth-child(2) .service-text { grid-column:auto; grid-row:auto; }
.component .service-text, .component .process-list li, .component .faq-list li { font-size:17px; }
.component .process-list li { padding-left:25px; }
.component .site-footer { flex-direction:column; align-items:flex-start; gap:12px; }
.component .cv-bar-button { font-size:16px; padding:12px 30px; }
}