@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{--paper:#fcfaf5;--ink:#303a34;--green:#07533f;--gold:#b89a61;--line:#dddcd2;--serif:'Noto Serif JP','Yu Mincho',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:1.9}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:6px}.skip{position:fixed;top:-100px;background:white;padding:10px;z-index:20}.skip:focus{top:0}header{display:flex;align-items:center;justify-content:space-between;padding:21px 5%;border-bottom:1px solid var(--line);background:var(--paper);gap:25px}.brand{display:flex;align-items:center;gap:18px}.logo{display:block;width:140px;height:46px;position:relative;overflow:hidden;mix-blend-mode:multiply}.logo img{position:absolute;width:202px;max-width:none;left:-31px;top:-49px}.brand-name{font-size:12px;letter-spacing:.08em}nav{display:flex;gap:32px;align-items:center;font-size:14px}nav a:hover,.text-link:hover{color:var(--gold)}.nav-contact{border-bottom:1px solid var(--green);padding:8px 0}.nav-contact span{margin-left:20px}.menu{display:none}.hero{padding:66px 5% 0;display:grid;grid-template-columns:1.05fr 1fr;gap:40px;max-width:1600px;margin:auto}.hero-copy{padding:23px 0 35px 6%}.eyebrow{font-size:12px;letter-spacing:.19em;font-weight:600}.hero h1{font-family:var(--serif);font-size:clamp(42px,4.9vw,76px);font-weight:500;line-height:1.65;letter-spacing:.06em;margin:30px 0 25px}.gold{color:var(--gold)}.hero-desc{font-size:17px;line-height:2.2}.text-link{display:inline-flex;gap:55px;align-items:center;margin-top:35px;border-bottom:1px solid var(--ink);padding-bottom:10px;font-size:14px}.hero-panel{background:var(--green);color:var(--paper);padding:38px 9%;display:flex;flex-direction:column;justify-content:space-between;min-height:570px;border-radius:180px 0 0 0}.panel-top{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.15em;padding-left:40px;color:#dbcaa6}.promise{font:500 clamp(28px,3.2vw,48px)/1.95 var(--serif);letter-spacing:.1em;margin:40px 0 42px}.promise span{font-size:.73em}.panel-bottom{border-top:1px solid #ffffff36;display:flex;align-items:end;justify-content:space-between;padding-top:20px;gap:10px}.panel-bottom p{font-size:14px;line-height:1.9}.small-mark{font-family:var(--serif);font-size:38px;color:#d6bd86}.small-mark span{font-size:20px;color:var(--paper)}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:17px 0 24px;font-size:12px;letter-spacing:.07em}.hero-bottom a{font-size:11px}.section{max-width:1440px;margin:auto;padding:115px 8%;display:grid;grid-template-columns:25% 1fr;gap:40px}.section-label{display:flex;gap:18px;align-items:start}.section-label>span{color:var(--gold);font-size:13px;padding-top:4px}.section-label p{margin:0;font-size:12px;letter-spacing:.12em;font-weight:600}.section-label small{display:block;font-size:14px;letter-spacing:.02em;font-weight:400;margin-top:8px}h2{font-family:var(--serif);font-size:clamp(30px,3vw,44px);line-height:1.8;font-weight:500;letter-spacing:.05em;margin:0 0 34px}.underline{border-bottom:2px solid var(--gold)}.prose{font-size:16px;line-height:2.3;max-width:720px}.prose p{margin:0 0 25px}.services{background:#f1f0e9;max-width:none;padding-left:max(8%,calc((100% - 1210px)/2));padding-right:max(8%,calc((100% - 1210px)/2))}.intro{margin-bottom:50px;color:#586258}.service{border-top:1px solid #cecec3;display:grid;grid-template-columns:95px 1fr;gap:30px;padding:35px 0 38px}.service-no{color:var(--gold);font:400 30px/1.4 var(--serif)}.service-no span{font:500 10px/1.6 'Noto Sans JP',sans-serif;letter-spacing:.07em;display:block;margin-top:10px;color:#5c685f}.service h3{font-family:var(--serif);font-weight:500;font-size:25px;margin:0 0 13px}.service h4{font-size:15px;color:var(--green);margin:0 0 16px;font-weight:600}.service p{font-size:16px;margin:0;line-height:2;color:#536056;max-width:620px}.service-list{list-style:none;padding:0;margin:22px 0 0;font-size:14px}.service-list li{border-top:1px solid #deded4;padding:8px 0}.service-list li:before{content:'—';color:var(--gold);margin-right:12px}dl{margin:40px 0 0}dl>div{display:grid;grid-template-columns:120px 1fr;padding:23px 0;border-top:1px solid var(--line)}dt{font-size:14px;color:#647064}dd{margin:0;font-size:16px}.contact{padding:78px 8%;background:var(--green);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:60px}.contact .eyebrow{color:#d6bd86}.contact h2{margin:20px 0}.contact p{font-size:14px;line-height:2}.contact-links{align-self:center}.contact-links a{display:block;position:relative;border-bottom:1px solid #ffffff55;padding:22px 30px 22px 0}.contact-links span{display:block;font-size:13px;color:#d1dace}.contact-links strong{font-size:clamp(15px,1.8vw,25px);font-weight:400;overflow-wrap:anywhere}.contact-links b{position:absolute;right:0;top:40px;color:#d6bd86}.contact-links a:hover{color:#d6bd86}footer{padding:45px 8%;display:flex;justify-content:space-between;gap:30px}footer strong{font-size:17px}footer p{font-size:13px;color:#657064}.footer-right{display:flex;flex-direction:column;justify-content:space-between;text-align:right;font-size:13px}.footer-right small{font-size:12px;color:#697568}@media(min-width:1600px){.hero-panel{min-height:620px}}@media(max-width:950px){nav{gap:18px}.brand-name{display:none}.section{grid-template-columns:1fr;gap:38px}.contact{grid-template-columns:1fr;gap:20px}.hero{gap:24px}.hero-panel{padding:32px 8%;min-height:530px}.panel-top{padding-left:20px}.panel-bottom{display:block}.small-mark{display:none}}@media(max-width:640px){header{padding:16px 6%;position:relative;flex-wrap:wrap}.menu{display:flex;align-items:center;gap:20px;border:0;background:none;color:var(--green);font-size:14px;padding:8px}.menu span{font-size:20px}nav{display:none;width:100%;padding:18px 0}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}nav a{padding:14px 0;border-bottom:1px solid var(--line)}.hero{padding:30px 6% 0;grid-template-columns:1fr;gap:27px}.hero-copy{padding:0 0 15px}.hero h1{font-size:44px;margin:22px 0}.hero-desc{font-size:16px}.text-link{margin-top:20px}.hero-panel{min-height:360px;border-radius:110px 0 0 0;padding:28px 11%}.panel-top{padding-left:35px;font-size:10px}.promise{font-size:32px;line-height:1.7;margin:27px 0}.panel-bottom p{font-size:13px}.hero-bottom{padding-top:0;flex-direction:column;gap:12px;font-size:11px}.hero-bottom a{display:none}.section{padding:70px 7%;gap:28px}h2{font-size:29px;letter-spacing:.02em}.prose{line-height:2.15}.desktop{display:none}.service{grid-template-columns:1fr;gap:15px;padding:28px 0}.service-no{display:flex;gap:18px;align-items:center;font-size:24px}.service-no span{margin:0;font-size:11px}.service h3{font-size:23px}.service h4{font-size:14px}.service p{font-size:15px}dl>div{grid-template-columns:80px 1fr;gap:15px}dd{font-size:14px}.contact{padding:55px 7%}.contact-links strong{font-size:18px}footer{padding:36px 7%;flex-direction:column}.footer-right{flex-direction:row;text-align:left;gap:20px}.brand-name{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Contact form follows the existing Arwin typography and palette. */
.inquiry{grid-column:1/-1;width:100%;max-width:880px;margin:3rem auto 0;padding:2.5rem;background:var(--paper,#fcfaf5);color:#203a31;border-radius:8px}
.inquiry h3{font-family:'Noto Serif JP',serif;font-size:1.65rem;margin:0 0 1rem}.inquiry>p{font-size:1rem;line-height:1.8;margin-bottom:2rem}.inquiry form{display:grid;gap:1.5rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.inquiry label{display:block;font-size:1rem;font-weight:500}.required,.optional{font:400 .875rem 'Noto Sans JP',sans-serif;margin-left:.5rem}.required{color:#07533f}.optional{color:#5a635f}.inquiry input:not([type=checkbox]),.inquiry textarea,.inquiry select{display:block;box-sizing:border-box;width:100%;margin-top:.6rem;padding:.85rem 1rem;border:1px solid #858f87;background:#fff;color:#253b32;border-radius:4px;font:inherit;font-size:1rem;line-height:1.6}.inquiry textarea{resize:vertical;min-height:170px}.inquiry input:focus-visible,.inquiry textarea:focus-visible,.inquiry select:focus-visible,.submit-inquiry:focus-visible{outline:3px solid #b89a61;outline-offset:3px}.inquiry .privacy-note{font-size:.95rem;line-height:1.8;margin:0}.inquiry .consent{display:flex;align-items:flex-start;gap:.75rem;font-weight:400;line-height:1.8}.consent input{width:1.25rem;height:1.25rem;flex-shrink:0;margin-top:.3rem;accent-color:#07533f}.submit-inquiry{justify-self:start;padding:1rem 2rem;background:#07533f;color:white;font:inherit;font-weight:500;border:1px solid #07533f;border-radius:4px;cursor:pointer}.submit-inquiry:hover{background:#093f32}.submit-inquiry:disabled{opacity:.65;cursor:wait}.form-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}#form-status{margin:0;font-size:1rem;line-height:1.9;overflow-wrap:anywhere}#form-status:empty{display:none}#form-status.success{padding:1rem;background:#e5eee8;color:#164b35}#form-status.error{padding:1rem;background:#f9e9e4;color:#842e23}.receipt,.inbox{max-width:900px;margin:auto;padding:3rem 1.5rem}.receipt h1,.inbox h1{font-family:'Noto Serif JP',serif;font-size:2rem;line-height:1.6}.inbox .eyebrow{margin-top:2rem}.inquiry-card,.inbox-empty{margin-top:1.5rem;padding:2rem;border:1px solid #d6d8ce;background:white}.inquiry-card h2{font-size:1.35rem;margin:1.2rem 0 .5rem}.inquiry-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;color:#536358;font-size:.875rem}.inquiry-message{white-space:pre-wrap;overflow-wrap:anywhere;border-top:1px solid #ddd;padding-top:1.2rem;line-height:1.9}.inquiry-card p,.receipt p{overflow-wrap:anywhere;line-height:1.8}.inquiry-card a{color:#07533f;text-decoration:underline}.reference{font-size:.875rem;color:#5d655d}.reply-link{display:inline-block;padding:.5rem 0}.inbox-pages{display:flex;justify-content:center;gap:2rem;margin-top:2rem}.inbox-pages a{text-decoration:underline}
@media(max-width:640px){.inquiry{padding:1.5rem;margin-top:2rem}.form-grid{grid-template-columns:1fr}.submit-inquiry{width:100%}.inquiry h3{font-size:1.35rem}.inquiry-card{padding:1.25rem}}
