/* Ammo shipping by state.
   Everything here is built from the theme's own tokens, so the page inherits the site rather than
   sitting on top of it. Small screens first: most people asking whether we ship to them are on a phone. */

.ship__intro{ padding-bottom:40px; }
.ship__lede{ font-size:18px; line-height:1.6; color:var(--text); max-width:62ch; margin:14px 0 0; }
/* line-height:1 so the larger figure does not stretch the line box it sits in. */
.ship__lede strong{ color:var(--orange); font-family:var(--cond); font-size:1.15em; letter-spacing:.02em; line-height:1; }
.ship__sub{ color:var(--muted); max-width:70ch; margin:0 0 26px; line-height:1.6; }

/* ---- the picker: the reason this is a tool and not an article ------------------------- */
.ship__picker{
  margin-top:28px; padding:20px; border:1px solid var(--hair-2); border-radius:var(--r-lg);
  background:var(--surface-2);
}
.ship__picker-label{
  display:block; font-family:var(--cond); text-transform:uppercase; letter-spacing:.08em;
  font-weight:600; color:var(--muted); font-size:14px; margin-bottom:10px;
}
.ship__select{
  width:100%; padding:14px 16px; font-family:var(--body); font-size:16px;
  color:var(--text); background:var(--ink); border:1px solid var(--hair-2); border-radius:var(--r);
  appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--orange) 50%),
    linear-gradient(135deg,var(--orange) 50%,transparent 50%);
  background-position:calc(100% - 22px) 22px, calc(100% - 16px) 22px;
  background-size:6px 6px,6px 6px; background-repeat:no-repeat;
}
.ship__select:focus-visible{ outline:2px solid var(--orange); outline-offset:2px; }

.ship__answer{ margin-top:18px; padding-top:18px; border-top:1px solid var(--hair); }
.ship__answer[hidden]{ display:none; }
.ship__verdict{ font-family:var(--disp); font-size:22px; line-height:1.25; margin:0 0 10px; }
.ship__verdict--home{ color:var(--success); }
.ship__verdict--dealer{ color:var(--orange); }
.ship__verdict--no{ color:var(--danger); }

/* ---- cards ---------------------------------------------------------------------------- */
.ship__grid{ display:grid; gap:18px; grid-template-columns:1fr; }
.ship__card{
  padding:22px; border:1px solid var(--hair); border-radius:var(--r-lg); background:var(--surface-2);
}
.ship__card-title{ font-family:var(--disp); font-size:22px; margin:0 0 10px; color:var(--white); }
.ship__policy{ margin:0 0 14px; color:var(--text); line-height:1.6; }
.ship__needs-label{
  font-family:var(--cond); text-transform:uppercase; letter-spacing:.08em; font-weight:600;
  font-size:13px; color:var(--orange); margin:0 0 6px;
}
.ship__needs{ margin:0 0 14px; padding-left:18px; color:var(--text); line-height:1.6; }
.ship__needs li{ margin-bottom:4px; }
.ship__law, .ship__note{ color:var(--muted); font-size:15px; line-height:1.6; margin:0 0 10px; }
.ship__excluded{ color:var(--danger); font-size:15px; margin:0; }
.ship__pending{
  margin:12px 0 0; padding:12px 14px; border-left:3px solid var(--orange);
  background:var(--orange-050); color:var(--text); font-size:15px; line-height:1.6; border-radius:0 var(--r) var(--r) 0;
}
/* Saying "the law forbids this" when it is really the courier is worse than saying nothing. */
.ship__flag{
  display:inline-block; margin-left:6px; padding:2px 8px; border:1px solid var(--hair-2);
  border-radius:99px; font-family:var(--cond); text-transform:uppercase; letter-spacing:.06em;
  font-size:12px; color:var(--muted-2); white-space:nowrap;
}

