/* Shido 調査レポート 保護＋PDFダウンロード v3  /marketing/report/_assets/gate.css */
:root { --srg-ink:#111; --srg-sub:#555; --srg-line:#dcdcdc; --srg-bg:#fff; --srg-field:#fff; --srg-accent:#111; --srg-accent-ink:#fff; --srg-err:#b42318; }
@media (prefers-color-scheme: dark) {
  :root { --srg-ink:#f2f2f2; --srg-sub:#b5b5b5; --srg-line:#3a3a3a; --srg-bg:#181818; --srg-field:#111; --srg-accent:#f2f2f2; --srg-accent-ink:#111; --srg-err:#ff8a80; }
  .srg-watermark { filter: invert(1); }
}

/* ---------- 持ち出し対策 ---------- */
.srg-protect body { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.srg-protect input, .srg-protect textarea { -webkit-user-select: text; user-select: text; }
.srg-protect img, .srg-protect svg { -webkit-user-drag: none; }
.srg-watermark { position: fixed; inset: 0; z-index: 40; pointer-events: none; background-repeat: repeat; }

@media print {
  .srg-protect body > * { display: none !important; }
  .srg-protect body::before { content: "このレポートは印刷できません。資料の保存・引用は、ページ内の「PDFをダウンロード」からPDFをご利用ください。 ── 株式会社Shido"; display: block; padding: 40px; font-size: 14px; line-height: 1.8; color: #111; }
}

/* ---------- ダウンロードボタン ---------- */
.srg-dlbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 20px 0 4px; }
.srg-dl { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; font: inherit; font-size: 14px; font-weight: 700; letter-spacing: .04em; color: var(--srg-accent-ink); background: var(--srg-accent); border: 0; border-radius: 3px; cursor: pointer; transition: opacity .2s; }
.srg-dl:hover { opacity: .85; }
.srg-dlnote { font-size: 12px; color: var(--srg-sub); }
.srg-fab { position: fixed; right: 20px; bottom: 20px; z-index: 60; display: inline-flex; align-items: center; gap: 6px; padding: 12px 16px; font: inherit; font-size: 13px; font-weight: 700; letter-spacing: .06em; color: var(--srg-accent-ink); background: var(--srg-accent); border: 0; border-radius: 999px; box-shadow: 0 8px 24px rgba(0,0,0,.18); cursor: pointer; transition: transform .2s; }
.srg-fab:hover { transform: translateY(-2px); }

/* ---------- モーダル ---------- */
.srg-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 16px; }
.srg-modal[hidden] { display: none; }
.srg-modal-open, .srg-modal-open body { overflow: hidden; }
.srg-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.45); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.srg-card { position: relative; width: 100%; max-width: 620px; max-height: calc(100vh - 32px); overflow: auto; padding: 34px 34px 26px; background: var(--srg-bg); color: var(--srg-ink); border-top: 3px solid var(--srg-accent); border-radius: 4px; box-shadow: 0 24px 60px rgba(0,0,0,.25); font-family: inherit; box-sizing: border-box; }
.srg-close { position: absolute; top: 8px; right: 10px; width: 36px; height: 36px; font-size: 22px; line-height: 1; color: var(--srg-sub); background: none; border: 0; cursor: pointer; }
.srg-kicker { margin: 0 0 8px; font-size: 11px; letter-spacing: .28em; color: var(--srg-sub); }
.srg-title { margin: 0 0 10px; font-size: 21px; line-height: 1.5; font-weight: 700; color: var(--srg-ink); border: 0; padding: 0; }
.srg-lead { margin: 0 0 20px; font-size: 14px; line-height: 1.8; color: var(--srg-sub); }
.srg-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin: 0; }
.srg-field { display: flex; flex-direction: column; gap: 6px; }
.srg-field--full, .srg-consent, .srg-purpose, .srg-error, .srg-submit, .srg-recaptcha { grid-column: 1 / -1; }
.srg-field label { font-size: 13px; font-weight: 700; color: var(--srg-ink); }
.srg-req { display: inline-block; margin-left: 8px; padding: 2px 6px; font-size: 10px; line-height: 1.4; font-weight: 700; color: var(--srg-accent-ink); background: var(--srg-accent); border-radius: 2px; vertical-align: 1px; }
.srg-field input { width: 100%; box-sizing: border-box; padding: 12px 14px; font: inherit; font-size: 16px; color: var(--srg-ink); background: var(--srg-field); border: 1px solid var(--srg-line); border-radius: 3px; }
.srg-field input:focus { outline: 2px solid var(--srg-accent); outline-offset: 1px; border-color: var(--srg-accent); }
.srg-field input.srg-invalid { border-color: var(--srg-err); }
.srg-consent { display: flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 14px; color: var(--srg-ink); cursor: pointer; }
.srg-consent input { width: 18px; height: 18px; margin: 0; accent-color: var(--srg-accent); }
.srg-consent a, .srg-recaptcha a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.srg-purpose { margin: -4px 0 0; font-size: 12px; line-height: 1.7; color: var(--srg-sub); }
.srg-error { margin: 0; padding: 10px 12px; font-size: 13px; color: var(--srg-err); border: 1px solid currentColor; border-radius: 3px; }
.srg-error[hidden] { display: none; }
.srg-submit { margin-top: 6px; padding: 16px; font: inherit; font-size: 15px; font-weight: 700; letter-spacing: .06em; color: var(--srg-accent-ink); background: var(--srg-accent); border: 0; border-radius: 3px; cursor: pointer; transition: opacity .2s; }
.srg-submit:hover { opacity: .85; }
.srg-submit:disabled { opacity: .5; cursor: wait; }
.srg-recaptcha { margin: 2px 0 0; font-size: 11px; line-height: 1.6; color: var(--srg-sub); }
.grecaptcha-badge { visibility: hidden; }

