.consultation-button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 22px; border:0; border-radius:999px; background:#ffdf35; color:#153f3b; font:700 16px/1.5 "Noto Sans JP",sans-serif; white-space:nowrap; cursor:pointer; }
.consultation-button:hover { background:#ffe76b; }
.consultation-button:focus-visible, .consultation-dialog button:focus-visible { outline:3px solid #098078; outline-offset:3px; }
.consultation-mobile-trigger { display:none; }
.consultation-dialog { box-sizing:border-box; width:min(960px,calc(100% - 24px)); max-width:none; max-height:calc(100dvh - 32px); margin:auto; padding:0; border:0; border-radius:20px; background:#fff; color:#203d39; overscroll-behavior:contain; box-shadow:0 20px 80px #0005; }
.consultation-dialog::backdrop { background:#123b39b8; }
.consultation-dialog[open] { animation:consultation-enter 280ms cubic-bezier(.22,1,.36,1) both; }
.consultation-dialog[open]::backdrop { animation:consultation-backdrop-enter 280ms ease-out both; }
.consultation-dialog[open].is-closing { animation:consultation-exit 180ms ease-in both; }
.consultation-dialog[open].is-closing::backdrop { animation:consultation-backdrop-exit 180ms ease-in both; }
@keyframes consultation-enter { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@keyframes consultation-exit { from { opacity:1; transform:translateY(0); } to { opacity:0; transform:translateY(8px); } }
@keyframes consultation-backdrop-enter { from { opacity:0; } to { opacity:1; } }
@keyframes consultation-backdrop-exit { from { opacity:1; } to { opacity:0; } }
@media(prefers-reduced-motion:reduce) {
  .consultation-dialog[open], .consultation-dialog[open]::backdrop { animation:none; }
}

.consultation-dialog-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; position:sticky; top:0; z-index:2; padding:16px 20px 8px; background:#fff; }
.consultation-dialog-bar h2 { min-width:0; text-align:left; margin:0; padding:0 0 0 12px; border-left:4px solid #2db7af; color:#222; font:700 20px/1.5 "Noto Sans JP",sans-serif; }
.consultation-dialog-bar h2 > span { display:block; }
.consultation-dialog-bar .consultation-title-phrase { white-space:nowrap; }
.consultation-dialog-bar h2 > strong { display:block; margin-top:4px; color:#249e97; font-size:24px; font-weight:700; }
.consultation-dialog-bar h2:focus { outline:none; }
.consultation-dialog-bar button { display:grid; place-items:center; flex:0 0 44px; width:44px; min-height:44px; padding:8px; border:0; background:transparent; color:#203d39; font:inherit; cursor:pointer; }
.consultation-dialog-bar button span { font-size:28px; line-height:1; }
/* The embedded form and modal share the original job-detail form UI. */
.consultation-content { box-sizing:border-box; width:100%; max-width:none; margin:0; padding:0; text-align:left; color:#222; font:400 16px/1.5 "Noto Sans JP",sans-serif; }
.consultation-form-title { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.consultation-content .wpcf7 { box-sizing:border-box; width:100%; max-width:none; margin:0; padding:20px; border-radius:12px; background:#fff; }
.consultation-content .contact-form .inner { width:100%; max-width:none; margin:0; padding:0; }
.consultation-content .contact-form table { border-collapse:collapse; margin:0; }
.consultation-content .contact-form td { box-sizing:border-box; padding:5px; border:0; background:transparent; text-align:left; }
.consultation-content .contact-form tr { margin-bottom:30px; border:0; }
.consultation-content .contact-form .wpcf7-form-control-wrap { display:block; width:100%; }
.consultation-content .contact-form input, .consultation-content .contact-form textarea { box-sizing:border-box; background:#fff; font:400 16px/1.5 "Noto Sans JP",sans-serif; }
.consultation-content .contact-form input[type="submit"] { box-shadow:0 4px 4px #0004; font-weight:700; font-size:24px; border-radius:4px; cursor:pointer; }
.consultation-content .contact-form input[type="submit"]:disabled { opacity:.55; cursor:wait; }
.consultation-content .contact-form input:focus-visible, .consultation-content .contact-form textarea:focus-visible, .consultation-content .contact-form select:focus-visible { outline:2px solid #16827d; outline-offset:2px; }
.consultation-content .wpcf7-form:not(.init):not(.submitting) .wpcf7-response-output { display:block; margin:16px 0; font-size:14px; }
    .consultation-content .contact-form table {
      max-width: 100%;
      width: 100%;
    }

    .consultation-content .contact-form tbody {
      display: flex;
      flex-direction: column;
      row-gap: 12px;
    }

    .consultation-content .contact-form tr {
      display: flex;
      flex-direction: column;
      row-gap: 8px;
    }

    .consultation-content .contact-form td {
      font-size: 16px;
      font-family: Noto Sans JP, sans-serif;
      font-weight: 500;
      line-height: 1;
      display: flex;
      column-gap: 4px;
      width: 100%;
    }

    .consultation-content .contact-form td.td {
      display: block;
    }

    .consultation-content .contact-form .required,
    .consultation-content .contact-form .optional {
      font-size: 10px;
      padding: 4px;
      color: #fff;
      border-radius: 4px;
    }

    .consultation-content .contact-form .required {
      background: #db7161;
    }

    .consultation-content .contact-form .optional {
      background: #f3b65a;
    }

    .consultation-content .contact-form input,
    .consultation-content .contact-form textarea {
      border: 1px solid #ccc;
      border-radius: 4px;
      width: 100%;
      padding: 4px 8px;
    }

    .consultation-content .contact-form input {
      height: 36px;
    }

    .consultation-content .contact-form textarea {
      height: 80px;
    }

    .consultation-content .contact-form .privacy-text {
      margin-top: 8px;
      font-size: 12px;
    }

    .consultation-content .contact-form .privacy-text a {
      text-decoration: underline;
      color: #6298cd;
    }

    .consultation-content .contact-form input[type="submit"],
    .consultation-content .contact-form input.wpcf7-submit {
      display: flex;
      justify-content: center;
      align-items: center;
      min-height: 42px;
      height: auto;
      width: 320px;
      padding: 7px 16px;

      color: #222;
      background: #ffd84d;
      border: none;

      display: flex;
      margin: 16px auto 0 auto;
      text-align: center;
      transition: 0.3s;
    }

    .consultation-content .contact-form input[type="submit"]:hover,
    .consultation-content .contact-form input.wpcf7-submit:hover {
      opacity: 0.8;
    }

    .consultation-content .contact-form select {
      border: 1px solid #ccc;
      border-radius: 4px;
      width: 100%;
      padding: 4px 8px;
      height: 36px;
      font-size: 16px;
      font-family: Noto Sans JP, sans-serif;
      background-color: #fff;
      appearance: none;
      -webkit-appearance: none;
      -moz-appearance: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
      background-repeat: no-repeat;
      background-position: right 8px center;
      background-size: 16px;
      padding-right: 32px;
    }

    .consultation-content .contact-form select::-ms-expand {
      display: none;
    }

    .consultation-content .contact-form input,
    .consultation-content .contact-form textarea,
    .consultation-content .contact-form select {
      text-align: start;
    }


.consultation-dialog .consultation-flow { margin:0 20px 20px; }
@media(max-width:1199px) {
  .consultation-content .contact-form tr { margin-bottom:20px !important; }
  .consultation-content .contact-form input[type="submit"] { font-size:16px; }
}
@media(max-width:768px) {
  .consultation-content .contact-form input[type="submit"] { width:100%; }
}
/* Plain form guidance: use the site's teal headings and simple rules. */
.consultation-flow { box-sizing:border-box; margin:32px auto; padding:24px 0 0; max-width:760px; border-top:1px solid #ddd; background:transparent; text-align:left; color:#222; font:400 14px/1.8 "Noto Sans JP",sans-serif; }
.consultation-flow h3 { margin:0 0 12px; padding-left:12px; border-left:4px solid #2db7af; font-size:18px; font-weight:700; line-height:1.5; }
.consultation-flow ol { margin:0; padding:0; list-style:none; counter-reset:consultation-step; }
.consultation-flow li { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:baseline; column-gap:12px; margin:0; padding:14px 0; border-bottom:1px solid #e8e8e8; counter-increment:consultation-step; }
.consultation-flow li::before { content:counter(consultation-step, decimal-leading-zero); color:#249e97; font-size:16px; font-weight:700; font-variant-numeric:tabular-nums; }
.consultation-flow p { margin:16px 0 0; color:#666; font-size:12px; line-height:1.9; }
.consultation-flow p span { display:block; }
.consultation-card { display:flex; align-items:center; justify-content:space-between; gap:24px; box-sizing:border-box; height:100%; padding:28px 24px; border:0; border-radius:12px; background:#fff; color:#222; box-shadow:0 8px 24px #0000000c; text-align:left; }
.consultation-card-copy { min-width:0; }
.consultation-card h2 { margin:0; padding:0 0 0 14px; border-left:4px solid #2db7af; color:#222; font:700 20px/1.65 "Noto Sans JP",sans-serif; }
.consultation-card p { margin:14px 0 0 18px; color:#666; font:400 13px/1.8 "Noto Sans JP",sans-serif; }
.consultation-card .consultation-button { flex:0 0 auto; gap:14px; min-height:48px; padding:14px 20px; background:#ffdf35; color:#153f3b; font-size:15px; }
.consultation-card .consultation-button::after { content:""; flex:0 0 7px; width:7px; height:7px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); }
.consultation-card .consultation-button:hover { background:#ffe76b; }
@media(max-width:1199px) {
  .consultation-card { flex-direction:column; align-items:flex-start; }
}
@media(max-width:600px) {
  .consultation-card { padding:24px 20px; gap:20px; }
  .consultation-card h2 { padding-left:12px; font-size:18px; }
  .consultation-card p { margin-left:16px; font-size:12px; }
  .consultation-card .consultation-button { align-self:center; width:100%; max-width:320px; }
}
/* Override the legacy transparent desktop header CTA, including hover. */
.site-header .header-registration.consultation-button { background:#ffdf35; color:#153f3b; border-color:transparent; font-weight:700; }
.site-header .header-registration.consultation-button:hover { background:#ffe76b; color:#153f3b; }
.hero .hero-actions { grid-template-columns:max-content max-content; width:fit-content; max-width:100%; gap:6px 12px; }
.hero .hero-actions .button, .hero .hero-actions .consultation-button { width:fit-content; min-height:52px; padding:12px 22px; font-size:16px; white-space:nowrap; }
.hero .hero-actions .consultation-button { gap:8px; }
.hero .hero-actions .consultation-button .icon-right { flex:0 0 17px; width:17px; height:17px; }
.hero .hero-actions .hero-line-link { grid-column:1 / -1; }
@media(max-width:600px) {
  .hero .hero-actions { gap:6px 8px; }
  .hero .hero-actions .button, .hero .hero-actions .consultation-button { min-height:48px; padding:12px 10px; font-size:13px; letter-spacing:0; }
  .hero .hero-actions .button, .hero .hero-actions .consultation-button { gap:6px; }
  .hero .hero-actions .button .icon-search { display:block; flex:0 0 16px; width:16px; height:16px; }
  .hero .hero-actions .button .icon-right, .hero .hero-actions .consultation-button .icon-right { display:block; flex:0 0 12px; width:12px; height:12px; }
}
.hero-actions .consultation-secondary { background:#fff; color:#175e55; border:1px solid #175e55; box-shadow:none; }
@media(max-width:1150px) {
  .site-header .consultation-mobile-trigger { display:inline-flex; margin-left:auto; min-height:40px; padding:8px 12px; font-size:12px; letter-spacing:.5px; }
  .site-header .header-inner, #header:has(.consultation-mobile-trigger) .header-container { gap:8px; }
  #header .consultation-mobile-trigger { display:inline-flex; position:relative; margin-left:auto; margin-right:0; min-height:40px; padding:8px 12px; font-size:12px; letter-spacing:.5px; }
  #header:has(.consultation-mobile-trigger) .menu-button { flex:0 0 auto; }
}
@media(max-width:480px) {
  .consultation-dialog { max-height:calc(100dvh - 16px); width:calc(100% - 16px); border-radius:14px; }
  .consultation-flow { padding:20px 0 0; }
  .site-header .header-inner, #header:has(.consultation-mobile-trigger) .header-container { padding-inline:12px 4px; }
  .site-header .brand-logo img { width:96px; height:auto; }
  .site-header .menu-toggle, #header:has(.consultation-mobile-trigger) .menu-button { width:40px; }
  #header:has(.consultation-mobile-trigger) .logo-image { max-width:96px; height:auto; }
}
@media(min-width:1151px) {
  #header:has(.consultation-mobile-trigger) .nav-items .consultation-button { box-sizing:border-box; height:48px; padding:14px 22px; border:1px solid transparent; font-size:16px; line-height:1.44; letter-spacing:.8px; }
}

@media(max-width:360px) {
  .hero .hero-actions { column-gap:6px; }
  .hero .hero-actions .button, .hero .hero-actions .consultation-button { gap:4px; }
  .hero .hero-actions .button, .hero .hero-actions .consultation-button { padding-inline:5px; font-size:12px; }
}

.consultation-modal-lead { margin:8px 20px 4px; color:#444; text-align:left; font:400 14px/1.8 "Noto Sans JP",sans-serif; }
@media(max-width:480px) {
  .consultation-dialog-bar { align-items:flex-start; }
  .consultation-dialog-bar h2 { font-size:16px; }
  .consultation-dialog-bar h2 > strong { font-size:22px; }
}
