:root{--ink:#162b27;--paper:#f7f5ef;--white:#fffdf7;--muted:#4c6259;--line:#d9d9cd;--gold:#ae8750;--dark:#122c27;--serif:"Noto Serif CJK JP","Yu Mincho","Hiragino Mincho ProN","Songti TC","PMingLiU",serif;--sans:system-ui,-apple-system,"Noto Sans CJK JP","PingFang TC",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.85 var(--sans);overflow-wrap:anywhere}a{color:inherit;text-underline-offset:.23em}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b58445;outline-offset:4px}img{display:block;width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.35;font-weight:600}h1,h2{font-family:var(--serif);letter-spacing:.03em}h1{font-size:clamp(2.25rem,4.2vw,4.55rem)}h2{font-size:clamp(1.85rem,3.3vw,3.2rem)}h3{font-size:1.25rem}p+p{margin-top:1em}.wrap{width:min(1320px,calc(100% - 104px));margin-inline:auto}.skip{position:absolute;top:8px;left:8px;z-index:8;transform:translateY(-150%);background:white;padding:8px 16px}.skip:focus{transform:none}
header{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:2}.topbar{display:flex;align-items:center;min-height:86px;gap:26px;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:13px;text-decoration:none;line-height:1.1;flex-shrink:0}.brand img{width:43px;height:43px}.brand b{font-family:Georgia,serif;font-size:1.24rem;font-weight:500;letter-spacing:.125em;display:block}.brand small{font-size:.68rem;letter-spacing:.13em;display:block;margin-top:7px}.desktop{display:flex;align-items:center;gap:24px;font-size:.86rem;font-weight:600}.desktop a,.tools a{text-decoration:none;white-space:nowrap}.desktop a[aria-current=page]{border-bottom:1px solid var(--gold)}.tools{display:flex;align-items:center;gap:13px}.lang{font-size:.81rem;border:1px solid var(--line);padding:9px 13px}.mobile{display:none}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.mobile nav{position:absolute;right:20px;top:calc(100% - 1px);left:20px;background:var(--white);padding:12px 22px 18px;box-shadow:0 15px 35px #132d2b24;border:1px solid var(--line);display:grid}.mobile nav a{padding:9px 0;border-bottom:1px solid var(--line)}
.eyebrow{font-size:.72rem;letter-spacing:.21em;font-weight:750;color:#6c5735;text-transform:uppercase}.hero{display:grid;grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);min-height:clamp(580px,74vh,790px);background:var(--dark);color:var(--white);position:relative;overflow:hidden}.hero-copy{align-self:center;padding:68px max(36px,calc((100vw - 1320px)/2)) 65px max(52px,calc((100vw - 1320px)/2));padding-right:clamp(24px,4.1vw,64px);position:relative;z-index:1}.hero h1{margin:25px 0 24px}.hero .eyebrow,.dark .eyebrow{color:#e0c395}.hero .lead{color:#e2e9e3;max-width:470px}.hero-visual{min-width:0;position:relative;min-height:380px;background:#254741}.hero-visual img{height:100%;width:100%;position:absolute;inset:0;object-fit:cover;object-position:55% 52%}.hero-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0e211d9e,transparent 35%),linear-gradient(90deg,#122c2730,transparent 28%);pointer-events:none}.hero-visual figcaption{position:absolute;z-index:1;right:30px;bottom:24px;color:white;font-size:.68rem;font-weight:700;letter-spacing:.15em}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:15px;border:1px solid transparent;background:var(--dark);color:white;padding:10px 20px;font:650 .88rem/1.45 var(--sans);text-decoration:none;cursor:pointer}.button:hover{filter:brightness(1.1);text-decoration:underline}.primary{background:#e1c392;color:#172a24}.ghost{background:transparent;border-color:#c3d5cb80;color:inherit}.outline{background:transparent;border-color:#788d80;color:var(--ink)}.button:disabled{opacity:.6;cursor:wait}
.ribbon{border-bottom:1px solid var(--line)}.ribbon .wrap{display:flex;gap:16px 28px;justify-content:space-between;align-items:center;padding-block:14px;font-size:.8rem}.ribbon strong{font-weight:650}.section{padding:clamp(52px,7vw,100px) 0}.section.soft{background:#eeeee5;border-block:1px solid var(--line)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}.section-head h2,.intro h1,.banner h2{margin-top:9px}.section-head p:not(.eyebrow){max-width:470px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:var(--white)}.cards article{padding:24px;min-width:0}.cards article+article{border-left:1px solid var(--line)}.cards h3{margin:16px 0 10px}.cards p,.detail p,.section-lead{color:var(--muted)}.cards a,.text-link{display:inline-block;margin-top:17px;font-weight:700;font-size:.87rem}.num{font:1.35rem Georgia,serif;color:#785c31}.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,6vw,88px);align-items:start}.detail{display:grid;gap:0}.detail article{border-top:1px solid var(--line);padding:22px 0}.detail h3{margin-bottom:8px}.dark{background:var(--dark);color:var(--white)}.banner{padding:52px 0}.banner .wrap{display:flex;justify-content:space-between;align-items:center;gap:28px}.banner p:not(.eyebrow){margin-top:10px;color:#e1e9e2}.banner .button{flex-shrink:0}
.intro{padding:25px 0 clamp(42px,6vw,78px);border-bottom:1px solid var(--line);background:linear-gradient(115deg,#e9e9df,#f7f5ef 65%)}.crumb{margin-bottom:38px;font-size:.78rem;color:var(--muted)}.intro .lead{max-width:725px;margin-top:19px;color:var(--muted);font-size:1.05rem}.definition{margin:0}.definition div{border-top:1px solid var(--line);padding:14px 0;display:grid;grid-template-columns:minmax(105px, .45fr) 1fr;gap:14px}.definition dt{font-weight:700}.definition dd{margin:0}.section-lead{margin-top:16px}.listing{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.listing article{border:1px solid var(--line);background:var(--white);padding:24px}.listing article h3{margin:14px 0 10px}.listing article a{margin-top:16px}.notice{border-left:3px solid var(--gold);padding:14px 18px;background:var(--white);margin-top:18px;color:var(--muted)}.policy{max-width:800px}.policy h2{font-size:1.45rem;margin-top:22px;margin-bottom:7px}
.formbox{background:var(--white);border:1px solid var(--line);padding:clamp(18px,4vw,36px)}.formbox label{display:block;margin-bottom:14px;font-weight:650;font-size:.9rem}.formbox input:not([type=checkbox]),.formbox textarea,.formbox select{width:100%;display:block;padding:10px 12px;min-height:46px;margin-top:5px;border:1px solid #a6ada3;border-radius:0;background:#fff;color:var(--ink);font:inherit}.formbox textarea{min-height:130px;resize:vertical}.formbox .check{display:flex;align-items:flex-start;gap:8px;font-weight:500}.check input{margin:7px 3px 0 0;min-width:16px;min-height:16px}.field-error{color:#9a3029;display:block;font-size:.82rem}.form-status:not(:empty){margin:0 0 12px;padding:9px 0;font-weight:650}.formbox button{margin-top:7px}.formbox [hidden]{display:none}
footer{background:#0c221e;color:#f3f5ef;padding:43px 0 25px}.footer-top{display:flex;align-items:start;justify-content:space-between;gap:22px;padding-bottom:27px}.footer-top address{font-style:normal;font-size:.83rem;color:#d2dfd5;margin-top:16px}.footer-links{display:flex;gap:13px 24px;flex-wrap:wrap;font-size:.84rem}.footer-base{padding-top:17px;border-top:1px solid #c2d7cb38;display:flex;gap:8px 24px;flex-wrap:wrap;justify-content:space-between;color:#d2dfd5;font-size:.72rem}
@media(max-width:1060px){.desktop{gap:13px}.wrap{width:calc(100% - 64px)}.hero-copy{padding-left:32px}.desktop a{font-size:.8rem}.topbar{gap:15px}.brand b{font-size:1.06rem}}
@media(max-width:880px){.desktop{display:none}.mobile{display:block}.mobile summary{padding:9px 10px;border:1px solid var(--line);min-width:44px;min-height:44px;font-size:.78rem;text-align:center}.cards{grid-template-columns:repeat(2,1fr)}.cards article:nth-child(3){border-left:none}.cards article:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:620px){.wrap{width:calc(100% - 36px)}.topbar{min-height:67px;gap:7px}.brand{gap:7px}.brand img{width:33px;height:33px}.brand b{font-size:.86rem;letter-spacing:.065em}.brand small{font-size:.58rem;letter-spacing:.045em;margin-top:4px}.tools{gap:6px}.lang{padding:10px 7px;font-size:.72rem;min-height:44px}.hero{min-height:0;display:block}.hero-copy{padding:45px 18px 36px}.hero h1{margin:17px 0 16px}.hero-visual{min-height:240px}.hero-visual figcaption{bottom:11px;right:16px}.ribbon .wrap{align-items:start;flex-direction:column;gap:3px}.section-head,.banner .wrap,.footer-top{display:block}.section-head p:not(.eyebrow),.banner .button,.footer-links{margin-top:14px}.two,.listing{grid-template-columns:1fr}.cards article{padding:15px}.cards h3{font-size:1.04rem}.cards p{font-size:.87rem}.actions{margin-top:21px}.crumb{margin-bottom:24px}.definition div{grid-template-columns:minmax(80px,.55fr) 1fr}.footer-links{row-gap:8px}}
@media(max-width:345px){.cards{grid-template-columns:1fr}.cards article+article{border-left:none;border-top:1px solid var(--line)}}


:root{--ink:#18352e;--dark:#18352e;--paper:#fbf7ef;--white:#fffaf1;--muted:#4b5d52;--line:#d2d8cc;--gold:#ab6538;--lime:#b9c846;--sage:#edf0e7}
.wrap{width:min(1184px,calc(100% - 96px))}
.brand b{font-family:var(--sans);font-weight:700;font-size:1rem;letter-spacing:.12em}
.topbar{min-height:83px;gap:20px}
.desktop{gap:clamp(11px,1.25vw,20px);font-size:.8rem}
.lang,.button,.formbox,.listing article{border-radius:4px}
.hero{width:min(1184px,calc(100% - 96px));margin-inline:auto;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:52px;padding-block:56px 68px;background:transparent;color:var(--ink);overflow:visible}
.hero-copy{padding:0}
.hero .eyebrow{display:flex;align-items:center;gap:12px;color:var(--ink)}
.hero .eyebrow::before{content:"";width:34px;height:2px;flex-shrink:0;background:linear-gradient(90deg,var(--lime) 45%,var(--gold) 45%)}
.hero h1{font-size:clamp(2.65rem,5.05vw,4.75rem);line-height:1.2;letter-spacing:-.045em}
.hero .lead{color:var(--muted);font-size:.95rem}
.hero .primary{background:var(--dark);color:var(--white)}
.hero .ghost{border-color:transparent;color:var(--ink)}
.hero-visual{min-height:0;background:transparent}
.hero-visual img{position:static;height:auto;aspect-ratio:1.04;object-fit:cover;border-radius:4px}
.hero-visual::after{content:none}
.hero-visual figcaption{position:static;display:flex;justify-content:space-between;gap:12px;margin-top:8px;color:var(--muted);letter-spacing:.08em}
.ribbon{border-block:1px solid var(--line)}
#services,.section.soft{background:var(--sage)}
.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;background:transparent;border:0}
.cards article,.cards article+article,.cards article:nth-child(n+3){border:1px solid var(--line);background:var(--paper);border-radius:4px}
.cards p{font-size:.9rem}
.cards .num{font:700 .75rem var(--sans);letter-spacing:.15em;color:#855035}
.cards a{color:var(--ink)}
.brand-panel{position:relative;isolation:isolate;display:grid;place-items:center;min-height:202px;margin-top:24px;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:linear-gradient(90deg,var(--lime) 0 19%,var(--gold) 19% 34%,var(--paper) 34% 67%,var(--gold) 67% 83%,var(--lime) 83% 100%);color:var(--paper)}
.brand-panel::before{position:absolute;z-index:-1;inset:0;background:var(--dark);clip-path:polygon(0 30%,44% 0,100% 22%,100% 73%,0 100%);content:""}
.brand-lockup{display:grid;justify-items:center;gap:8px;font-size:clamp(16px,2.3vw,25px);letter-spacing:.15em}
.brand-lockup img{width:74px;height:67px}
.roman-name{display:inline-block;margin-inline-start:.45em;color:var(--muted);font-size:.78em;letter-spacing:.08em}
.contact-lines{margin-top:24px;font-size:.92rem}
.contact-lines div{grid-template-columns:minmax(74px,6.2em) minmax(0,1fr);gap:8px}
.process-steps{margin:0;padding:0;list-style:none;counter-reset:step}
.process-steps li{display:grid;grid-template-columns:2em 1fr;gap:14px;border-top:1px solid var(--line);padding:15px 0;counter-increment:step}
.process-steps li:last-child{border-bottom:1px solid var(--line)}
.process-steps li::before{content:counter(step,decimal-leading-zero);font-size:.75rem;font-weight:700;color:#855035}
.process-steps h3{margin-bottom:3px;font-size:1.03rem}
.process-steps p{font-size:.92rem;color:var(--muted)}
@media(max-width:1060px){.wrap,.hero{width:calc(100% - 52px)}.hero{gap:25px}}
@media(max-width:960px){.desktop{display:none}.mobile{display:block}.mobile summary{padding:9px 10px;border:1px solid var(--line);min-height:44px;font-size:.78rem}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cards article:nth-child(3){border-left:1px solid var(--line)}}
@media(max-width:700px){.wrap,.hero{width:calc(100% - 36px)}.hero{display:grid;grid-template-columns:1fr;padding-block:36px 42px}.hero h1{margin:16px 0}.hero-visual img{aspect-ratio:1.14}.topbar{min-height:67px;gap:8px}.brand b{font-size:.83rem}.hero .actions{margin-top:20px}}
@media(max-width:480px){.cards{grid-template-columns:1fr}.hero h1{font-size:clamp(2.3rem,9.5vw,3.4rem)}.hero .button{padding-inline:11px}}