/* ---------- PDF生成モード（?shido_pdf=1） ---------- */
.srg-pdf-footer { display: none; }
@media print {
  /* 用紙をPC幅相当（約1000px）にしてデスクトップのレイアウトで組む。A4印刷時は自動で縮小される */
  .srg-pdf .tablewrap, .srg-pdf [class*="scroll"], .srg-pdf div:has(> table) { overflow: visible !important; }
  .srg-pdf section.ch { break-before: page; break-inside: auto !important; page-break-inside: auto !important; }
  .srg-pdf tr, .srg-pdf h2, .srg-pdf h3 { break-inside: avoid; }
  .srg-pdf h2, .srg-pdf h3 { break-after: avoid; }
  .srg-pdf table { width: 100% !important; }
  /* Chromeは印刷時の@media幅を既定用紙で判定するため、レポートの max-width:760px が効いて1列になる → デスクトップ値に戻す */
  .srg-pdf .grid2 { grid-template-columns: 1fr 1fr !important; }
  .srg-pdf .grid3 { grid-template-columns: 1fr 1fr 1fr !important; }
  .srg-pdf .masthead h1 { font-size: 40px !important; }
  .srg-pdf .srg-pdf-footer { display: block; position: fixed; left: 0; right: 0; bottom: 0; padding: 4px 0; font-size: 11pt; color: #666; text-align: center; background: #fff; border-top: .5pt solid #ccc; }
  .srg-pdf body { margin-bottom: 14mm; }
}
@page { size: 285mm 403mm; margin: 14mm 12mm 18mm; }

@media (max-width: 640px) {
  .srg-card { padding: 24px 16px 18px; }
  .srg-title { font-size: 18px; }
  .srg-lead { font-size: 13px; margin-bottom: 14px; }
  .srg-form { grid-template-columns: 1fr; gap: 10px; }
  .srg-fab { right: 14px; bottom: 14px; padding: 11px 14px; }
}