/* ---- magazine limits ------------------------------------------------------------------ */
.ship__mags{ list-style:none; margin:0; padding:0; display:grid; gap:1px; background:var(--hair); border:1px solid var(--hair); border-radius:var(--r-lg); overflow:hidden; }
.ship__mag{ display:flex; justify-content:space-between; gap:16px; padding:13px 16px; background:var(--surface-2); }
.ship__mag-state{ color:var(--text); }
.ship__mag-limit{ font-family:var(--cond); color:var(--orange); letter-spacing:.04em; white-space:nowrap; }

/* ---- the table ------------------------------------------------------------------------ */
.ship__table-wrap{ overflow-x:auto; border:1px solid var(--hair); border-radius:var(--r-lg); }
.ship__table{ width:100%; border-collapse:collapse; font-size:15px; min-width:640px; }
.ship__table th, .ship__table td{ padding:13px 16px; text-align:left; border-bottom:1px solid var(--hair); vertical-align:top; }
.ship__table thead th{
  font-family:var(--cond); text-transform:uppercase; letter-spacing:.08em; font-size:13px;
  color:var(--muted); background:var(--gunmetal);
}
.ship__table tbody th{ font-weight:600; color:var(--white); white-space:nowrap; }
.ship__table tbody tr:last-child th, .ship__table tbody tr:last-child td{ border-bottom:0; }
.ship__table tbody tr:hover{ background:var(--surface-3); }
.ship__table tbody tr[data-highlight]{ background:var(--orange-050); }
.ship__num{ font-variant-numeric:tabular-nums; }
.ship__dash{ color:var(--muted-2); }

.ship__pill{
  display:inline-block; padding:3px 10px; border-radius:99px; font-family:var(--cond);
  text-transform:uppercase; letter-spacing:.06em; font-size:12px; white-space:nowrap; border:1px solid;
}
.ship__pill--home{ color:var(--success); border-color:rgba(70,208,127,.4); background:rgba(70,208,127,.1); }
.ship__pill--dealer{ color:var(--orange); border-color:rgba(255,106,44,.4); background:var(--orange-050); }
.ship__pill--no{ color:var(--danger); border-color:rgba(240,86,58,.4); background:rgba(240,86,58,.1); }

.ship__asof{ margin:18px 0 0; color:var(--muted-2); font-size:14px; line-height:1.6; max-width:78ch; }
.ship__prose{ max-width:72ch; }

@media (min-width:720px){
  .ship__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ship__mags{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ship__picker{ padding:26px; }
  .ship__lede{ font-size:20px; }
}
@media (min-width:1040px){
  .ship__mags{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}

/* Where we decline to state the law, we point at whoever can. */
.ship__source{ display:inline-block; margin-top:8px; color:var(--orange); border-bottom:1px solid currentColor; }
.ship__source:hover{ color:var(--white); }

/* ---- single state pages ---------------------------------------------------------------- */
.ship__crumbs{ font-family:var(--cond); text-transform:uppercase; letter-spacing:.08em; font-size:13px; color:var(--muted-2); margin-bottom:18px; }
.ship__crumbs a{ color:var(--orange); }
.ship__crumbs span[aria-hidden]{ margin:0 8px; }
.ship--state .ship__verdict{ font-size:26px; margin:14px 0 10px; }
.ship--state .ship__lede{ margin-top:0; }
.ship__card--needs{ margin-top:26px; max-width:66ch; }
.ship__flagline{ color:var(--muted); line-height:1.6; }
.ship__prose h3{ font-family:var(--disp); font-size:20px; color:var(--white); margin:26px 0 10px; }
.ship__prose p{ line-height:1.7; margin:0 0 14px; }
.ship--state .btn + .btn{ margin-left:10px; }
@media (max-width:519px){
  .ship--state .btn{ display:block; text-align:center; }
  .ship--state .btn + .btn{ margin-left:0; margin-top:10px; }
}
.ship__card-title a{ color:inherit; border-bottom:2px solid var(--orange); }
.ship__card-title a:hover{ color:var(--orange); }
.ship__table tbody th a{ color:var(--orange); border-bottom:1px solid rgba(255,106,44,.35); }
.ship__table tbody th a:hover{ border-bottom-color:var(--orange); }
.ship__actions{ margin-top:28px; }
.ship--state ul.products{ margin-top:8px; }
