/* 下層ページ共通（page.css の上に重ねる） */
.hd__nav a[aria-current="page"]{color:var(--teal)}

/* page head */
.phead{position:relative; padding:56px 0 88px; overflow:hidden}
.phead--gray{background:var(--bg)} .phead--yellow{background:var(--yellow)} .phead--teal{background:var(--teal); color:#fff}
.phead__in{display:flex; align-items:flex-end; justify-content:space-between; gap:32px; min-height:220px}
.phead h1{font-size:clamp(34px,5vw,64px); margin-top:18px}
.phead__lead{margin-top:16px; max-width:40em; font-weight:700; color:var(--ink-2)}
.phead--teal .phead__lead{color:#e4f4f2}
.phead__char{width:clamp(110px,12vw,170px); height:auto; flex:none; margin-bottom:-110px}
.crumb{display:flex; flex-wrap:wrap; gap:6px; font-size:13px; font-weight:700; color:var(--ink-2)}
.crumb a{text-decoration:none} .crumb a:hover{text-decoration:underline}
.crumb i{font-style:normal; opacity:.5}
.phead--teal .crumb{color:#d4eeeb}
.sub{position:relative; z-index:1; background:#fff; border-radius:var(--r-xl) var(--r-xl) 0 0; margin-top:-40px; padding:80px 0 120px}
.sub--gray{background:var(--bg)}
.sub + .sub{margin-top:-40px}
.sub h2.sec-h{font-size:clamp(28px,3.6vw,46px)}
.mt-0{margin-top:0!important}

/* prose (columns, news, privacy) */
.prose{max-width:760px; margin-inline:auto; font-size:16px; line-height:1.95; font-weight:500}
.prose h2{font-size:clamp(21px,2.6vw,27px); margin:52px 0 16px; padding-left:16px; border-left:6px solid var(--teal); line-height:1.4}
.prose h3{font-size:19px; margin:34px 0 12px}
.prose p{margin:0 0 20px}
.prose ul,.prose ol{margin:0 0 24px; padding-left:1.4em}
.prose li{margin-bottom:8px}
.prose a{color:var(--teal); font-weight:800}
.prose strong{background:linear-gradient(transparent 62%, #fff0a8 62%)}
.prose table{width:100%; border-collapse:collapse; margin:0 0 24px; font-size:15px}
.prose th,.prose td{border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top}
.prose th{background:var(--bg)}
.meta{display:flex; gap:12px; align-items:center; font:700 14px/1 "Red Hat Display",var(--ff); color:var(--ink-2); margin-bottom:12px}
.meta .tag{background:var(--ink); color:#fff; border-radius:var(--r-pill); padding:5px 12px; font:800 12px/1 var(--ff)}
.article-h{font-size:clamp(26px,3.6vw,40px); line-height:1.4; margin-bottom:36px}
.backlink{display:inline-block; margin-top:48px; font-weight:900; text-decoration:none; border-bottom:2px solid currentColor}
.endcta{max-width:760px; margin:56px auto 0; background:var(--yellow); border-radius:var(--r-lg); padding:32px; text-align:center; border:2px solid var(--ink); box-shadow:0 6px 0 var(--ink)}
.endcta h3{font-size:22px}
.endcta p{margin-top:8px; font-weight:700}
.endcta .btns{display:flex; gap:12px; justify-content:center; margin-top:20px; flex-wrap:wrap}

/* list (news / columns) */
.list{max-width:900px; margin:0 auto; display:grid; gap:14px; list-style:none; padding:0}
.list a{display:grid; grid-template-columns:120px 1fr auto; gap:20px; align-items:center; background:#fff; border:2px solid var(--ink); border-radius:var(--r-md); padding:22px 26px; text-decoration:none; transition:transform .2s, box-shadow .2s; box-shadow:0 4px 0 var(--ink)}
.list a:hover{transform:translateY(-2px); box-shadow:0 6px 0 var(--ink)}
.list time{font:800 14px/1 "Red Hat Display",var(--ff); color:var(--ink-2)}
.list b{font-weight:900; font-size:17px; line-height:1.5}
.list span.go{font-weight:900; color:var(--teal)}
.cols{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; list-style:none; padding:0; margin:0}
.col{display:flex; flex-direction:column; height:100%; background:#fff; border:2px solid var(--ink); border-radius:var(--r-lg); padding:26px 26px 24px; text-decoration:none; box-shadow:0 5px 0 var(--ink); transition:transform .2s, box-shadow .2s}
.col:hover{transform:translateY(-3px); box-shadow:0 8px 0 var(--ink)}
.col time{font:800 13px/1 "Red Hat Display",var(--ff); color:var(--ink-2)}
.col h2{font-size:19px; line-height:1.5; margin-top:12px}
.col p{font-size:14px; color:var(--ink-2); margin-top:10px; font-weight:700; flex:1}
.col .go{margin-top:16px; font-weight:900; color:var(--teal); font-size:14px}

/* plan table */
.tbl-wrap{overflow-x:auto; margin-top:48px; border:2px solid var(--ink); border-radius:var(--r-lg); background:#fff; box-shadow:0 6px 0 var(--ink)}
.tbl{width:100%; min-width:720px; border-collapse:collapse; font-size:15px; text-align:left}
.tbl th,.tbl td{padding:16px 20px; border-bottom:1px solid var(--line); vertical-align:top}
.tbl thead th{background:var(--ink); color:#fff; font-weight:900; font-size:16px}
.tbl thead th:first-child{width:22%}
.tbl tbody th{font-weight:900; background:var(--bg)}
.tbl tbody tr:last-child th,.tbl tbody tr:last-child td{border-bottom:0}
.tbl td small{display:block; color:var(--ink-2); font-size:13px; margin-top:4px; font-weight:700}
.ok{color:var(--teal); font-weight:900}
.ng{color:#a0a8b0; font-weight:900}
.reco{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:48px; text-align:left}
.reco__card{background:#fff; border-radius:var(--r-lg); padding:32px; border:2px solid var(--ink); box-shadow:0 6px 0 var(--ink); position:relative}
.reco__card h3{font-size:24px}
.reco__card .sub-t{font-weight:800; color:var(--teal); margin-top:4px}
.reco__card h4{margin:20px 0 8px; font-size:15px}
.reco__card ul{margin:0; padding-left:1.2em; font-weight:700; color:var(--ink-2); font-size:15px}
.reco__card .btn{margin-top:22px}
.reco__card img{position:absolute; right:16px; top:-60px; width:90px}
.opt{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:40px; text-align:left}
.opt__card{background:#fff; border-radius:var(--r-lg); padding:28px 30px}
.opt__card h3{font-size:20px}
.opt__card .p{font:900 32px/1 "Red Hat Display",var(--ff); margin-top:12px}
.opt__card .p small{font:800 14px/1 var(--ff); margin-left:4px}
.opt__card ul{margin:16px 0 0; padding-left:1.2em; font-weight:700; color:var(--ink-2); font-size:15px}
.note{font-size:13px; color:var(--ink-2); font-weight:700; margin-top:16px}

/* faq page */
.faq-cats{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px}
.faq-cats a{text-decoration:none; background:#fff; border:2px solid var(--ink); border-radius:var(--r-pill); padding:8px 18px; font-weight:900; font-size:14px}
.faq-cats a:hover{background:var(--yellow)}
.faq-sec{scroll-margin-top:100px}
.faq-sec + .faq-sec{margin-top:56px}
.faq-sec h2{font-size:24px}
.faq-sec .faq{margin-top:20px; max-width:none}

/* works page */
.wk{display:grid; gap:48px}
.wk__item{display:grid; grid-template-columns:1.25fr 1fr; gap:48px; align-items:center; background:var(--bg); border-radius:var(--r-xl); padding:40px}
.wk__item:nth-child(even){grid-template-columns:1fr 1.25fr}
.wk__item:nth-child(even) .wk__shot{order:2}
.wk__shot{border:2px solid var(--ink); border-radius:16px; overflow:hidden; box-shadow:0 8px 0 var(--ink); background:#fff}
.wk__shot img{width:100%; aspect-ratio:16/9; object-fit:cover; object-position:0 0}
.wk__tags{display:flex; flex-wrap:wrap; gap:8px}
.wk__tags span{background:#fff; border-radius:var(--r-pill); padding:4px 12px; font-size:13px; font-weight:900; border:2px solid var(--ink)}
.wk__item h2{font-size:clamp(24px,2.6vw,32px); margin-top:14px}
.wk__item p{margin-top:12px; font-weight:700; color:var(--ink-2)}
.wk__item .btn{margin-top:22px}

/* forms */
.form-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:start}
.form{background:#fff; border:2px solid var(--ink); border-radius:var(--r-lg); padding:36px; box-shadow:0 6px 0 var(--ink); display:grid; gap:22px}
.field{display:grid; gap:8px}
.field > span{font-weight:900; font-size:15px; display:flex; align-items:center; gap:8px}
.req,.opt-b{display:inline-block; border-radius:6px; padding:2px 8px; font-size:11px; font-weight:900; line-height:1.4}
.req{background:var(--coral); color:#fff} .opt-b{background:var(--bg); color:var(--ink-2)}
.field input,.field select,.field textarea{width:100%; font:600 16px/1.6 var(--ff); color:var(--ink); background:var(--bg); border:2px solid transparent; border-radius:12px; padding:12px 14px; transition:border-color .15s, background .15s}
.field textarea{min-height:140px; resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--teal); background:#fff}
.field small{font-size:13px; color:var(--ink-2); font-weight:700}
.check{display:flex; gap:10px; align-items:center; font-weight:800}
.check input{width:20px; height:20px; accent-color:var(--teal)}
.check a{color:var(--teal)}
.form .btn{justify-self:start}
.form-msg{border-radius:12px; padding:14px 16px; font-weight:800}
.form-msg--ok{background:var(--teal-l); color:#0b5d56}
.form-msg--ng{background:#ffe3dc; color:#a3361b}
.aside{display:grid; gap:20px; position:sticky; top:100px}
.aside__box{background:var(--bg); border-radius:var(--r-lg); padding:28px}
.aside__box h3{font-size:19px}
.aside__box ul{list-style:none; padding:0; margin:14px 0 0; display:grid; gap:10px; font-weight:800}
.aside__box li{padding-left:28px; position:relative}
.aside__box li::before{content:""; position:absolute; left:0; top:.35em; width:18px; height:18px; border-radius:50%; background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
.aside__box p{font-weight:700; color:var(--ink-2); margin-top:10px; font-size:15px}
.aside img{width:140px; margin:0 auto}
.estimate{white-space:pre-wrap; font:600 13px/1.7 var(--ff); background:var(--bg); border-radius:12px; padding:14px; max-height:220px; overflow:auto}

/* simulator */
.sim{max-width:820px; margin:0 auto}
.sim-progress{height:12px; background:var(--bg); border-radius:var(--r-pill); overflow:hidden; border:2px solid var(--ink)}
.sim-progress i{display:block; height:100%; background:var(--teal); transition:width .3s}
.sim-steps{display:flex; justify-content:space-between; margin-top:10px; font-size:13px; font-weight:900; color:var(--ink-2)}
.sim-steps b{color:var(--teal)}
.sim-card{margin-top:28px; background:#fff; border:2px solid var(--ink); border-radius:var(--r-lg); padding:36px; box-shadow:0 6px 0 var(--ink)}
.sim-badge{display:inline-block; background:var(--ink); color:#fff; border-radius:var(--r-pill); padding:4px 14px; font-size:13px; font-weight:900}
.sim-q{font-size:clamp(22px,2.6vw,30px); margin-top:14px}
.sim-sub{margin-top:8px; font-weight:700; color:var(--ink-2)}
.sim-opts{list-style:none; padding:0; margin:24px 0 0; display:grid; gap:12px}
.sim-opt{width:100%; display:flex; align-items:center; gap:16px; text-align:left; background:var(--bg); border:2px solid transparent; border-radius:16px; padding:16px 18px; cursor:pointer; font:inherit; color:inherit; transition:border-color .15s, background .15s, transform .15s}
.sim-opt:hover{transform:translateY(-1px); border-color:var(--ink)}
.sim-opt.selected{background:#fff; border-color:var(--teal); box-shadow:0 4px 0 var(--teal)}
.sim-opt b{display:block; font-weight:900; font-size:17px}
.sim-opt small{display:block; font-weight:700; color:var(--ink-2); font-size:14px; margin-top:2px}
.sim-opt .mark{margin-left:auto; flex:none; width:26px; height:26px; border-radius:50%; border:2px solid #b6bec6; display:grid; place-items:center}
.sim-opt.selected .mark{background:var(--teal); border-color:var(--teal)}
.sim-opt.selected .mark::after{content:""; width:10px; height:6px; border-left:3px solid #fff; border-bottom:3px solid #fff; transform:rotate(-45deg) translate(1px,-1px)}
.sim-pages{display:flex; flex-wrap:wrap; gap:10px; margin:12px 0 4px 8px}
.sim-pages button{font:900 15px/1 var(--ff); background:#fff; border:2px solid var(--ink); border-radius:var(--r-pill); padding:10px 18px; cursor:pointer}
.sim-pages button.selected{background:var(--teal); color:#fff; border-color:var(--teal)}
.sim-nav{display:flex; justify-content:space-between; gap:12px; margin-top:28px}
.sim-nav .btn[disabled]{opacity:.4; cursor:not-allowed; transform:none}
.sim-res{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px}
.sim-res__card{border-radius:var(--r-lg); padding:26px; background:var(--yellow); border:2px solid var(--ink)}
.sim-res__card--b{background:var(--teal-l)}
.sim-res__card dt{font-weight:900; font-size:14px}
.sim-res__card dd{margin:8px 0 0; font:900 clamp(32px,4vw,44px)/1 "Red Hat Display",var(--ff)}
.sim-res__card dd small{font:900 16px/1 var(--ff); margin-left:2px}
.sim-res__card p{margin-top:8px; font-size:13px; font-weight:800; color:var(--ink-2)}
.sim-bd{margin-top:24px; background:var(--bg); border-radius:var(--r-lg); padding:24px 26px}
.sim-bd h3{font-size:17px}
.sim-bd ul{list-style:none; padding:0; margin:12px 0 0}
.sim-bd li{display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--line); font-weight:800; font-size:15px}
.sim-bd li:last-child{border-bottom:0}
.sim-notes{margin:16px 0 0; padding:0; list-style:none; display:grid; gap:4px; font-size:12px; color:var(--ink-2); font-weight:700}

/* 404 */
.nf{text-align:center; padding:80px 0 120px}
.nf b{display:block; font:900 clamp(80px,14vw,160px)/1 "Red Hat Display",var(--ff)}
.nf img{width:150px; margin:24px auto 0}

@media (max-width:860px){
  .phead__in{min-height:0}
  .phead__char{width:90px; margin-bottom:-90px}
  .cols,.reco,.opt,.form-grid,.sim-res{grid-template-columns:1fr}
  .wk__item,.wk__item:nth-child(even){grid-template-columns:1fr; gap:24px; padding:24px}
  .wk__item:nth-child(even) .wk__shot{order:0}
  .aside{position:static}
  .list a{grid-template-columns:1fr; gap:6px}
  .list span.go{display:none}
  .reco__card img{width:70px; top:-40px}
}
@media (max-width:600px){
  .phead{padding:28px 0 72px}
  .phead h1{font-size:32px}
  .phead__char{display:none}
  .sub{padding:60px 0 90px}
  .form,.sim-card{padding:24px 20px}
  .form .btn{justify-self:stretch}
  .sim-nav .btn{flex:1; padding:0 12px}
}

/* fixes */
.req,.opt-b{font-style:normal}
.phead__h{font-weight:900; font-size:clamp(34px,5vw,64px); line-height:1.2; margin-top:18px}
.crumb [aria-current]{display:inline-block; max-width:28em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom}
@media (max-width:860px){.aside img{display:none}}

/* ===== simulator v2 ===== */
.sim{max-width:1080px}
.sim-head{display:flex; align-items:center; gap:16px}
.sim-head .sim-progress{flex:1}
.sim-count{font:900 15px/1 "Red Hat Display",var(--ff); white-space:nowrap}
.sim-resume{margin-top:16px; background:#fff; border-radius:12px; padding:12px 16px; font-weight:800; font-size:14px; display:flex; gap:12px; align-items:center; flex-wrap:wrap}
.sim-resume button{background:none; border:0; padding:0; font:inherit; color:var(--teal); text-decoration:underline; cursor:pointer}
.sim-layout{display:grid; grid-template-columns:1fr 300px; gap:24px; align-items:start; margin-top:28px}
.sim-layout .sim-card{margin-top:0}
.sim-opts--2{grid-template-columns:1fr 1fr}
.sim-opt{min-height:64px}
.sim-opt:disabled{opacity:.45; cursor:not-allowed; transform:none; border-color:transparent}
.sim-opt.is-multi .mark{border-radius:7px}
.sim-opt.is-multi.selected .mark{border-radius:7px}
.sim-price{flex:none; font-weight:900; font-size:13px; color:var(--teal); white-space:nowrap}
.sim-grid{list-style:none; padding:0; margin:24px 0 0; display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
.sim-chip{width:100%; display:grid; gap:4px; justify-items:center; background:var(--bg); border:2px solid transparent; border-radius:16px; padding:16px 8px; cursor:pointer; font:inherit; color:inherit; transition:border-color .15s, transform .15s}
.sim-chip:hover{border-color:var(--ink); transform:translateY(-1px)}
.sim-chip.selected{background:#fff; border-color:var(--teal); box-shadow:0 4px 0 var(--teal)}
.sim-chip b{font:900 26px/1 "Red Hat Display",var(--ff)}
.sim-chip small{font-weight:800; font-size:12px; color:var(--ink-2)}
.sim-chip em{font-style:normal; font-weight:900; font-size:11px; background:var(--ink); color:#fff; border-radius:var(--r-pill); padding:2px 8px}
.sim-live{position:sticky; top:96px; background:#fff; border-radius:var(--r-lg); padding:22px 22px 18px; border:2px solid var(--ink)}
.sim-live__h{font-weight:900; font-size:13px; color:var(--ink-2)}
.sim-live__p{font:900 34px/1.1 "Red Hat Display",var(--ff); margin-top:6px}
.sim-live__p small{font:900 14px/1 var(--ff); margin-left:2px}
.sim-live__s{font-weight:800; font-size:13px; color:var(--ink-2); margin-top:4px}
.sim-live__list{list-style:none; padding:14px 0 0; margin:14px 0 0; border-top:1px solid var(--line); display:grid; gap:6px; font-size:12px}
.sim-live__list li{display:grid; grid-template-columns:56px 1fr; gap:8px; color:var(--ink-2); font-weight:700}
.sim-live__list li b{font-weight:800; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.sim-live__list li.is-cur span{color:var(--teal); font-weight:900}
.sim-result{max-width:820px; margin-inline:auto}
.sim-alert{list-style:none; margin:20px 0 0; padding:16px 18px; background:#fff6d6; border-radius:12px; display:grid; gap:6px; font-weight:800; font-size:14px}
.sim-alert li::before{content:"！"; color:var(--coral); margin-right:4px}
.sim-actions{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:24px}
.sim-actions .btn{width:100%; justify-content:center}
.sim-actions__note{margin-top:10px; font-size:13px; font-weight:700; color:var(--ink-2)}
.sim-ans{display:flex; gap:10px; align-items:center; text-align:right; justify-content:flex-end}
.sim-edit{flex:none; background:#fff; border:2px solid var(--ink); border-radius:var(--r-pill); padding:2px 10px; font:900 12px/1.4 var(--ff); cursor:pointer}
.sim-edit:hover{background:var(--yellow)}
.sim-tools{display:flex; flex-wrap:wrap; gap:8px 20px; justify-content:center; margin-top:24px}
.sim-tools button{background:none; border:0; padding:0; font:800 14px/1.6 var(--ff); color:var(--ink-2); text-decoration:underline; cursor:pointer}
.sim-foot{margin-top:28px; font-size:13px; font-weight:700; color:var(--ink-2); text-align:center}
.sim-foot a{color:var(--teal)}
.btn--coral{background:var(--coral); color:#fff; border-color:var(--ink)}

/* estimate summary in forms */
.estbox{background:var(--yellow); border:2px solid var(--ink); border-radius:var(--r-lg); padding:22px 24px; box-shadow:0 5px 0 var(--ink)}
.estbox__top{display:flex; justify-content:space-between; gap:12px; align-items:baseline; flex-wrap:wrap}
.estbox h3{font-size:16px}
.estbox__p{font:900 30px/1.1 "Red Hat Display",var(--ff); margin-top:6px}
.estbox__p small{font:900 14px/1 var(--ff)}
.estbox__s{font-weight:800; font-size:13px; margin-top:4px}
.estbox details{margin-top:12px; font-size:13px; font-weight:700}
.estbox summary{cursor:pointer; font-weight:900}
.estbox ul{margin:8px 0 0; padding-left:1.1em; display:grid; gap:2px}
.estbox a{font-weight:900; font-size:13px; color:var(--ink)}

/* form errors / states */
.field.is-err input,.field.is-err select,.field.is-err textarea{border-color:var(--coral); background:#fff}
.field__err{color:#b3361b; font-weight:800; font-size:13px}
.check--sub{font-size:14px; font-weight:700}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.form h2{font-size:20px}
.form fieldset{border:0; padding:0; margin:0; display:grid; gap:22px}
.form legend{font-weight:900; font-size:18px; margin-bottom:6px; padding:0}

/* thanks */
.thx{max-width:760px; margin:0 auto; text-align:center}
.thx h2{font-size:clamp(24px,3vw,32px)}
.thx > p{margin-top:12px; font-weight:700; color:var(--ink-2)}
.thx .steps{margin-top:40px}

/* mobile CTA */
.mcta,.mcta__spacer{display:none}
@media (max-width:860px){
  .mcta{display:grid; grid-template-columns:1fr 1.4fr; gap:8px; position:fixed; left:0; right:0; bottom:0; z-index:60; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border-top:2px solid var(--ink)}
  .mcta .btn{width:100%; justify-content:center; padding:0 10px; min-height:48px}
  .mcta__spacer{display:block; height:72px; background:var(--ink)}
  .sim-layout{grid-template-columns:1fr}
  .sim-live{position:static; order:-1; padding:14px 18px; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}
  .sim-live__p{font-size:24px; margin:0}
  .sim-live__list{display:none}
  .sim-actions{grid-template-columns:1fr}
}
@media (max-width:600px){
  .sim-opts--2{grid-template-columns:1fr}
  .sim-opt{flex-wrap:wrap}
  .sim-price{order:3; width:100%; padding-left:0}
  .sim-ans{flex-direction:column; align-items:flex-end; gap:4px}
}

/* plan table: first column sticky on small screens */
.tbl tbody th{position:sticky; left:0; z-index:1}
.tbl thead th:first-child{position:sticky; left:0; z-index:2}
.tbl-hint{display:none; font-size:12px; font-weight:800; color:var(--ink-2); margin-top:12px}
@media (max-width:760px){.tbl-hint{display:block}}

/* faq search */
.faq-search{display:flex; gap:10px; align-items:center; background:#fff; border:2px solid var(--ink); border-radius:var(--r-pill); padding:6px 8px 6px 20px; margin-bottom:20px}
.faq-search input{flex:1; border:0; outline:0; font:700 16px/1.6 var(--ff); background:transparent; min-width:0}
.faq-search button{border:0; background:var(--bg); border-radius:var(--r-pill); padding:6px 14px; font:800 13px/1 var(--ff); cursor:pointer}
.faq-empty{background:#fff; border-radius:var(--r-md); padding:24px; font-weight:800}

@media print{
  .hd,.ft,.phead,.mcta,.mcta__spacer,.sim-head,.sim-actions,.sim-actions__note,.sim-tools,.sim-edit,.sim-foot,.cta{display:none!important}
  .sub{margin:0; padding:0; border-radius:0; background:#fff!important}
  .sim-card{box-shadow:none; border:1px solid #999}
  .sim-result::before{content:"KUCHIBASHI 料金シミュレーター 概算結果（税抜）"; display:block; font-weight:900; margin-bottom:12px}
}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.4; cursor:not-allowed; transform:none}
.btn--coral{box-shadow:0 4px 0 var(--ink)}
.aside__steps{margin:14px 0 0; padding-left:1.3em; display:grid; gap:10px; font-weight:700; font-size:14px; color:var(--ink-2)}
.aside__steps b{display:block; color:var(--ink); font-weight:900}
.sub .plan{display:flex; flex-direction:column}
.plan__cta{margin-top:auto; padding-top:22px; display:flex; gap:16px; align-items:center; justify-content:center; flex-wrap:wrap}
.plan__cta .btn{height:46px; padding:0 22px; font-size:15px}
.sim-opt > span:first-child{flex:1; min-width:0}
.check{align-items:flex-start}
.check input{flex:none; margin-top:3px}
@media (max-width:600px){
  .sim-opt{display:grid; grid-template-columns:1fr auto; column-gap:12px; row-gap:6px}
  .sim-opt .mark{grid-column:2; grid-row:1 / span 2; align-self:center}
  .sim-price{grid-column:1; order:0; width:auto}
}
