/* portal.18llc.jp — 18llc.jp と同じ紙・墨・朱の配色、明朝の見出し、等幅の英字ラベル */
:root{
  --paper:#e5e3de; --paper-2:#dcd9d3; --sheet:#efede9; --ink:#1d1815; --mute:#6b625b; --line:rgba(29,24,21,.16); --line-2:rgba(29,24,21,.32);
  --logo:#534741; --logo-2:#736357; --seal:#93391f; --ok:#2f6b3f; --danger:#93391f;
  --f-display:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --f-body:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --f-mark:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.85;letter-spacing:.02em;line-break:strict}
a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--seal)}
/* 上部の区分表示 */
.classbar{border-bottom:1px solid var(--line);font-family:var(--f-mark);font-size:.68rem;letter-spacing:.16em;color:var(--mute);text-transform:uppercase}
.classbar .inner{max-width:1120px;margin:0 auto;padding:6px 24px;display:flex;justify-content:space-between;gap:12px}
.classbar b{color:var(--seal);font-weight:600}
/* ヘッダー */
.top{max-width:1120px;margin:0 auto;padding:18px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.brand .mark{width:34px;height:auto}
.brand .type{width:128px;height:auto}
.brand .mark path,.brand .mark .cls-1{fill:var(--logo)}
.brand-sub{font-family:var(--f-mark);font-size:.7rem;letter-spacing:.18em;color:var(--mute);text-transform:uppercase;padding-left:14px;border-left:1px solid var(--line-2)}
.top nav{margin-left:auto;display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:.86rem}
.top nav a{text-decoration:none}
.top nav a:hover{text-decoration:underline}
.top nav .who{color:var(--mute);font-size:.82rem}
.top nav .inline{display:inline}
/* 本文 */
.wrap{max-width:1120px;margin:0 auto;padding:36px 24px 56px}
h1{font-family:var(--f-display);font-weight:800;font-size:clamp(1.55rem,1.2rem + 1.4vw,2.1rem);line-height:1.35;letter-spacing:.04em;margin:.1em 0 .7em}
h2{font-family:var(--f-display);font-weight:700;font-size:1.15rem;letter-spacing:.04em;margin:1.6em 0 .6em}
.eyebrow{font-family:var(--f-mark);font-size:.7rem;letter-spacing:.18em;color:var(--seal);text-transform:uppercase;margin-bottom:.4em}
p{margin:0 0 1em}
.small{font-size:.82rem;color:var(--mute);line-height:1.75}
.center{text-align:center}
.ok{color:var(--ok);font-weight:600}.err,.warn{color:var(--danger);font-weight:600}
code,.mono{font-family:var(--f-mark);font-size:.86em;word-break:break-all;letter-spacing:.04em}
.wrap-text{white-space:pre-wrap;word-break:break-word}
hr{border:0;border-top:1px solid var(--line);margin:22px 0}
/* カード（紙の上の一段明るいシート） */
.card{background:var(--sheet);border:1px solid var(--line);padding:26px 28px;margin:0 0 20px;position:relative}
.card.narrow,.narrow{max-width:600px}
.card > h1:first-child{margin-top:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:820px){.grid2,.grid3{grid-template-columns:1fr}}
.big{font-family:var(--f-display);font-size:2.2rem;font-weight:800;line-height:1.2}
.tag{font-family:var(--f-mark);font-size:.62rem;letter-spacing:.14em;color:var(--seal);border:1px solid var(--seal);padding:2px 8px;vertical-align:middle;margin-left:8px;text-transform:uppercase}
/* フォーム */
form > div{margin-bottom:16px}
label,fieldset legend{display:block;font-weight:700;font-size:.86rem;margin-bottom:6px;letter-spacing:.04em}
input[type=text],input[type=email],input[type=password],input[type=tel],input:not([type]),textarea,select{width:100%;padding:11px 12px;border:1px solid var(--line-2);border-radius:0;background:#fbfaf8;color:var(--ink);font:inherit;letter-spacing:.02em}
input:focus,textarea:focus,select:focus{outline:2px solid var(--ink);outline-offset:-1px;background:#fff}
input[disabled]{background:var(--paper-2);color:var(--mute)}
.helptext,.zip-note{display:block;margin:4px 0 6px;font-size:.78rem;color:var(--mute);font-weight:400;line-height:1.6}
form ul.errorlist{list-style:none;padding:0;margin:4px 0;color:var(--danger);font-size:.84rem}
form fieldset{border:0;padding:0;margin:0 0 16px;min-width:0}
#id_country{display:flex;gap:22px;margin:2px 0}
#id_country label{font-weight:500;display:flex;align-items:center;gap:6px;margin:0}
#id_country input{width:auto;margin:0;accent-color:var(--ink)}
.check label{font-weight:500;display:flex;gap:8px;align-items:flex-start}
.check input{width:auto;margin-top:6px;accent-color:var(--ink)}
/* ボタン（サイトと同じ角型・墨色） */
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:12px 22px;border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:.9rem;letter-spacing:.08em;text-decoration:none;cursor:pointer;line-height:1.4}
button:hover,.btn:hover{background:var(--ink);color:var(--paper)}
button.primary,.btn.primary{background:var(--ink);color:var(--paper)}
button.primary:hover,.btn.primary:hover{background:transparent;color:var(--ink)}
button.primary::after,.btn.primary::after{content:"→";font-family:var(--f-mark);font-size:.85em}
button.danger{border-color:var(--danger);color:var(--danger)}
button.danger:hover{background:var(--danger);color:var(--paper)}
button.small,.btn.small,a.small.btn{font-size:.78rem;padding:6px 12px}
button.link{border:0;background:none;padding:0;color:var(--ink);text-decoration:underline;font-size:.86rem;letter-spacing:.02em}
button.link:hover{background:none;color:var(--seal)}
button[disabled]{opacity:.4;cursor:not-allowed}
button[disabled]:hover{background:var(--ink);color:var(--paper)}
.inline{display:inline}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:14px 0}
form .link{margin-top:14px;display:inline-block}
/* 通知 */
.messages{list-style:none;padding:0;margin:0 0 20px}
.messages li{padding:12px 16px;border-left:3px solid var(--ink);background:var(--sheet);margin-bottom:10px;font-size:.9rem}
.messages li.error{border-left-color:var(--danger);color:var(--danger)}
.messages li.success{border-left-color:var(--ok);color:var(--ok)}
/* 表 */
table{width:100%;border-collapse:collapse;font-size:.88rem;border-top:1px solid var(--ink)}
th,td{border-bottom:1px solid var(--line);padding:10px 10px 10px 0;text-align:left;vertical-align:top}
th{font-weight:500;color:var(--mute);font-size:.8rem;letter-spacing:.06em}
/* 手続きの段階 */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;list-style:none;padding:0;margin:0 0 24px;border-top:1px solid var(--line-2)}
.steps li{padding:10px 12px 10px 0;color:var(--mute);font-size:.86rem;border-top:2px solid transparent;margin-top:-1px}
.steps li + li{padding-left:12px}
.steps .n{display:block;font-family:var(--f-mark);font-size:.68rem;letter-spacing:.14em}
.steps li.now{color:var(--ink);font-weight:700;border-top-color:var(--ink)}
.steps li.now .n{color:var(--seal)}
.steps li.done{color:var(--ok)}
.steps li a{color:inherit}
/* 契約書の全文 */
.contract{background:#fbfaf8;border:1px solid var(--line);padding:34px 40px;margin-bottom:20px;font-size:.92rem;line-height:1.95}
.contract h1{font-size:1.5rem;text-align:center;margin:0 0 1.2em}
.contract h2{font-size:1.02rem;margin:1.6em 0 .4em}
.contract ol{padding-left:1.5em;margin:.3em 0}
.contract hr{margin:2em 0}
/* 資料・契約の一覧 */
.doc-item{display:flex;justify-content:space-between;align-items:center;gap:16px}
.doc-item .btn{white-space:nowrap}
/* 資料ビューア */
.viewer .pages{display:flex;flex-direction:column;gap:22px;align-items:center;user-select:none;-webkit-user-select:none}
.page{margin:0;text-align:center}
.page img{max-width:100%;border:1px solid var(--line);box-shadow:0 2px 10px rgba(29,24,21,.08);pointer-events:none}
.page figcaption{font-family:var(--f-mark);font-size:.72rem;color:var(--mute);letter-spacing:.1em}
/* フッター */
.foot{border-top:1px solid var(--line)}
.foot .inner{max-width:1120px;margin:0 auto;padding:18px 24px 28px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--f-mark);font-size:.68rem;letter-spacing:.08em;color:var(--mute)}
/* スマホ */
@media(max-width:600px){
  body{font-size:14.5px}
  .classbar .inner,.top,.wrap,.foot .inner{padding-left:16px;padding-right:16px}
  .hide-sm{display:none}
  .top{gap:10px 14px;padding-top:14px;padding-bottom:14px}
  .brand .mark{width:28px}.brand .type{width:104px}
  .brand-sub{border-left:0;padding-left:0;flex-basis:100%;order:3;font-size:.64rem}
  .top nav{margin-left:auto;gap:12px;font-size:.8rem}
  .wrap{padding-top:22px}
  .card{padding:20px 18px}
  .steps li,.steps li + li{padding:8px 4px;font-size:.72rem;text-align:center;line-height:1.4}
  .contract{padding:22px 18px}
  .doc-item{flex-direction:column;align-items:stretch}.doc-item .btn{text-align:center}
  button,.btn{width:auto}
  form button.primary{width:100%}
}
.card > h2:first-child,.card > h2:first-of-type{margin-top:0}
.grid3{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.grid3 .card{padding:18px 20px;margin:0}
.grid3{margin-bottom:20px}
@media(max-width:820px){.grid3{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
/* ご回答のお願い（ヒアリング） */
input[type=date],input[type=number]{padding:11px 12px;border:1px solid var(--line-2);border-radius:0;background:#fbfaf8;color:var(--ink);font:inherit}
.back{margin:0 0 10px}
.hearing .intro{margin:0 0 18px;line-height:1.9}
.hearing .meta{display:flex;flex-wrap:wrap;gap:6px 28px;margin:0 0 22px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.84rem}
.hearing .meta div{display:flex;gap:10px}.hearing .meta dt{color:var(--mute)}.hearing .meta dd{margin:0}
.hearing .note{background:var(--paper);border-left:3px solid var(--seal);padding:10px 14px;font-size:.86rem;line-height:1.8;margin:0 0 20px}
.q-section{margin:0 0 26px !important}
.q-section legend{font-family:var(--f-display);font-size:1.05rem;font-weight:700;padding:0 0 8px;margin:0 0 14px;border-bottom:1px solid var(--ink);width:100%}
.q{margin:0 0 20px}
.q > label{line-height:1.6}
.q .req{font-family:var(--f-mark);font-size:.6rem;letter-spacing:.1em;color:var(--seal);border:1px solid var(--seal);padding:1px 6px;margin-left:8px;vertical-align:2px;font-weight:400}
.q-input{display:flex;align-items:center;gap:10px}
.q-input .unit{white-space:nowrap;font-size:.86rem;color:var(--mute)}
.q-input.radios > div{display:flex;flex-wrap:wrap;gap:8px 22px;margin:2px 0}
.q-input.radios label{font-weight:500;display:flex;align-items:center;gap:6px;margin:0}
.q-input.radios input{width:auto;margin:0;accent-color:var(--ink)}
.submit-box{border-top:1px solid var(--line);padding-top:18px;margin-top:8px}
.submit-box label.check{display:flex;gap:8px;align-items:flex-start;font-weight:500;line-height:1.7;margin:0 0 14px}
.submit-box label.check input{width:auto;margin-top:6px;accent-color:var(--ink)}
.submit-box .actions{display:flex;flex-wrap:wrap;gap:12px}
table.answers{width:100%;margin:0 0 18px}
table.answers th{width:45%;font-weight:500;color:var(--mute);vertical-align:top}
.hash code{font-size:.72rem;word-break:break-all}
.doc-item.attention{border-left:3px solid var(--seal)}
@media(max-width:600px){table.answers th,table.answers td{display:block;width:auto}table.answers th{border-bottom:0;padding-bottom:0}.submit-box .actions{flex-direction:column}.submit-box .actions button{width:100%}}
.actions-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 10px}
.q-edit{border:1px solid var(--line);background:#fbfaf8;padding:14px 16px;margin:0 0 14px}
.q-edit-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 8px}
.q-edit-head .del{display:flex;gap:6px;align-items:center;font-weight:500;color:var(--danger);margin:0}
.q-edit-head .del input,.check-inline input{width:auto;accent-color:var(--ink)}
.grid-q{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px}
.grid-q .wide{grid-column:1/-1}
.grid-q label{font-size:.78rem}
.check-inline{display:flex;align-items:flex-end}.check-inline label{display:flex;gap:6px;align-items:center;font-weight:500}
fieldset[disabled]{opacity:.65}
@media(max-width:600px){.grid-q{grid-template-columns:1fr 1fr}}
.agree-box{max-width:760px;margin:28px auto 0;border-top:3px solid var(--ink)}
.agree-box .statement{border:1px solid var(--ink);background:#fbfaf8;padding:14px 16px;line-height:1.9;margin:0 0 12px}
.agree-box form > div{margin:14px 0}
.agree-box label.check{display:flex;gap:8px;align-items:flex-start;font-weight:500;margin:0 0 16px}
.agree-box label.check input{width:auto;margin-top:6px;accent-color:var(--ink)}
.small .due{color:var(--seal)}
#id_ack_mode{display:flex;flex-direction:column;gap:6px;margin:2px 0}
#id_ack_mode label{font-weight:500;display:flex;align-items:flex-start;gap:6px;margin:0;line-height:1.6}
#id_ack_mode input{width:auto;margin-top:5px;accent-color:var(--ink)}
.submit-box .actions + .small{margin-top:12px}
/* お問い合わせ（受信箱） */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--ink);margin:0 0 14px}
.tabs a{padding:8px 16px;text-decoration:none;color:var(--mute);font-size:.86rem;border:1px solid transparent;border-bottom:0}
.tabs a.on{color:var(--ink);border-color:var(--ink);background:var(--sheet,#efede9);margin-bottom:-1px;font-weight:700}
.tabs a span{font-family:var(--f-mark);font-size:.72rem;margin-left:4px}
.inbox .toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
table.mail{width:100%}
table.mail td{vertical-align:top;padding:10px 8px}
table.mail td.cb{width:28px}table.mail td.cb input{width:auto;accent-color:var(--ink)}
table.mail td.who{width:22%}table.mail td.st{width:90px;white-space:nowrap}table.mail td.dt{width:84px;white-space:nowrap;font-family:var(--f-mark);font-size:.78rem;color:var(--mute)}
table.mail a{text-decoration:none;color:inherit}
table.mail tr.unread td.who,table.mail tr.unread td.snip{font-weight:700}
table.mail .snip a{color:var(--mute)}table.mail tr.unread .snip a{color:var(--ink)}
.st-new{color:var(--seal)}.st-done{color:var(--mute)}.st-sales,.st-spam{color:var(--mute);text-decoration:line-through}
.mail-body{white-space:normal;line-height:1.9;margin:16px 0;padding:14px 16px;background:#fbfaf8;border:1px solid var(--line);overflow-wrap:anywhere}
.reply-sent{border-left:3px solid var(--ink)}
@media(max-width:600px){table.mail td.snip{display:none}table.mail td.who{width:auto}}
table.mail{table-layout:fixed}
table.mail td.snip a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.mail td.who a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
