:root{--red:#cc1622;--ink:#1b1e23;--line:#e6e7ea;--soft:#f7f7f8;--max:920px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Yu Gothic",Meiryo,sans-serif;color:var(--ink);line-height:1.7;background:#fff}a{text-decoration:none;color:inherit}.wrap{width:min(calc(100% - 40px),var(--max));margin:auto}.header{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;font-weight:900}.hero{padding:70px 0;background:linear-gradient(125deg,#fbfbfb,#eef0f2);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;left:10%;top:-20%;width:11px;height:160%;background:var(--red);transform:skewX(-20deg)}.k{color:var(--red);font-size:12px;font-weight:900;letter-spacing:.16em}.hero h1{font-size:52px;margin:8px 0}.hero p{color:#666d78}.form{padding:60px 0 80px}.row{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:230px 1fr;gap:26px;align-items:start}.label{font-weight:800}.req{font-size:10px;color:#fff;background:var(--red);padding:2px 6px;margin-left:6px}.choice{display:flex;flex-wrap:wrap;gap:14px}.choice label{background:#f6f6f7;border:1px solid #dddfe3;padding:10px 14px}.input,select,textarea{width:100%;padding:13px 14px;border:1px solid #cfd2d7;background:#fff;font:inherit}textarea{min-height:120px}.submit{margin-top:34px;display:flex;justify-content:center}.submit button{border:0;background:var(--red);color:#fff;font-weight:800;padding:17px 52px;font-size:14px}.footer{border-top:1px solid var(--line);padding:24px 0;color:#777;font-size:11px}@media(max-width:700px){.row{grid-template-columns:1fr}.hero h1{font-size:38px}}
/* ===== COMMON HEADER / EDITABLE PROTOTYPE ===== */
.site-header{height:76px;background:rgba(255,255,255,.97);border-bottom:1px solid #ececef;display:flex;align-items:stretch;position:sticky;top:0;z-index:1000!important;backdrop-filter:blur(9px)}
.site-brand{display:flex!important;align-items:center;gap:13px;padding:0 34px;color:#17191e!important;text-decoration:none!important;min-width:250px}
.site-brand:before{content:"";width:38px;height:28px;display:block;background:linear-gradient(135deg,#de1927,#b70f1d);clip-path:polygon(0 12%,35% 12%,76% 50%,35% 88%,0 88%,28% 50%);flex:none}
.site-brand-main{font-weight:900;letter-spacing:.08em;font-size:15px}.site-brand-sub{font-weight:700;letter-spacing:.14em;font-size:10px;color:#737985;border-left:1px solid #d9dce1;padding-left:13px}
.site-actions{margin-left:auto;display:flex}.site-entry{width:180px;display:grid;place-items:center;background:linear-gradient(180deg,#d11a27,#b50e1c);color:#fff!important;text-decoration:none!important;font-weight:800;letter-spacing:.2em;font-size:14px}
.site-menu-btn{width:76px;border:0;background:#0d1730;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;cursor:pointer}.site-menu-btn span{display:block;width:27px;height:1px;background:#fff;transition:.25s}.site-menu-btn.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.site-menu-btn.is-open span:nth-child(2){opacity:0}.site-menu-btn.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.site-drawer{position:fixed;inset:76px 0 0;background:rgba(13,23,48,.96);z-index:999;opacity:0;visibility:hidden;transition:.25s;color:#fff;overflow:auto}.site-drawer.is-open{opacity:1;visibility:visible}.site-drawer-inner{width:min(1120px,calc(100% - 56px));margin:0 auto;padding:60px 0}.site-drawer-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid rgba(255,255,255,.22)}.site-drawer-nav a{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;padding:22px 18px;color:#fff!important;text-decoration:none!important;border-bottom:1px solid rgba(255,255,255,.18);position:relative}.site-drawer-nav a:nth-child(odd){border-right:1px solid rgba(255,255,255,.18)}.site-drawer-nav b{grid-row:1/3;color:#e52b37;font-size:11px;letter-spacing:.12em;padding-top:5px}.site-drawer-nav span{font-size:21px;font-weight:900;letter-spacing:.12em}.site-drawer-nav small{font-size:11px;color:#bfc5d0;margin-top:2px}.site-drawer-sub{display:flex;gap:28px;flex-wrap:wrap;margin-top:32px;font-size:12px}.site-drawer-sub a{color:#fff!important;text-decoration:none!important;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:3px}
body.menu-open{overflow:hidden}
/* old headers are replaced; protect page content spacing */
@media(max-width:640px){.site-header{height:66px}.site-drawer{inset:66px 0 0}.site-brand{padding:0 14px;min-width:0}.site-brand-sub{display:none}.site-entry{width:118px;font-size:12px}.site-menu-btn{width:64px}.site-drawer-inner{width:calc(100% - 32px);padding:34px 0}.site-drawer-nav{grid-template-columns:1fr}.site-drawer-nav a:nth-child(odd){border-right:0}.site-drawer-nav span{font-size:18px}}
[data-replace="image"]{position:relative}[data-replace="text"]{}


/* v8: mobile hero accent adjustment */
 (max-width:700px){
  .hero{padding:64px 0 42px}
  .hero:before{left:auto;right:18px;top:24px;width:10px;height:88px}
  .hero h1{max-width:calc(100% - 78px)}
}

/* v11: lower-page hero accent aligned to WORK page */
.hero{position:relative;overflow:hidden}
.hero:before,.hero:after{content:"";position:absolute;background:var(--red);transform:skewX(-22deg)}
.hero:before{left:8%;top:31%;width:10px;height:92px;right:auto;bottom:auto}
.hero:after{right:7%;bottom:17%;width:10px;height:70px;left:auto;top:auto}
.hero .wrap{position:relative;z-index:1}
@media (max-width:640px){
  .hero{padding:74px 0 68px}
  .hero:before{left:24px;top:18px;width:8px;height:46px;right:auto;bottom:auto}
  .hero:after{right:18px;bottom:24px;width:10px;height:70px;left:auto;top:auto}
}


/* v45: entry form validation */
#entry-form{margin:0}
.field{min-width:0}
.field-error{
  display:none;
  color:#ff1c1c;
  font-size:15px;
  line-height:1.45;
  font-weight:700;
  margin:0 0 8px;
}
.row.has-error .field-error{display:block}
.row.has-error .input,
.row.has-error select,
.row.has-error textarea{border-color:#ef5252}
.row.has-error .choice label{border-color:#efb4b4}
@media(max-width:700px){
  .field-error{font-size:14px;margin-bottom:7px}
}


/* v46: entry confirmation */
.entry-confirm{padding:0}
.entry-confirm[hidden]{display:none!important}
.confirm-row{
  display:grid;
  grid-template-columns:230px 1fr;
  gap:26px;
  min-height:76px;
  padding:22px 28px;
  align-items:center;
}
.confirm-row:nth-child(even){background:#c9f4f8}
.confirm-row:nth-child(odd){background:#fff}
.confirm-label{font-weight:800}
.confirm-label .req{margin:0 8px 0 0}
.confirm-label small{font-size:11px}
.confirm-value{font-weight:700;word-break:break-word;white-space:pre-wrap}
.confirm-remarks{min-height:42px}
.confirm-actions{
  display:flex;
  justify-content:center;
  gap:24px;
  padding:42px 0 0;
}
.confirm-actions button{
  min-width:180px;
  border:0;
  background:#ef5d9d;
  color:#fff;
  font-weight:800;
  font-size:16px;
  padding:18px 38px;
  cursor:pointer;
}
.confirm-actions button:hover{filter:brightness(.97)}
@media(max-width:700px){
  .confirm-row{grid-template-columns:1fr;gap:8px;padding:18px 16px}
  .confirm-actions{gap:12px;padding-top:28px}
  .confirm-actions button{min-width:0;width:50%;padding:16px 18px}
}

/* v47: production mail sending */
.send-status{min-height:22px;margin:14px 0 0;text-align:center;font-weight:700;color:#555}
.send-status.is-error{color:#d40000}
.confirm-send:disabled{opacity:.65;cursor:wait}
.thanks-card{max-width:820px;margin:50px auto 80px;padding:48px 40px;background:#fff;text-align:center}
.thanks-card h2{font-size:28px;margin:0 0 24px}
.thanks-card p{line-height:2}
.thanks-note{font-size:13px;color:#666}
.thanks-top{display:inline-block;margin-top:28px;padding:16px 46px;background:#ef5d9d;color:#fff;font-weight:800;text-decoration:none}
@media(max-width:700px){.thanks-card{margin:28px auto 50px;padding:32px 20px}.thanks-card h2{font-size:22px}}


/* v48: postal-code address autofill */
.postal-controls{display:flex;gap:10px;align-items:stretch}
.postal-controls .input{flex:1;min-width:0}
.postal-auto-btn{flex:0 0 auto;border:0;background:#2b7fc1;color:#fff;font-weight:700;padding:0 18px;cursor:pointer;white-space:nowrap}
.postal-auto-btn:hover{filter:brightness(.96)}
.postal-help{margin-top:7px;font-size:12px;color:#6d7780}
.postal-status{min-height:1.5em;margin-top:5px;font-size:13px;color:#20745b;font-weight:700}
.postal-status.is-error{color:#e32626}
@media(max-width:700px){.postal-controls{display:block}.postal-auto-btn{width:100%;margin-top:8px;padding:12px 14px}}
