/* =========================================================
   便利ツール 追加スタイル
   - 既存 style.css のデザイントークン(:root)をそのまま利用
   - 既存の余白/見出し/カード/ホバー/レスポンシブ規則を踏襲
   - TOPの「便利ツール」セクション、一覧ページ、各ツールページで共用
   ========================================================= */

/* ===== ツールカード(TOPセクション・一覧・関連ツールで共用) ===== */
.tools-lead{
  max-width:var(--measure);color:var(--text-soft);
  font-size:.9rem;line-height:2.5;letter-spacing:.1em;font-weight:300;
  margin-top:-6px;margin-bottom:clamp(56px,8vh,84px);
}
.tools-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:clamp(28px,4vw,44px);
}
@media(max-width:760px){.tools-grid{grid-template-columns:1fr}}

.tool-card{
  display:flex;flex-direction:column;
  text-decoration:none;color:inherit;
  padding:clamp(32px,4vw,44px);
  background:var(--white);border:1px solid var(--line);
  position:relative;overflow:hidden;
  transition:background .5s ease,border-color .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);
}
.tool-card::before{
  content:"";position:absolute;top:0;left:0;height:2px;width:100%;
  background:linear-gradient(90deg,var(--brown),var(--sakura));
  transform:scaleX(0);transform-origin:left;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.tool-card:hover{background:var(--bg-soft);border-color:#DDD4C6;transform:translateY(-4px)}
.tool-card:hover::before{transform:scaleX(1)}
.tool-card:focus-visible{outline:1px solid var(--brown);outline-offset:4px}

.tool-card .ic{
  width:60px;height:60px;border-radius:50%;flex:none;
  border:1px solid var(--line);background:var(--bg-soft);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:28px;
  transition:background .5s ease,border-color .5s ease;
}
.tool-card:hover .ic{background:var(--brown-tint);border-color:#DDD4C6}
.tool-card .ic svg{width:26px;height:26px;stroke:var(--brown-deep);stroke-width:1.4;fill:none;stroke-linecap:round;stroke-linejoin:round}

.tool-card h3{
  font-size:clamp(1.06rem,2vw,1.24rem);font-weight:500;letter-spacing:.2em;
  margin-bottom:6px;
}
.tool-card h3 small{
  display:block;font-family:var(--en);font-style:italic;font-weight:500;
  font-size:.82rem;letter-spacing:.16em;color:var(--brown);opacity:.75;margin-top:8px;
}
.tool-card p{
  font-size:.86rem;color:var(--text-soft);line-height:2.4;letter-spacing:.08em;
  font-weight:300;margin-top:16px;flex:1;
}
.tool-card .more{
  margin-top:26px;display:inline-flex;align-items:center;gap:12px;
  font-size:.72rem;letter-spacing:.34em;color:var(--brown-deep);font-weight:400;
}
.tool-card .more .arw{
  width:26px;height:26px;border-radius:50%;border:1px solid var(--line);flex:none;
  display:flex;align-items:center;justify-content:center;
  transition:background .45s ease,border-color .45s ease;
}
.tool-card .more .arw svg{width:11px;height:11px;stroke:var(--brown-deep);stroke-width:1.5;fill:none;transition:stroke .45s ease,transform .45s ease}
.tool-card:hover .more .arw{background:var(--brown);border-color:var(--brown)}
.tool-card:hover .more .arw svg{stroke:#fff;transform:translateX(3px)}

/* ===== パンくずリスト(ツール下層のみ) ===== */
.crumbs{
  max-width:var(--max);margin:0 auto;
  padding:clamp(28px,4vh,40px) var(--pad) 0;
}
.crumbs ol{
  list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:14px;
  font-size:.7rem;letter-spacing:.2em;color:var(--muted);font-weight:300;
}
.crumbs a{color:var(--text-soft);text-decoration:none;transition:color .35s ease}
.crumbs a:hover,.crumbs a:focus-visible{color:var(--brown)}
.crumbs li{display:flex;align-items:center;gap:14px}
.crumbs .sep{width:14px;height:1px;background:var(--line);flex:none}
.crumbs [aria-current]{color:var(--ink);font-weight:400}

/* ===== 下層ページ共通ヘッダー(タイトル部) ===== */
.page-head{
  max-width:var(--max);margin:0 auto;
  padding:clamp(48px,7vh,80px) var(--pad) 0;
}
.page-head .kicker{margin-bottom:30px}
.page-head h1{
  font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:500;letter-spacing:.3em;line-height:1.9;
}
.page-head .lede{
  margin-top:clamp(32px,4.5vh,44px);max-width:var(--measure);
  color:var(--text);font-size:.92rem;line-height:2.6;letter-spacing:.1em;font-weight:300;
}
.page-head .lede strong{color:var(--ink);font-weight:500}

/* 一覧/ツールページの縦リズム(セクションの上側余白を詰める) */
.subpage-body{padding-top:clamp(60px,8vh,96px)}

/* ===== ツール本体パネル ===== */
.tool-shell{max-width:820px;margin:0 auto}
.tool-panel{
  border:1px solid var(--line);background:var(--bg-soft);
  padding:clamp(28px,4.5vw,48px);
}
.tool-panel + .tool-panel{margin-top:28px}
.tool-sub{
  font-size:.72rem;letter-spacing:.4em;color:var(--text-soft);font-weight:400;
  text-transform:uppercase;margin-bottom:22px;display:block;
}

/* フォーム部品(既存の線・色・字間に合わせる) */
.field label,.field-label{
  display:block;font-size:.74rem;letter-spacing:.28em;color:var(--text-soft);
  font-weight:400;margin-bottom:12px;
}
.field{margin-bottom:22px}
.field:last-child{margin-bottom:0}
input[type=text].tinput,textarea.tinput,input[type=number].tinput{
  width:100%;font-family:var(--sans);font-size:.95rem;color:var(--ink);
  letter-spacing:.08em;line-height:2;background:var(--white);
  border:1px solid var(--line);padding:14px 18px;
  transition:border-color .35s ease,box-shadow .35s ease;
  -webkit-font-smoothing:antialiased;
}
textarea.tinput{resize:vertical;min-height:180px;line-height:2.4;font-weight:300}
input.tinput:focus,textarea.tinput:focus{
  outline:none;border-color:var(--brown);
  box-shadow:0 0 0 3px rgba(129,106,83,.08);
}
input.tinput::placeholder,textarea.tinput::placeholder{color:#B7AD9E}

/* ボタン */
.btn{
  display:inline-flex;align-items:center;gap:12px;cursor:pointer;
  font-family:var(--serif);font-weight:500;font-size:.9rem;letter-spacing:.28em;text-indent:.28em;
  color:#fff;background:var(--brown);border:1px solid var(--brown);
  padding:14px 30px;transition:background .4s ease,border-color .4s ease,color .4s ease;
}
.btn:hover{background:var(--brown-deep);border-color:var(--brown-deep)}
.btn:focus-visible{outline:1px solid var(--brown);outline-offset:4px}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{color:var(--brown);border-color:var(--brown)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}

/* コピー用の小ボタン */
.copy-btn{
  cursor:pointer;font-family:var(--sans);font-size:.64rem;letter-spacing:.24em;
  color:var(--text-soft);background:var(--white);border:1px solid var(--line);
  padding:6px 14px;transition:color .35s ease,border-color .35s ease,background .35s ease;
  white-space:nowrap;
}
.copy-btn:hover{color:var(--brown);border-color:#DDD4C6}
.copy-btn.done{color:var(--brown);border-color:var(--sakura);background:var(--sakura-tint)}
.copy-btn:focus-visible{outline:1px solid var(--brown);outline-offset:3px}

/* ===== 文字数カウント ===== */
.wc-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:26px;
}
@media(max-width:560px){.wc-stats{grid-template-columns:repeat(2,1fr)}}
.wc-stats .cell{background:var(--white);padding:22px 18px;text-align:center}
.wc-stats .num{
  font-family:var(--en);font-style:italic;font-weight:500;
  font-size:clamp(1.8rem,5vw,2.6rem);color:var(--brown-deep);line-height:1.1;
  letter-spacing:.02em;
}
.wc-stats .cap{
  display:block;margin-top:10px;font-size:.66rem;letter-spacing:.24em;
  color:var(--text-soft);font-weight:400;
}

/* ===== カラーコード変換 ===== */
.cc-grid{display:grid;grid-template-columns:180px 1fr;gap:clamp(24px,4vw,40px);align-items:start}
@media(max-width:640px){.cc-grid{grid-template-columns:1fr}}
.cc-swatch{
  aspect-ratio:1;border:1px solid var(--line);position:relative;overflow:hidden;
  background:#816A53;
}
@media(max-width:640px){.cc-swatch{aspect-ratio:16/7}}
.cc-swatch input[type=color]{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;cursor:pointer;border:0;padding:0;
}
.cc-swatch .hint{
  position:absolute;left:0;right:0;bottom:0;pointer-events:none;
  font-size:.6rem;letter-spacing:.2em;text-align:center;
  color:rgba(255,255,255,.85);background:rgba(0,0,0,.14);padding:6px;
}
.cc-fields .row{display:flex;align-items:flex-end;gap:12px}
.cc-fields .row .grow{flex:1}
.cc-rgb{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.cc-out{
  margin-top:24px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:14px;
}
.cc-out .line{display:flex;align-items:center;justify-content:space-between;gap:16px}
.cc-out .val{
  font-family:var(--en);font-size:1.02rem;letter-spacing:.06em;color:var(--ink);
  font-weight:500;
}
.cc-out .k{font-size:.66rem;letter-spacing:.26em;color:var(--text-soft)}

/* ===== 画像サイズ早見表 ===== */
.seg{display:inline-flex;border:1px solid var(--line);background:var(--white);margin-bottom:28px}
.seg button{
  cursor:pointer;font-family:var(--sans);font-size:.72rem;letter-spacing:.26em;
  color:var(--text-soft);background:transparent;border:0;padding:12px 26px;
  transition:color .35s ease,background .35s ease;
}
.seg button[aria-selected=true]{color:#fff;background:var(--brown)}
.seg button:focus-visible{outline:1px solid var(--brown);outline-offset:2px}
.size-table{width:100%;border-collapse:collapse;font-size:.84rem;letter-spacing:.06em}
.size-table caption{
  text-align:left;font-size:.72rem;letter-spacing:.24em;color:var(--text-soft);
  padding-bottom:16px;font-weight:400;
}
.size-table th,.size-table td{
  text-align:left;padding:16px 12px;border-bottom:1px solid var(--line);
  vertical-align:baseline;
}
.size-table thead th{
  font-family:var(--sans);font-weight:400;font-size:.66rem;letter-spacing:.24em;
  color:var(--muted);border-bottom:1px solid var(--brown);
}
.size-table tbody th{font-weight:400;color:var(--ink);letter-spacing:.1em;width:40%}
.size-table .px{
  font-family:var(--en);font-style:italic;font-weight:500;font-size:1rem;
  color:var(--brown-deep);letter-spacing:.04em;cursor:pointer;
}
.size-table .px:hover{color:var(--brown)}
.size-table .memo{color:var(--text-soft);font-weight:300;font-size:.78rem}
.size-note{margin-top:22px;font-size:.76rem;color:var(--text-soft);line-height:2.3;font-weight:300;letter-spacing:.06em}
[hidden]{display:none !important}

/* ===== QRコード作成 ===== */
.qr-grid{display:grid;grid-template-columns:1fr 260px;gap:clamp(28px,4vw,44px);align-items:start}
@media(max-width:640px){.qr-grid{grid-template-columns:1fr}}
.qr-out{
  border:1px solid var(--line);background:var(--white);
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:22px;
}
.qr-out svg{width:100%;height:100%;display:block}
.qr-out .empty{font-size:.74rem;letter-spacing:.2em;color:var(--muted);text-align:center;line-height:2.2;font-weight:300}
.qr-size-row{display:flex;align-items:center;gap:16px;margin-top:6px}
.qr-size-row input[type=range]{flex:1;accent-color:var(--brown)}
.qr-size-row .v{font-family:var(--en);font-style:italic;font-size:.92rem;color:var(--brown-deep);min-width:64px;text-align:right}

/* ===== よくある質問(FAQ / FAQPage構造化データと対応) ===== */
.faq{max-width:820px;margin:0 auto}
.faq .item{border-top:1px solid var(--line);padding:clamp(24px,3.5vh,34px) 2px}
.faq .item:last-child{border-bottom:1px solid var(--line)}
.faq dt{
  font-family:var(--serif);font-weight:500;font-size:1.02rem;letter-spacing:.14em;
  color:var(--ink);line-height:1.95;display:flex;gap:16px;align-items:baseline;
}
.faq dt .q{
  font-family:var(--en);font-style:italic;font-weight:500;font-size:1.2rem;
  color:var(--brown);flex:none;line-height:1;
}
.faq dd{
  margin-top:14px;padding-left:32px;font-size:.88rem;color:var(--text-soft);
  line-height:2.5;letter-spacing:.08em;font-weight:300;
}
@media(max-width:560px){.faq dd{padding-left:0}}

/* ===== 関連ツール / 戻る導線 ===== */
.related{max-width:var(--max);margin:0 auto}
.related .sec-head{margin-bottom:clamp(44px,6vh,64px)}
.back-row{
  max-width:var(--max);margin:0 auto;
  padding-top:clamp(48px,7vh,80px);text-align:center;
}
.back-link{
  display:inline-flex;align-items:center;gap:18px;text-decoration:none;
  font-family:var(--serif);font-weight:500;font-size:.94rem;letter-spacing:.34em;text-indent:.34em;
  color:var(--ink);transition:color .4s ease;
}
.back-link .circle{
  width:52px;height:52px;border:1px solid var(--ink);border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex:none;
  transition:background .45s ease,border-color .45s ease;
}
.back-link .circle svg{width:15px;height:15px;stroke:var(--ink);stroke-width:1.4;fill:none;transition:stroke .45s ease,transform .45s ease}
.back-link:hover{color:var(--brown)}
.back-link:hover .circle{background:var(--brown);border-color:var(--brown)}
.back-link:hover .circle svg{stroke:#fff;transform:translateX(-4px)}
.back-link:focus-visible{outline:1px solid var(--brown);outline-offset:8px}
