/* Targeted refinements: desktop hero readability and specialist-page FAQ interaction. */

@media (min-width: 1121px) {
  .hero-layout {
    grid-template-columns: minmax(0, 1.62fr) minmax(360px, .88fr);
    gap: 42px;
  }
  .hero-copy { min-width: 0; }
  .hero-visual { justify-self: end; width: 100%; }
}

.seo-faq { interpolate-size: allow-keywords; }
.seo-faq details::details-content { opacity: 0; height: 0; overflow: hidden; transition: height .26s ease, opacity .2s ease, content-visibility .26s allow-discrete; }
.seo-faq details[open]::details-content { opacity: 1; height: auto; }
.seo-faq summary { user-select: none; }
.seo-faq summary:focus-visible { outline: 2px solid var(--blue-2); outline-offset: 4px; }

.attachment-dropzone { border: 1px solid var(--line); background: #fff; min-width: 0; padding: 18px 20px; transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease; }
.attachment-dropzone.is-dragover { border-color: var(--blue-2); background: var(--pale-blue); box-shadow: inset 0 0 0 1px var(--blue-2); }
.attachment-dropzone input[type="file"] { width: 100%; min-width: 0; max-width: 100%; }
.attachment-drop-message { color: #657681; margin: 10px 0 0; font-size: 14px; line-height: 1.6; }
.attachment-file-list { border-top: 1px solid var(--line-dark); margin-top: 15px; }
.attachment-file-list[hidden] { display: none; }
.attachment-file-item { border-bottom: 1px solid var(--line); grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 14px; min-width: 0; padding: 12px 2px; display: grid; }
.attachment-file-name { min-width: 0; color: #344b58; overflow-wrap: anywhere; word-break: break-word; font-size: 14px; line-height: 1.55; }
.attachment-file-size { color: #657681; white-space: nowrap; font-size: 13px; }
.attachment-file-remove { border: 0; background: transparent; color: var(--blue); cursor: pointer; white-space: nowrap; padding: 5px 0; font-size: 13px; font-weight: 750; }
.attachment-file-remove:focus-visible { outline: 2px solid var(--blue-2); outline-offset: 3px; }
.attachment-error { color: #a43636; margin: 11px 0 0; font-size: 14px; font-weight: 650; line-height: 1.6; }
.deadline-choice-field { width: min(100%, 460px); min-width: 0; max-width: 100%; inline-size: min(100%, 460px); min-inline-size: 0; max-inline-size: 100%; }
.deadline-choice-field > span:first-child { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.deadline-undecided { align-items: center; gap: 9px; width: fit-content; max-width: 100%; margin-top: 12px; color: #4f626e; cursor: pointer; font-size: 14px; font-weight: 650; display: inline-flex; }
.deadline-undecided input { flex: none; width: 18px; height: 18px; accent-color: var(--blue); }
.deadline-choice-field.is-undecided .date-input-wrap { opacity: .48; }
.deadline-choice-field.is-undecided input[type="date"] { cursor: not-allowed; }

.delivery-summary { border: 1px solid var(--line-dark); background: #fff; grid-template-columns: minmax(280px, .9fr) 1.1fr; align-items: center; gap: 35px; margin-top: 24px; padding: 27px 31px; display: grid; }
.delivery-summary > div { flex-direction: column; gap: 7px; display: flex; }
.delivery-summary span { color: #415762; font-size: 16px; font-weight: 750; }
.delivery-summary strong { color: var(--blue); letter-spacing: -.02em; font-size: 24px; line-height: 1.45; }
.delivery-summary p { color: #586a75; margin: 0; font-size: 16px; line-height: 1.72; }

/* Workflow handoff and restrained heading emphasis. */
.flow-review-step { position: relative; }
.flow-role-label {
  color: var(--blue-2);
  letter-spacing: .06em;
  margin: 0;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.4;
  display: inline-block;
  position: absolute;
  top: 72px;
  left: 25px;
}
.flow-review-step .flow-role-label + h3 { margin-top: 49px; }

.section-heading h2,
.profile-title h2,
.faq-title h2,
.philosophy-copy h2,
.final-cta h2,
.privacy-hero h1 {
  font-weight: 500;
}

.service-card h3,
.scope-comparison-head h3,
.case-panel-head h3,
.scope-column-head h3,
.work-info h3,
.flow-grid h3,
.request-conditions-grid h3,
.form-section-title h3,
.privacy-section h2 {
  font-weight: 500;
}

/* Section 07: KouzouDesk profile */
.about-section-layout { grid-template-columns: 1fr; align-items: start; gap: 44px; display: grid; }
.about-preview-heading { margin: 0; }
.about-preview-heading.heading-split { grid-template-columns: 1fr; gap: 24px; }
.about-preview-heading h2 { font-weight: 500; }
.about-preview-heading > p { max-width: 720px; }
.about-profile { border-top: 2px solid var(--blue); border-bottom: 1px solid var(--line-dark); background: #fff; min-width: 0; }
.about-profile-intro { grid-template-columns: minmax(155px, .42fr) minmax(0, 1.58fr); gap: 34px; padding: 31px 32px 29px; display: grid; }
.about-profile-kicker { color: var(--blue-2); letter-spacing: .08em; margin: 0 0 9px; font-size: 11px; font-weight: 750; }
.about-profile-intro h3 { color: #1a2c38; letter-spacing: -.025em; margin: 0; font-size: 25px; font-weight: 500; line-height: 1.5; }
.about-profile-intro > p { color: #536671; margin: 0; font-size: 16px; line-height: 1.82; }
.about-info-grid { border-top: 1px solid var(--line); grid-template-columns: 1fr; display: grid; }
.about-info-item { border-bottom: 1px solid var(--line); grid-template-columns: 150px minmax(0, 1fr); gap: 20px; min-height: 78px; padding: 18px 30px; display: grid; align-items: center; }
.about-info-item:last-child { border-bottom: 0; }
.about-info-item dt { color: #657681; font-size: 14px; font-weight: 750; line-height: 1.65; }
.about-info-item dd { color: #344b59; margin: 0; font-size: 16px; line-height: 1.7; }
.about-info-item dd strong { color: var(--blue); font-size: 18px; }
.about-info-item dd small { color: #657681; margin-top: 3px; font-size: 13px; line-height: 1.6; display: block; }
.about-info-item a { color: var(--blue); text-underline-offset: 3px; text-decoration: underline; }
.about-proof { border-top: 1px solid var(--line-dark); background: var(--surface); grid-template-columns: repeat(2, minmax(0, 1fr)); display: grid; }
.about-proof-item { padding: 24px 30px 26px; }
.about-proof-item + .about-proof-item { border-left: 1px solid var(--line-dark); }
.about-proof-item span { color: #657681; font-size: 13px; font-weight: 750; display: block; }
.about-proof-item strong { color: var(--blue); margin-top: 5px; font-size: 20px; line-height: 1.5; display: block; }
.about-proof-item p { color: #5b6d78; margin: 5px 0 0; font-size: 14px; line-height: 1.65; }

@media (max-width: 820px) {
  .about-profile-intro { grid-template-columns: 1fr; gap: 14px; }
}

@media (max-width: 640px) {
  .delivery-summary { grid-template-columns: 1fr; gap: 13px; padding: 22px 20px; }
  .delivery-summary strong { font-size: 21px; }
  .delivery-summary p { font-size: 15px; }

  .flow-role-label { top: 62px; left: 22px; }
  .flow-review-step .flow-role-label + h3 { margin-top: 35px; }

  .attachment-dropzone { padding: 16px; }
  .attachment-file-item { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding: 13px 0; }
  .attachment-file-name { grid-column: 1 / -1; }
  .attachment-file-size { justify-self: start; }
  .attachment-file-remove { justify-self: end; }

  .form-section > :last-child,
  .form-wide,
  .form-wide > *,
  .deadline-field,
  .deadline-choice-field {
    box-sizing: border-box;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
  }

  .deadline-field > span:first-child,
  .deadline-choice-field > span:first-child {
    box-sizing: border-box;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-bottom: 11px;
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: normal;
    line-height: 1.5;
  }

  .deadline-field > span:first-child b,
  .deadline-choice-field > span:first-child b {
    display: inline-block;
    margin-left: 7px;
    vertical-align: middle;
  }

  .deadline-field > .date-input-wrap,
  .deadline-choice-field > .date-input-wrap {
    box-sizing: border-box;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    margin: 0;
  }

  .deadline-field > .date-input-wrap > input[type="date"],
  .deadline-choice-field > .date-input-wrap > input[type="date"] {
    box-sizing: border-box;
    display: block;
    grid-column: 1;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    height: 60px !important;
    min-height: 60px !important;
    margin: 0 !important;
    padding: 0 16px !important;
    line-height: 1.2 !important;
    text-align: left;
  }

  @supports (-webkit-touch-callout: none) {
    .deadline-field > .date-input-wrap > input[type="date"],
    .deadline-choice-field > .date-input-wrap > input[type="date"] {
      width: -webkit-fill-available !important;
      inline-size: -webkit-fill-available !important;
    }
  }

  .deadline-field input[type="date"]::-webkit-date-and-time-value,
  .deadline-field input[type="date"]::-webkit-datetime-edit,
  .deadline-field input[type="date"]::-webkit-datetime-edit-fields-wrapper,
  .deadline-choice-field input[type="date"]::-webkit-date-and-time-value,
  .deadline-choice-field input[type="date"]::-webkit-datetime-edit,
  .deadline-choice-field input[type="date"]::-webkit-datetime-edit-fields-wrapper {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    height: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
    line-height: 1.2;
  }

  .deadline-field > small,
  .deadline-choice-field > small {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .about-section-layout { gap: 34px; }
  .about-preview-heading.heading-split { gap: 18px; }
  .about-profile-intro { padding: 27px 22px 24px; }
  .about-profile-intro h3 { font-size: 22px; }
  .about-profile-intro > p { font-size: 16px; }
  .about-info-item { grid-template-columns: 1fr; gap: 5px; min-height: 0; padding: 18px 22px; align-items: center; }
  .about-info-item dd { font-size: 16px; }
  .about-proof { grid-template-columns: 1fr; }
  .about-proof-item { padding: 21px 22px 22px; }
  .about-proof-item + .about-proof-item { border-top: 1px solid var(--line-dark); border-left: 0; }
  .about-proof-item strong { font-size: 18px; }
}

/* Production deploy refresh for the complete contact uploader update. */