/* Narrow Sea — service pages: Passage coordination, For brokers, Claims and incident reporting (builder B).
   Scoped under .svc so nothing leaks into other page groups. Tokens and components come from ns.css. */

/* ---------- page rhythm (Figma: 72px sections and 32px gaps; 48px sections on mobile; h2 48 → 36) ---------- */
.svc .sec-head { max-width: none; gap: 0; }
.svc .sec-head .h2 { margin-top: 24px; }
.svc .sec-head--plain .h2 { margin-top: 0; }
@media (max-width: 1100px) { .svc .h2 { font-size: 48px; } }
@media (max-width: 600px) {
  .svc .sec { padding-top: 48px; padding-bottom: 48px; }
  .svc .h2 { font-size: 36px; }
}
.svc-copy { font: 400 16px/1.6 var(--sans); color: var(--ink); }
.svc-small { font: 400 13px/1.6 var(--sans); color: var(--ink); }
.svc-fine { font: 400 12px/1.6 var(--sans); color: var(--slate); }
.sec--navy .svc-copy, .sec--navy .svc-fine { color: var(--mist); }

/* ---------- page introduction (Figma "Page introduction": 64px padding, 690px copy, 494×330 photo) ---------- */
.svc-intro .intro__in { padding-top: 64px; padding-bottom: 64px; gap: 24px; }
.svc-intro__copy { display: flex; flex-direction: column; align-items: flex-start; max-width: 690px; gap: 24px; }
.svc-intro__text { display: flex; flex-direction: column; }
.svc-intro__label { font: 400 11px/1.6 var(--sans); color: var(--gold); }
.svc-intro .h1 { font-size: 64px; line-height: 1.05; color: var(--white); margin-top: 17.6px; }
.svc-intro__lead { font: 400 17px/1.6 var(--sans); color: var(--mist); margin-top: 67px; }
.svc-intro__tag { font: 400 10px/1.6 var(--sans); color: var(--mist); margin-top: 27px; }
@media (max-width: 1100px) {
  .svc-intro .h1 { margin-top: 32px; }
  .svc-intro__lead, .svc-intro__tag { margin-top: 32px; }
  .svc-intro__copy { gap: 32px; }
}
@media (max-width: 600px) {
  .svc-intro .h1 { font-size: 44px; margin-top: 17.6px; }
  .svc-intro__lead { font-size: 15px; margin-top: 46px; }
  .svc-intro__tag { margin-top: 24px; }
  .svc-intro__copy { gap: 24px; }
}

/* Passage: copy + maritime photograph side by side; photo full width below from tablet down */
.svc-intro--media .intro__in {
  max-width: var(--maxw); display: grid; grid-template-columns: minmax(0, 690px) minmax(0, 494px);
  column-gap: 48px; row-gap: 32px; align-items: start; justify-content: start;
}
.svc-intro__media { display: block; width: 100%; height: 330px; }
.svc-intro__media img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1100px) { .svc-intro--media .intro__in { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
  .svc-intro--media .intro__in { row-gap: 48px; }
  .svc-intro__media { height: 220px; }
  .svc-intro__media img { object-position: 50% 58%; }
}

/* ---------- content cards: number, 16px, serif title, 32px, text; cards keep their own height ---------- */
.svc-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; list-style: none; margin: 0; padding: 0; }
.svc-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1100px) {
  .svc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc-cards > .card:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 600px) { .svc-cards, .svc-cards--2 { grid-template-columns: minmax(0, 1fr); } }
.svc-cards .card { gap: 0; min-height: 210px; }
.svc-cards .card__num { font-size: 10px; margin-bottom: 16px; }
.svc-cards .card__title { margin: 0 0 32px; }
@media (max-width: 1100px) and (min-width: 601px) {
  .svc-cards .card__num { margin-bottom: 24px; }
  .svc-cards .card__title { margin-bottom: 24px; }
}
@media (max-width: 600px) { .svc-cards .card__title { font-size: 30px; } }

