/* Pharma Lingua Order — 注文フォーム。すべて .plo- で始まる名前に閉じています。 */
.plo-app {
  --plo-navy: #1f3a5f;
  --plo-teal: #2a9d8f;
  --plo-line: #d6dde5;
  --plo-bg: #f6f9fb;
  --plo-text: #1d2733;
  --plo-muted: #5b6b7c;
  max-width: 820px;
  margin: 0 auto;
  color: var(--plo-text);
  line-height: 1.7;
  font-size: 16px;
}
.plo-app *, .plo-app *::before, .plo-app *::after { box-sizing: border-box; }

.plo-fieldset {
  border: 1px solid var(--plo-line);
  border-radius: 10px;
  padding: 18px 20px 20px;
  margin: 0 0 22px;
  background: #fff;
}
.plo-legend { font-weight: 700; color: var(--plo-navy); padding: 0 8px; font-size: 1.05em; }
.plo-hint { margin: 0 0 8px; color: var(--plo-muted); font-size: 0.92em; }
.plo-muted { color: var(--plo-muted); font-size: 0.92em; margin: 6px 0; }

/* メニュー */
.plo-menu {
  display: flex; gap: 12px; align-items: flex-start;
  border: 2px solid var(--plo-line); border-radius: 10px;
  padding: 12px 14px; margin: 0 0 10px; cursor: pointer; background: #fff;
  transition: border-color .15s, background .15s;
}
.plo-menu:hover { border-color: #9fb3c8; }
.plo-menu.is-selected { border-color: var(--plo-teal); background: #f1faf8; }
.plo-menu input { margin-top: 6px; flex: 0 0 auto; }
.plo-menu-body { display: flex; flex-direction: column; gap: 2px; }
.plo-menu-title { font-weight: 700; color: var(--plo-navy); }
.plo-menu-desc { font-size: 0.92em; }
.plo-menu-rate { font-size: 0.85em; color: var(--plo-muted); }

/* 入力 */
.plo-inline { display: inline-block; margin: 0 18px 10px 0; cursor: pointer; }
.plo-row { margin: 0 0 14px; }
.plo-label { display: block; font-weight: 600; margin-bottom: 4px; }
.plo-app input[type="text"], .plo-app input[type="email"], .plo-app textarea, .plo-app select {
  width: 100%; padding: 10px 12px; border: 1px solid #b9c5d1; border-radius: 6px;
  font: inherit; background: #fff; color: inherit;
}
.plo-app input[type="file"] { max-width: 100%; }
.plo-app input:focus-visible, .plo-app textarea:focus-visible, .plo-app select:focus-visible, .plo-btn:focus-visible {
  outline: 3px solid rgba(42, 157, 143, .45); outline-offset: 2px;
}
.plo-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.plo-check { margin: 10px 0; font-size: 0.93em; }
.plo-check label { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; }
.plo-check input { margin-top: 5px; flex: 0 0 auto; }

/* ボタン */
.plo-actions { margin: 6px 0 14px; }
.plo-btn {
  appearance: none; border: 0; border-radius: 8px; cursor: pointer;
  background: var(--plo-navy); color: #fff; font: inherit; font-weight: 700;
  padding: 12px 24px; min-height: 44px;
}
.plo-btn:hover { filter: brightness(1.12); }
.plo-btn:disabled { opacity: .55; cursor: not-allowed; }
.plo-btn-primary { background: var(--plo-teal); }

/* 結果 */
.plo-card {
  border: 1px solid var(--plo-line); border-left: 5px solid var(--plo-teal);
  border-radius: 10px; padding: 16px 20px; margin: 0 0 22px; background: var(--plo-bg);
}
.plo-h { margin: 0 0 10px; font-size: 1.15em; color: var(--plo-navy); }
.plo-kv { display: flex; gap: 14px; margin: 4px 0; }
.plo-k { flex: 0 0 5.5em; color: var(--plo-muted); }
.plo-price { width: 100%; border-collapse: collapse; margin: 10px 0 6px; }
.plo-price th, .plo-price td { padding: 8px 4px; border-bottom: 1px solid var(--plo-line); text-align: left; font-weight: 400; }
.plo-price td { text-align: right; font-variant-numeric: tabular-nums; }
.plo-price .plo-total th, .plo-price .plo-total td { font-weight: 700; font-size: 1.15em; border-bottom: 0; color: var(--plo-navy); }
.plo-notice { background: #fff8e6; border: 1px solid #f0d78c; border-radius: 6px; padding: 10px 12px; margin: 10px 0; font-size: 0.93em; }
.plo-alert { background: #fdecea; border: 1px solid #f1b4ae; color: #8a1f17; border-radius: 6px; padding: 10px 12px; margin: 8px 0; }
.plo-link { color: var(--plo-teal); }
.plo-loading { color: var(--plo-muted); }

@media (max-width: 520px) {
  .plo-fieldset { padding: 14px 12px 16px; }
  .plo-kv { flex-direction: column; gap: 0; }
  .plo-btn { width: 100%; }
}

/* 図表の扱い */
.plo-figopts { border-top: 1px dashed var(--plo-line); border-bottom: 1px dashed var(--plo-line); padding: 10px 0 4px; margin: 8px 0 10px; }
.plo-q { font-weight: 700; color: var(--plo-navy); margin: 4px 0 6px; }
.plo-sub { margin: 4px 0 0 1.2em; padding-left: 10px; border-left: 3px solid var(--plo-teal); }

/* 翻訳の方向が1つだけのとき */
.plo-dir-fixed { font-weight: 700; color: var(--plo-navy); margin: 0 0 12px; }
