/* パートナー募集専用。共通ヘッダーの外観は site-design.css。
   文章: /agent/index.html の MIRAI BLOCK ごとに編集できます。
   写真: 元画像の握手部分だけをCSSで表示し、原本の画質を保持します。 */
.agent-page {
  --agent-navy: #0c2340;
  --agent-gold: #896329;
  --agent-gold-light: #e0c389;
  --agent-muted: #596373;
  --agent-line: #dce0e5;
  --agent-space: clamp(24px, 5vw, 80px);
  background: #fff;
  color: var(--agent-navy);
}
.agent-page .site-header { background: rgba(255,255,255,.97); border-bottom-color: #e7e9ed; }
.agent-main { padding-top: 0; }
.agent-main strong { color: var(--agent-gold); font-weight: 700; }
.agent-eyebrow { font: 600 11px/1.5 var(--sans); letter-spacing: .22em; color: var(--agent-gold); }
.agent-main h1, .agent-main h2, .agent-main h3 { font-family: var(--serif); font-weight: 500; }
.agent-main p { line-height: 2; }
.agent-hero {
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(0, 1.15fr);
  gap: clamp(32px, 4vw, 64px);
  max-width: 1600px;
  margin: auto;
  padding: 70px var(--agent-space) 64px;
  align-items: center;
}
.agent-page-label { font-size: 17px; margin-top: 12px; letter-spacing: .12em; }
.agent-hero h1 { margin: 35px 0 26px; font-size: clamp(33px, 3.35vw, 54px); line-height: 1.65; letter-spacing: .025em; }
.agent-hero .agent-lead { font-size: 14px; line-height: 2.1; color: #455265; max-width: 36em; }
.agent-button {
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  min-height: 62px;
  padding: 18px 24px;
  background: var(--agent-navy);
  color: #fff;
  border: 1px solid var(--agent-navy);
  border-radius: 0;
  font: 600 14px/1.6 var(--sans);
  text-decoration: none;
  transition: background .18s, border-color .18s;
}
.agent-button > span { font-size: 22px; line-height: 1; font-weight: 400; }
.agent-button:hover { background: #1e3c60; border-color: #1e3c60; color: #fff; }
.agent-hero .agent-button { margin-top: 30px; }
.agent-hero-visual { margin: 0; min-width: 0; }
.agent-photo-crop { position: relative; width: 100%; aspect-ratio: 877 / 640; overflow: hidden; background: #dbe0e5; }
.agent-photo-crop img {
  position: absolute;
  width: 175.142531%;
  max-width: none;
  height: auto;
  left: -75.028506%;
  top: -19.0625%;
  /* Source visible area: x658 y122, 877×640. No redrawn photograph. */
}
.agent-hero-visual figcaption { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--agent-line); font-size: 11px; color: var(--agent-muted); }
.agent-hero-visual figcaption > span:first-child { font-size: 9px; letter-spacing: .13em; }
.agent-principles {
  background: linear-gradient(120deg, #091b30 0%, #143452 63%, #0a2038 100%);
  color: #fff;
  display: grid;
  grid-template-columns: 1.05fr 1.2fr auto;
  gap: 36px;
  align-items: center;
  padding: 37px var(--agent-space);
}
.agent-principles > div > span:first-child { display: block; font-size: 9px; letter-spacing: .2em; color: #cad5df; }
.agent-principles h2 { font-size: clamp(21px, 1.65vw, 26px); line-height: 1.7; margin-top: 9px; letter-spacing: .025em; }
.agent-principles strong { color: var(--agent-gold-light); }
.agent-principles > p { font-size: 12px; color: #e0e6ed; line-height: 2; }
.agent-availability { border-left: 1px solid #6a7d904f; padding-left: 30px; display: grid; gap: 6px; }
.agent-availability strong { font-size: 17px; }
.agent-availability > span { font-size: 11px; color: #d8e2ed; }
.agent-section { padding: 100px var(--agent-space); max-width: 1440px; margin: auto; }
.agent-section h2 { font-size: clamp(30px, 3vw, 44px); line-height: 1.7; letter-spacing: .025em; margin-top: 20px; }
.agent-role { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9%; }
.agent-role-body > p { font-size: 14px; color: #455265; }
.agent-role-body .agent-body-lead { font: 500 clamp(22px, 2vw, 29px)/1.85 var(--serif); color: var(--agent-navy); margin-bottom: 24px; }
.agent-services { margin-top: 38px; border-top: 1px solid var(--agent-line); }
.agent-services > a { display: flex; align-items: center; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--agent-line); transition: background .18s; }
.agent-services > a:hover { background: #f6f8fa; }
.agent-service-no { font-size: 15px; font-weight: 500; color: var(--agent-gold); align-self: flex-start; padding-top: 5px; }
.agent-services small { display: block; color: var(--agent-muted); font-size: 9px; letter-spacing: .12em; }
.agent-services h3 { font-size: 22px; line-height: 1.6; margin: 9px 0 4px; }
.agent-services p { font-size: 12px; color: var(--agent-muted); }
.agent-service-arrow { margin-left: auto; font-size: 24px; }
.agent-steps { border-top: 1px solid var(--agent-line); }
.agent-flow-heading { display: flex; justify-content: space-between; align-items: end; gap: 32px; }
.agent-flow-heading > p { font-size: 13px; color: #455265; }
.agent-steps-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 38px; list-style: none; padding: 0; margin: 48px 0 0; }
.agent-steps-list li { padding-top: 24px; border-top: 1px solid #a48a5b; }
.agent-step-number { font: 500 42px/1.2 var(--serif); color: var(--agent-gold); }
.agent-steps-list h3 { font-size: 24px; line-height: 1.6; margin: 23px 0 14px; }
.agent-steps-list p { font-size: 14px; color: #455265; }
.agent-contact-section {
  background: linear-gradient(125deg, #0a1d34, #153756 62%, #0b2340);
  color: #fff;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 100px);
  padding: 90px var(--agent-space);
  scroll-margin-top: 88px;
}
.agent-contact-heading { padding-top: 12px; }
.agent-contact-heading .agent-eyebrow { color: var(--agent-gold-light); }
.agent-contact-heading h2 { font-size: clamp(28px, 2.8vw, 42px); line-height: 1.75; margin: 25px 0 26px; }
.agent-contact-heading h2 strong { color: var(--agent-gold-light); }
.agent-contact-heading > p:not(.agent-eyebrow) { font-size: 15px; color: #e5eaf0; }
.agent-contact-address { border-top: 1px solid #9eb2c44d; margin-top: 44px; padding-top: 26px; }
.agent-contact-address span { display: block; font-size: 12px; color: #cbd7e3; margin-bottom: 15px; }
.agent-contact-address a { display: inline-block; font-size: clamp(20px, 2.3vw, 32px); border-bottom: 1px solid #e1c38985; padding-bottom: 7px; overflow-wrap: anywhere; }
.agent-contact-heading .agent-contact-guide { font-size: 12px!important; line-height: 2.1; margin-top: 30px; color: #cbd7e3!important; }
.agent-form-panel { background: #fff; color: var(--agent-navy); padding: clamp(24px, 3vw, 44px); }
.agent-form-title { font: 600 20px/1.7 var(--serif); margin-bottom: 28px; }
.agent-form-panel form { display: grid; gap: 23px; }
.agent-form-panel label { display: block; font-size: 13px; line-height: 1.7; }
.agent-form-panel label > span { color: var(--agent-gold); font-size: 10px; margin-left: 12px; }
.agent-form-panel input:not([type="checkbox"]):not([type="hidden"]),
.agent-form-panel textarea { box-sizing: border-box; display: block; width: 100%; margin-top: 10px; padding: 12px 13px; background: #f7f8fa; color: var(--agent-navy); border: 1px solid #d7dde5; border-radius: 0; font: 400 16px/1.8 var(--sans); }
.agent-form-panel textarea { resize: vertical; min-height: 132px; }
.agent-form-panel input::placeholder, .agent-form-panel textarea::placeholder { color: #6b7482; font-size: 13px; opacity: 1; }
.agent-form-panel .agent-consent { display: flex; align-items: start; gap: 10px; }
.agent-form-panel .agent-consent input { width: 18px; height: 18px; flex: 0 0 18px; margin: 3px 0 0; accent-color: var(--agent-navy); }
.agent-form-panel .agent-consent > span { color: #455265; font-size: 12px; margin: 0; }
.agent-consent a { text-decoration: underline; text-underline-offset: 3px; }
.agent-form-panel .agent-button { width: 100%; }
.agent-form-panel .agent-form-note { font-size: 11px; line-height: 1.9; color: #596373; margin-top: -5px; }
.agent-page .site-footer { border-top: 1px solid #344963; }
@media (min-width: 1601px) {
  .agent-principles, .agent-contact-section { padding-inline: max(var(--agent-space), calc((100vw - 1440px) / 2)); }
}
@media (max-width: 1240px) {
  .agent-main { padding-top: 0; }
  .agent-hero { gap: 32px; padding-top: 50px; padding-bottom: 50px; }
  .agent-hero h1 { font-size: clamp(29px, 3.45vw, 42px); }
  .agent-hero .agent-lead { font-size: 13px; }
  .agent-desktop-br { display: none; }
  .agent-button { font-size: 13px; gap: 24px; padding-inline: 20px; }
  .agent-principles { grid-template-columns: 1fr 1.1fr; gap: 20px 36px; }
  .agent-availability { grid-column: 1 / -1; display: flex; gap: 18px; align-items: center; border-left: 0; border-top: 1px solid #6a7d904f; padding: 18px 0 0; }
  .agent-availability strong { font-size: 14px; }
  .agent-section { padding-block: 76px; }
  .agent-contact-section { scroll-margin-top: 72px; gap: 36px; }
}
@media (max-width: 760px) {
  .agent-hero { grid-template-columns: 1fr; gap: 32px; padding-top: 34px; padding-bottom: 36px; }
  .agent-page-label { font-size: 14px; margin-top: 9px; }
  .agent-eyebrow { font-size: 9px; }
  .agent-hero h1 { font-size: clamp(28px, 7.8vw, 44px); margin: 24px 0 20px; line-height: 1.65; }
  .agent-hero .agent-lead { font-size: 13px; line-height: 2; }
  .agent-hero .agent-button { margin-top: 24px; width: 100%; }
  .agent-hero-visual figcaption { gap: 8px; font-size: 10px; padding: 14px 0; }
  .agent-hero-visual figcaption > span:first-child { font-size: 8px; }
  .agent-principles { grid-template-columns: 1fr; padding-block: 30px; gap: 20px; }
  .agent-principles h2 { font-size: 23px; }
  .agent-principles > p { font-size: 12px; }
  .agent-role { grid-template-columns: 1fr; gap: 32px; }
  .agent-section { padding-block: 56px; }
  .agent-section h2 { font-size: 30px; margin-top: 15px; }
  .agent-role-body .agent-body-lead { font-size: 22px; }
  .agent-role-body > p { font-size: 13px; }
  .agent-services > a { gap: 18px; }
  .agent-services h3 { font-size: 20px; }
  .agent-flow-heading { display: block; }
  .agent-flow-heading > p { margin-top: 22px; }
  .agent-steps-list { grid-template-columns: 1fr; gap: 28px; margin-top: 34px; }
  .agent-steps-list li { display: grid; grid-template-columns: 44px 1fr; gap: 10px 20px; padding-top: 22px; }
  .agent-step-number { font-size: 31px; grid-row: 1 / 3; }
  .agent-steps-list h3 { font-size: 22px; margin: 0; }
  .agent-steps-list p { grid-column: 2; font-size: 13px; }
  .agent-contact-section { grid-template-columns: 1fr; padding-block: 50px; gap: 35px; }
  .agent-contact-heading { padding: 0; }
  .agent-contact-heading h2 { font-size: clamp(26px, 7vw, 36px); }
  .agent-contact-address { margin-top: 30px; }
  .agent-contact-address a { font-size: 24px; }
  .agent-form-title { font-size: 18px; }
  .agent-form-panel { padding: 25px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .agent-main *, .agent-main *::before, .agent-main *::after { transition: none!important; animation: none!important; }
}

/* 募集ページは冒頭だけで完結。フォームは相談ボタンで開く。 */
.partner-footer { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 24px var(--agent-space); border-top: 1px solid var(--agent-line); background: #fff; color: var(--agent-muted); font: 400 11px/1.8 var(--sans); }
.partner-footer a { text-underline-offset: 4px; }
.partner-footer a:hover { text-decoration: underline; }
.partner-dialog {
  box-sizing: border-box;
  width: min(820px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100svh - 32px);
  padding: 0;
  margin: auto;
  border: 1px solid #dce0e5;
  border-radius: 4px;
  background: #fff;
  color: var(--agent-navy);
  box-shadow: 0 24px 100px #02102450;
  overflow: auto;
  overscroll-behavior: contain;
  font: 400 15px/1.8 var(--sans);
}
.partner-dialog::backdrop { background: #05152ac2; }
.partner-dialog [hidden] { display: none!important; }
.partner-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 36px; background: #fff; border-bottom: 1px solid var(--agent-line); position: sticky; top: 0; z-index: 2; }
.partner-dialog-header .agent-eyebrow { margin: 0 0 8px; font-size: 10px; }
.partner-dialog-header h2 { margin: 0; font: 600 26px/1.5 var(--serif); letter-spacing: .025em; }
.partner-dialog-header button { flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 1px solid var(--agent-line); border-radius: 50%; color: var(--agent-navy); background: #fff; font: 300 28px/1 var(--sans); cursor: pointer; }
.partner-dialog-header button:hover { background: #f0f3f6; }
.partner-dialog-content { padding: 28px 36px 36px; }
.partner-intro { margin: 0 0 30px; color: #526074; font-size: 14px; line-height: 1.9; }
#partner-form { display: grid; gap: 28px; }
.partner-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.partner-field { display: block; min-width: 0; padding: 0; margin: 0; border: 0; }
.partner-field > span, .partner-field > legend { display: block; width: auto; padding: 0; margin: 0 0 12px; font-size: 14px; font-weight: 600; line-height: 1.8; }
.partner-field b { display: inline-block; margin-right: 9px; font: 600 12px/1.6 var(--sans); letter-spacing: .03em; color: var(--agent-gold); }
.partner-field small { display: inline-block; margin-left: 8px; font-size: 10px; font-weight: 500; color: #795721; }
.partner-field .partner-optional { color: #637084; }
.partner-field input:not([type=radio]):not([type=checkbox]), .partner-field textarea {
  box-sizing: border-box; display: block; width: 100%; min-width: 0; margin: 0;
  border: 1px solid #b9c3cf; border-radius: 3px; padding: 12px 14px;
  background: #f9fafc; color: var(--agent-navy); font: 400 16px/1.65 var(--sans);
}
.partner-field input::placeholder, .partner-field textarea::placeholder { color: #697587; opacity: 1; font-size: 13px; }
.partner-field textarea { min-height: 132px; resize: vertical; }
.partner-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.partner-options-three { grid-template-columns: 1fr 1fr 1.6fr; }
.partner-options-stack { grid-template-columns: 1fr; }
.partner-options label { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 14px; margin: 0; background: #fff; border: 1px solid #c8d0da; border-radius: 3px; color: var(--agent-navy); font-size: 14px; line-height: 1.6; cursor: pointer; }
.partner-options label:has(input:checked) { background: #f0f4f8; border-color: #496580; box-shadow: inset 0 0 0 1px #496580; }
.partner-options input, .partner-consent input { appearance: auto; width: 18px; height: 18px; flex: 0 0 18px; padding: 0; margin: 0; accent-color: var(--agent-navy); }
.partner-consent { display: flex; align-items: start; gap: 10px; font-size: 13px; line-height: 1.8; color: #455265; }
.partner-consent input { margin-top: 3px; }
.partner-consent a { text-decoration: underline; text-underline-offset: 3px; }
.partner-submit { box-sizing: border-box; width: 100%; justify-content: space-between; cursor: pointer; }
.partner-note { margin: 0; color: #526074; font-size: 12px; line-height: 1.8; }
#partner-form > .partner-note { margin-top: -14px; }
.partner-mail-meta { padding: 0 0 20px; margin: 0 0 24px; border-bottom: 1px solid var(--agent-line); }
.partner-mail-meta > div { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 14px; margin-top: 8px; }
.partner-mail-meta dt { font-size: 12px; color: var(--agent-muted); }
.partner-mail-meta dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.partner-mail-body { margin: 0 0 28px; padding: 24px; color: #20344d; background: #f6f8fb; border-left: 2px solid #b99b64; font: 400 14px/1.9 var(--sans); white-space: pre-wrap; overflow-wrap: anywhere; }
#partner-review > .partner-note { margin-top: 12px; }
.partner-review-actions { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.partner-review-actions button { padding: 12px 0; border: 0; background: none; color: var(--agent-navy); font: 500 13px/1.7 var(--sans); text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }
.partner-dialog :focus-visible, .agent-button:focus-visible { outline: 2px solid #a47b3f; outline-offset: 3px; }
.partner-dialog h2:focus { outline: none; }
@media (max-width: 600px) {
  .partner-dialog { width: calc(100% - 20px); max-height: calc(100svh - 20px); }
  .partner-dialog-header { padding: 18px; gap: 10px; }
  .partner-dialog-header h2 { font-size: clamp(18px,4.6vw,24px); }
  .partner-dialog-header .agent-eyebrow { font-size: 8px; letter-spacing: .14em; }
  .partner-dialog-header button { flex-basis: 40px; width: 40px; height: 40px; }
  .partner-dialog-content { padding: 22px 18px 26px; }
  .partner-intro { font-size: 13px; margin-bottom: 26px; }
  .partner-grid { grid-template-columns: 1fr; }
  .partner-options-three { grid-template-columns: 1fr; }
  .partner-desktop-only { display: none; }
  .partner-field > span, .partner-field > legend { font-size: 13px; }
  .partner-field small { margin-left: 5px; }
  .partner-options label { font-size: 13px; }
  .partner-mail-body { padding: 16px; font-size: 13px; }
  .partner-mail-meta dd { font-size: 13px; }
}

.agent-breadcrumb { max-width:1600px; margin:0 auto; padding:20px var(--agent-space) 0; display:flex; flex-wrap:wrap; gap:12px; font:400 12px/1.6 var(--sans); color:var(--agent-muted); }
.agent-breadcrumb a { color:var(--agent-navy); text-underline-offset:4px; text-decoration:underline; }
.agent-breadcrumb a:focus-visible { outline:2px solid var(--agent-gold); outline-offset:4px; }