/* ---------- forms (field grid, 24px gaps at every width) ---------- */
.svc-form { display: flex; flex-direction: column; gap: 32px; }
.svc-form[hidden] { display: none !important; }
.svc-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 600px) { .svc-fields { grid-template-columns: minmax(0, 1fr); } }
.svc .field { justify-content: flex-start; }
.svc .field > label { cursor: pointer; }
.svc .field textarea.svc-grow { min-height: 28px; resize: none; field-sizing: content; overflow: hidden; }
.svc-form .ctl .input { min-height: 50px; padding: 13px 14px; line-height: 1.6; }
.svc-form textarea.input { resize: vertical; display: block; field-sizing: content; min-height: 50px; }
@media (max-width: 1100px) { .svc-form textarea.input { min-height: 112px; } }
@media (max-width: 600px)  { .svc-form textarea.input { min-height: 94px; } }
.svc-form .ctl.is-invalid .input { border-color: var(--err); }
.svc-form .ctl .field__error, .svc-check .field__error { margin: 0; }
.svc-form .ctl.is-invalid .field__error, .svc-check.is-invalid .field__error { display: block; }
.svc-check { display: flex; flex-direction: column; gap: 4px; }
.svc-check .check { font-size: 13px; min-height: 44px; align-items: flex-start; padding-top: 0; }
.svc-check .check input { margin-top: 3px; width: 16px; height: 16px; }
.svc-check.is-invalid .check { color: var(--err); }
.svc .upload { gap: 20px; }
.svc .upload [data-upload-list] { display: flex; flex-direction: column; gap: 6px; }
.svc .upload [data-upload-list]:empty { display: none; }
.svc .upload:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }
.svc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }

/* ---------- receipts (notice style) after a submission ---------- */
.svc-result:empty { display: none; }
.svc-result:focus { outline: none; }
.svc-receipt { gap: 12px; }
.svc-receipt .notice__title { font-size: 15px; }
.svc-receipt__meta { display: flex; flex-wrap: wrap; gap: 8px 32px; margin: 0; }
.svc-receipt__meta div { display: flex; flex-direction: column; gap: 2px; }
.svc-receipt__meta dt { font: 600 11px/1.8 var(--sans); color: var(--slate); }
.svc-receipt__meta dd { margin: 0; font: 400 14px/1.6 var(--sans); color: var(--navy); }
.svc-receipt__ref { font: 600 18px/1.4 var(--sans) !important; letter-spacing: .01em; }
.svc-receipt .svc-actions { margin-top: 8px; }
.svc-receipt .btn--text { padding: 0 8px; }

/* ---------- claim status view (?ref=&k=) ---------- */
.svc-claim { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 24px; }
.svc-claim__top { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.svc-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 24px; margin: 0; }
@media (max-width: 1100px) { .svc-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px)  { .svc-facts { grid-template-columns: minmax(0, 1fr); } }
.svc-facts div { display: flex; flex-direction: column; min-width: 0; }
.svc-facts dt { font: 600 11px/1.8 var(--sans); color: var(--slate); }
.svc-facts dd { margin: 0; font: 400 14px/1.6 var(--sans); color: var(--ink); overflow-wrap: anywhere; }
.svc-claim__desc { font: 400 14px/1.6 var(--sans); color: var(--ink); white-space: pre-line; }
.svc-log { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.svc-log li { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 4px 24px; padding: 12px 0; border-bottom: 1px solid var(--line); font: 400 13px/1.6 var(--sans); color: var(--ink); }
.svc-log time { color: var(--slate); font-size: 12px; }
.svc-log b { font-weight: 600; color: var(--navy); }
@media (max-width: 600px) { .svc-log li { grid-template-columns: minmax(0, 1fr); } }
.svc-skel-short { width: 60%; }
.svc-log--check li { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
@media (max-width: 600px) { .svc-log--check li { grid-template-columns: minmax(0, 1fr) auto; } }
.svc #cv-title { font-variant-numeric: lining-nums; }
