:root{--red:#e60012;--ink:#292323;--muted:#6c6262;--line:#e8e3e3;--soft:#faf7f7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:white;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.9}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--red);outline-offset:6px}header{max-width:1440px;margin:auto;padding:30px 5.5%;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:block;max-width:240px}.brand img{width:100%;height:auto;display:block}nav{display:flex;gap:30px;font-size:.875rem;font-weight:600}nav a{padding:8px 0;border-bottom:2px solid transparent}nav a:hover{border-color:var(--red)}.hero{position:relative;max-width:1440px;margin:auto;padding:80px 8% 75px;min-height:660px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;border-bottom:1px solid var(--line);background:linear-gradient(105deg,#fff 60%,#faf3f3)}.eyebrow{font-size:.875rem;letter-spacing:.16em;color:var(--red);font-weight:700;margin:0 0 24px}h1{font-size:clamp(2.3rem,4.4vw,4rem);line-height:1.55;letter-spacing:.06em;margin:0 0 27px;font-weight:600}h1 span{color:var(--red)}.hero-copy{color:var(--muted);margin:0 0 32px;line-height:2.1}.button{display:inline-block;border:1px solid var(--red);color:var(--red);padding:12px 30px;border-radius:30px;font-size:.9375rem;font-weight:600;transition:background .2s,color .2s}.button:hover{background:var(--red);color:#fff}.hero-side{padding-left:45px;align-self:center;color:#b98686}.hero-side>span{display:block;font-family:Georgia,serif;font-size:clamp(1.8rem,3.1vw,2.8rem);line-height:1.7;letter-spacing:.02em}.side-rule{height:1px;width:70px;background:var(--red);margin:30px 0}.hero-side p{font-size:.75rem;letter-spacing:.16em}.hero-bottom{position:absolute;right:8%;bottom:20px;font-size:.875rem;color:var(--muted)}.section{max-width:1200px;margin:auto;padding:100px 40px;display:grid;grid-template-columns:260px 1fr;gap:70px}.section-label .number{color:var(--red);font-size:.875rem;font-weight:600;display:block;margin-bottom:16px}.section-label p{font-size:.75rem;letter-spacing:.14em;color:var(--muted);margin:0 0 5px}h2{font-size:1.7rem;font-weight:600;margin:0;letter-spacing:.05em}h3{font-weight:600}.about-body h3{font-size:2rem;line-height:1.8;margin:0 0 28px}.about-body p{margin:0 0 20px;color:var(--muted)}.about-body p:last-child{margin-bottom:0}.services-wrap{background:var(--soft)}.service-list{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.service{padding:0 0 30px;margin:0 0 35px;border-bottom:1px solid #ded5d5}.service:last-child{margin-bottom:0}.service-no{font-size:.75rem;letter-spacing:.09em;color:var(--red)}.service h3{font-size:1.25rem;margin:12px 0}.service p{margin:0;color:var(--muted);font-size:.9375rem}.company dl{margin:0}.company dl>div{display:grid;grid-template-columns:140px 1fr;gap:24px;border-bottom:1px solid var(--line);padding:22px 0}.company dl>div:first-child{padding-top:0}.company dt{font-size:.875rem;color:var(--muted)}.company dd{margin:0;overflow-wrap:anywhere}.english-name{display:block;color:var(--muted);font-size:.875rem;margin-top:3px}.company a:hover{text-decoration:underline}.contact{background:#f8eded;padding:80px 30px;text-align:center}.contact .eyebrow{margin-bottom:20px}.contact h2{font-size:clamp(1.5rem,3vw,2rem)}.contact p:not(.eyebrow){color:var(--muted);margin:22px 0}.contact-link{font-size:clamp(1.25rem,3vw,2rem);display:inline-block;line-height:1.8;border-bottom:1px solid var(--red);overflow-wrap:anywhere}.contact-link:hover{color:var(--red)}.mail-note{display:block;font-size:.75rem;color:var(--muted);margin-top:16px}footer{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:40px 5.5%}footer .brand{max-width:190px}footer p{font-size:.75rem;color:var(--muted)}@media(max-width:900px){header{padding:25px 5%;flex-wrap:wrap}nav{gap:20px;flex-wrap:wrap}.hero{padding:55px 6% 70px;min-height:600px}.hero-side{padding-left:20px}.section{grid-template-columns:200px 1fr;gap:30px;padding:75px 6%}.service-list{grid-template-columns:1fr}.company dl>div{grid-template-columns:110px 1fr;gap:20px}}@media(max-width:600px){html{scroll-padding-top:25px}header{gap:22px}.brand{max-width:210px}nav{gap:10px 20px;font-size:.875rem}.hero{min-height:auto;padding:45px 6% 75px}.hero-side{display:none}h1{font-size:2.15rem;letter-spacing:.02em}.hero-copy{font-size:.9375rem}.hero-bottom{left:6%;right:auto;bottom:13px}.desktop{display:none}.section{display:block;padding:60px 6%}.section-label{margin-bottom:32px}.section-label .number{margin-bottom:10px}.about-body h3{font-size:1.6rem}.service{padding-bottom:25px;margin-bottom:28px}.company dl>div{grid-template-columns:1fr;gap:6px;padding:18px 0}.contact{padding:55px 6%}.contact h2{font-size:1.4rem}footer{flex-direction:column;align-items:flex-start;padding:30px 6%;gap:15px}footer p{margin:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.form-page{max-width:800px;margin:auto;padding:50px 6% 80px}.form-page h1{font-size:2rem}.form-page p{color:var(--muted)}.field{display:block;margin:22px 0;font-size:1rem}.field>span{display:block;margin-bottom:7px;font-weight:600}input,select,textarea{width:100%;font:inherit;color:var(--ink);padding:12px;border:1px solid #b9aeae;border-radius:6px;background:white}textarea{min-height:180px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--red);outline-offset:2px}.consent{display:flex;gap:12px;align-items:flex-start;margin:24px 0}.consent input{width:20px;height:20px;flex-shrink:0;margin-top:5px}.privacy{background:var(--soft);padding:20px;border-radius:8px;font-size:.875rem}.privacy h2{font-size:1.1rem}.privacy p{margin:10px 0 0}.form-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:25px}button.button{background:white;cursor:pointer;font:inherit}button.button:hover{background:var(--red)}.error{border-left:3px solid var(--red);padding:12px 18px;background:#fff2f2}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.review{margin:25px 0}.review dt{font-weight:600;margin-top:20px}.review dd{margin:5px 0;padding-bottom:15px;border-bottom:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere}html[lang=en] h1{letter-spacing:0;line-height:1.35}html[lang=en] nav{gap:22px}html[lang=en] .hero-inner{max-width:700px}
