/* ==========================================================================
   Passenger Information Request page
   ========================================================================== */
.pir-section{ padding-top:56px; }
.pir-wrap{ max-width:900px; }
.btn-sm{ padding:10px 16px; font-size:12px; }
.btn-danger-ghost{
  background:transparent; color:#9C1126; border:1px solid rgba(156,17,38,0.45);
  font-family:var(--mono); font-size:13px; letter-spacing:0.08em; text-transform:uppercase; padding:14px 22px; border-radius:var(--radius);
}
.btn-danger-ghost:hover{ background:rgba(156,17,38,0.08); }
.btn[disabled]{ opacity:.55; cursor:progress; transform:none; }

/* privacy notice */
.pir-privacy{
  display:flex; gap:16px; align-items:flex-start;
  background:#fff; border:1px solid rgba(16,27,33,0.12); border-left:4px solid var(--red);
  padding:18px 22px; margin-bottom:30px; border-radius:2px;
}
.pir-privacy .ico{ width:28px; height:28px; color:var(--red); margin-top:2px; stroke-width:1.6; }
.pir-privacy p{ font-size:14.5px; line-height:1.65; color:#2F3C41; }

/* tabs */
.pir-tabs{ display:flex; gap:0; border-bottom:2px solid rgba(16,27,33,0.12); margin-bottom:28px; flex-wrap:wrap; }
.pir-tabs button{
  background:none; border:0; border-bottom:3px solid transparent; margin-bottom:-2px;
  padding:14px 22px; font-family:var(--mono); font-size:13px; letter-spacing:0.09em; text-transform:uppercase; color:#5C6669; cursor:pointer;
}
.pir-tabs button:hover{ color:var(--ink-text); }
.pir-tabs button.is-on, .pir-tabs button[aria-selected="true"]{ color:var(--ink-text); border-bottom-color:var(--red); font-weight:600; }
.pir-tabs button:focus-visible{ outline:2px solid var(--red); outline-offset:-2px; }

/* cards */
.pir-card{
  background:#fff; border:1px solid rgba(16,27,33,0.12); padding:30px 32px 14px; margin:0 0 22px; border-radius:2px; min-width:0;
}
fieldset.pir-card{ padding-top:22px; }
.pir-card legend{
  display:flex; align-items:center; gap:12px; padding:0 8px; margin-left:-8px;
  font-family:var(--display); font-size:21px; font-weight:600; letter-spacing:0.02em; text-transform:uppercase; color:var(--ink-text);
}
.pir-card > h2{ font-size:26px; text-transform:uppercase; margin-bottom:6px; }
.pir-n{
  display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%;
  background:var(--ink); color:#fff; font-family:var(--mono); font-size:13px; font-weight:600;
}
.pir-opt{ font-family:var(--mono); font-size:11px; letter-spacing:0.1em; padding:3px 8px; border:1px solid rgba(16,27,33,0.25); color:#5C6669; border-radius:99px; }
.pir-sub{ color:#4A585C; font-size:15px; line-height:1.65; margin:6px 0 20px; max-width:68ch; }
.pir-label{ font-weight:600; font-size:15px; margin:4px 0 12px; }
.pir-hint{ font-weight:400; color:#6E7A7D; }
.pir-card .form-row{ gap:20px; }
.pir-card .form-field{ margin-bottom:20px; }
.pir-card .form-note{ margin:-6px 0 18px; }

/* validation */
.pir-fe{ margin-top:6px; font-size:13px; color:#B3122B; line-height:1.4; }
.pir-error{ color:#B3122B; font-size:14px; margin:0 0 14px; }
.form-field input.is-invalid, .form-field textarea.is-invalid, .pir-addl-cell input.is-invalid{ border-color:#B3122B; background:#FFF8F9; }
.pir-errsummary{
  background:#FBE6E9; border:1px solid #E7B4BC; border-left:4px solid #B3122B; padding:16px 20px; margin-bottom:22px; font-size:14.5px; color:#5B0B18; border-radius:2px;
}
.pir-errsummary ul{ margin:8px 0 0; padding-left:20px; list-style:disc; }
.pir-errsummary a{ color:#8A0E21; text-decoration:underline; text-underline-offset:2px; }
.pir-errsummary:focus{ outline:2px solid #B3122B; outline-offset:2px; }

/* check boxes */
.pir-checks{ display:grid; grid-template-columns:1fr 1fr; gap:6px 24px; }
.pir-check{ display:flex; align-items:center; gap:12px; padding:9px 0; font-size:15.5px; cursor:pointer; line-height:1.4; }
.pir-check input[type="checkbox"]{ width:22px; height:22px; flex:none; accent-color:var(--red); cursor:pointer; margin:0; }
.pir-check-other{ gap:10px; cursor:default; }
.pir-check-other label{ display:flex; align-items:center; gap:12px; cursor:pointer; }
.pir-check-other input[type="text"]{
  flex:1; min-width:0; padding:10px 12px; font:inherit; font-size:15px; border:1px solid rgba(16,27,33,0.18); border-radius:2px; background:#fff; color:var(--ink-text);
}
.pir-check-other input[type="text"]:disabled{ background:#F1F2EF; }
.pir-check-other input[type="text"]:focus{ outline:2px solid var(--red); outline-offset:1px; border-color:var(--red); }
.pir-decl{ align-items:flex-start; background:#F6F7F4; padding:16px 18px; border:1px solid rgba(16,27,33,0.1); margin-bottom:14px; }
.pir-decl input{ margin-top:2px !important; }

/* additional passengers */
.pir-addl{ display:flex; flex-direction:column; gap:14px; margin-bottom:14px; }
.pir-addl-row{
  display:grid; grid-template-columns:minmax(0,2.2fr) minmax(0,1.5fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,.7fr) auto; gap:12px; align-items:start;
  padding:16px 16px 6px; background:#F6F7F4; border:1px solid rgba(16,27,33,0.1); border-radius:2px; position:relative;
}
.pir-addl-cell label{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:#5C6669; margin-bottom:7px; }
.pir-addl-cell input{ width:100%; padding:11px 12px; font:inherit; font-size:15px; border:1px solid rgba(16,27,33,0.18); border-radius:2px; background:#fff; color:var(--ink-text); }
.pir-addl-cell input:focus{ outline:2px solid var(--red); outline-offset:1px; border-color:var(--red); }
.pir-addl-cell{ margin-bottom:10px; min-width:0; }
.pir-rm{ align-self:center; margin-top:16px; background:none; border:1px solid rgba(16,27,33,0.2); color:#5C6669; padding:9px 12px; font-family:var(--mono); font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase; border-radius:2px; }
.pir-rm:hover{ color:#9C1126; border-color:rgba(156,17,38,0.5); background:#fff; }
#addl-add{ margin-bottom:16px; }

/* submit bar */
.pir-submitbar{ margin:8px 0 0; padding:24px 0 8px; }
.pir-actions{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin:6px 0 14px; }
.pir-fine{ font-size:12.5px; color:#6E7A7D; margin-top:8px; max-width:70ch; }
.form-status[data-state="err"]{ color:#B3122B; }

/* editing banner */
.pir-editing{
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  background:#FFF6DD; border:1px solid #E8D08A; border-left:4px solid var(--gold); padding:16px 20px; margin-bottom:22px; font-size:14.5px; line-height:1.55; border-radius:2px;
}

/* matches list */
.pir-matches{ margin-top:26px; border-top:1px solid rgba(16,27,33,0.1); padding-top:20px; }
.pir-match{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; border:1px solid rgba(16,27,33,0.12); margin-top:10px; background:#F6F7F4; }
.pir-match div{ display:flex; flex-direction:column; gap:2px; }
.pir-match span{ font-size:14px; color:#4A585C; }
.pir-match code{ font-family:var(--mono); font-size:12.5px; color:#5C6669; }

/* success */
.pir-done{ text-align:center; padding:44px 32px 30px; }
.pir-tick{ width:72px; height:72px; margin:0 auto 18px; border-radius:50%; background:#E5F3EA; color:#1F7A4A; display:flex; align-items:center; justify-content:center; }
.pir-tick svg{ width:38px; height:38px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.pir-done h2{ font-size:32px; text-transform:uppercase; }
.pir-done h2:focus{ outline:none; }
.pir-done .pir-sub{ margin:8px auto 22px; }
.pir-ref{ display:inline-flex; flex-direction:column; align-items:center; gap:4px; border:1px dashed rgba(16,27,33,0.3); padding:12px 28px; margin-bottom:24px; background:#F6F7F4; }
.pir-ref span{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:#5C6669; }
.pir-ref strong{ font-family:var(--mono); font-size:26px; letter-spacing:0.08em; }
.pir-summary{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px 24px; text-align:left; margin:0 0 22px; padding:20px 22px; border:1px solid rgba(16,27,33,0.1); }
.pir-summary dt{ font-family:var(--mono); font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:#5C6669; }
.pir-summary dd{ margin:3px 0 0; font-size:15.5px; font-weight:600; overflow-wrap:anywhere; }
.pir-retain{ font-size:14px; color:#2F3C41; background:#F6F7F4; padding:14px 18px; margin:0 auto 22px; max-width:62ch; border-radius:2px; }
.pir-done .pir-actions{ justify-content:center; }
.pir-done .form-note{ max-width:62ch; margin:6px auto 0; }

/* navigation: the longer tab name needs a little more room */
@media (max-width:1180px){
  .main-nav > ul{ gap:26px; }
  .main-nav a{ font-size:12px; letter-spacing:0.07em; }
}
@media (max-width:980px) and (min-width:681px){
  .main-nav > ul{ gap:16px; flex-wrap:wrap; }
  .main-nav a{ font-size:11.5px; letter-spacing:0.05em; }
}

@media (max-width:820px){
  .pir-addl-row{ grid-template-columns:repeat(6, minmax(0,1fr)); }
  .pir-c-name{ grid-column:1 / -1; }
  .pir-c-pp{ grid-column:1 / 4; }
  .pir-c-num{ grid-column:span 1; }
  .pir-rm{ grid-column:1 / -1; justify-self:start; margin:0 0 10px; }
}
@media (max-width:640px){
  .pir-section{ padding-top:32px; }
  .pir-card{ padding:22px 18px 8px; }
  .pir-card legend{ font-size:18px; }
  .pir-checks{ grid-template-columns:1fr; }
  .pir-tabs{ flex-wrap:nowrap; }
  .pir-tabs button{ padding:12px 4px; font-size:10.5px; letter-spacing:0.02em; flex:1 1 0; min-width:0; white-space:normal; line-height:1.25; }
  .pir-privacy{ padding:16px; }
  .pir-addl-row{ grid-template-columns:1fr 1fr; }
  .pir-c-name, .pir-c-pp{ grid-column:1 / -1; }
  .pir-rm{ grid-column:auto; justify-self:start; margin:24px 0 10px; }
  .pir-match{ flex-direction:column; align-items:flex-start; }
  .pir-actions .btn{ width:100%; justify-content:center; }
  .pir-done{ padding:30px 18px 22px; }
}

/* ------------------------------------------------------- arrival / departure card reminders */
.pir-reminder{
  display:flex; gap:16px; align-items:flex-start;
  background:#FFF8E6; border:1px solid #EBD79A; border-left:4px solid var(--gold);
  padding:18px 22px; margin:-8px 0 30px; border-radius:2px;
}
.pir-reminder .ico{ width:28px; height:28px; color:#8A6410; margin-top:2px; stroke-width:1.6; }
.pir-reminder p{ font-size:14.5px; line-height:1.65; color:#3F3414; }
.pir-cards{
  margin:4px 0 18px; padding:16px 18px; background:#FFF8E6; border:1px solid #EBD79A; border-left:4px solid var(--gold); border-radius:2px; text-align:left;
}
.pir-cards-h{ font-weight:700; font-size:14.5px; color:#3F3414; margin-bottom:8px; }
.pir-cards ul{ margin:0; padding-left:20px; list-style:disc; display:grid; gap:6px; }
.pir-cards li{ font-size:14.5px; line-height:1.55; color:#3F3414; }
.pir-cards a{ color:#7A1626; font-weight:600; text-decoration:underline; text-underline-offset:2px; overflow-wrap:anywhere; }
.pir-done .pir-cards{ max-width:62ch; margin-left:auto; margin-right:auto; }
.pir-sites{ background:#fff; border:1px solid rgba(16,27,33,0.12); padding:4px 22px; margin:0 0 22px; border-radius:2px; }
.pir-sites summary{ cursor:pointer; padding:14px 0; font-weight:600; font-size:15px; }
.pir-sites summary:focus-visible{ outline:2px solid var(--red); outline-offset:2px; }
.pir-sites ul{ margin:0 0 10px; padding-left:20px; list-style:disc; display:grid; gap:5px 28px; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.pir-sites li{ font-size:14.5px; }
.pir-sites a{ color:#7A1626; text-decoration:underline; text-underline-offset:2px; overflow-wrap:anywhere; }

/* ------------------------------------------------------------------ upload a completed form */
.pir-drop{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center;
  min-height:120px; padding:22px 18px; border:2px dashed rgba(16,27,33,0.28); border-radius:3px; background:#F6F7F4; cursor:pointer;
  transition:border-color .15s, background-color .15s;
}
.pir-drop:hover, .pir-drop.is-over{ border-color:var(--red); background:#FBF3F4; }
.pir-drop.is-invalid{ border-color:#B3122B; background:#FFF8F9; }
.pir-drop:focus-within{ outline:2px solid var(--red); outline-offset:2px; }
.pir-drop input[type="file"]{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; padding:0; border:0; }
.pir-drop-t{ font-size:16px; }
.pir-drop-t strong{ color:var(--red); }
.pir-drop-s{ font-size:13px; color:#5C6669; }
.pir-files{ list-style:none; margin:10px 0 0; padding:0; display:grid; gap:8px; }
.pir-files:empty{ display:none; }
.pir-files li{ display:flex; align-items:center; gap:12px; padding:10px 14px; background:#fff; border:1px solid rgba(16,27,33,0.14); border-radius:2px; }
.pir-fn{ flex:1; min-width:0; font-weight:600; font-size:14.5px; overflow-wrap:anywhere; }
.pir-fs{ font-family:var(--mono); font-size:12px; color:#5C6669; white-space:nowrap; }
.pir-files .pir-rm{ margin:0; padding:7px 10px; }
.pir-files-done li{ background:#F6F7F4; }
.pir-updone{ text-align:center; padding:6px 0 16px; }
.pir-updone h3{ font-size:26px; text-transform:uppercase; }
.pir-updone h3:focus{ outline:none; }
.pir-updone .pir-sub{ margin:8px auto 18px; }
.pir-updone .pir-files{ max-width:520px; margin:0 auto 18px; text-align:left; }
.pir-updone .pir-retain{ margin:0 auto 18px; max-width:62ch; }
.pir-updone .pir-actions{ justify-content:center; }
.pir-opt{ margin-left:6px; vertical-align:1px; }
@media (max-width:640px){
  .pir-reminder{ padding:16px; margin-top:-14px; }
  .pir-sites{ padding:2px 16px; }
  .pir-files li{ flex-wrap:wrap; }
}
