/* Pseudo-classes lab — properties limited to pseudo-classes/allowed.md */

body {
  margin: 0;
  padding: 24px;
  font-size: 16px;
  font-weight: 400;
  font-family: "Outfit", Arial, Helvetica, sans-serif;
  background: #e8eef5;
  color: #15202b;
}

a {
  color: inherit;
}

.page {
  margin: 0 auto;
  padding: 0;
  width: 720px;
  display: block;
  font-family: inherit;
  color: inherit;
}

nav {
  margin: 0 0 24px 0;
  padding: 12px 0;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

nav a {
  margin: 0;
  padding: 8px 10px;
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  background: #d5e0ec;
  display: block;
  border: 1px solid #a9b8c9;
  border-radius: 8px;
  color: inherit;
  text-align: center;
}

nav a:hover {
  background: #16324f;
  border: 1px solid #0d2136;
  color: #f8fafc;
}

header {
  margin: 0 0 24px 0;
  padding: 20px 24px;
  background: #16324f;
  display: block;
  border: 2px solid #0d2136;
  border-radius: 12px;
  color: #f4f7fb;
  text-align: center;
  font-family: inherit;
}

header h1 {
  margin: 0 0 8px 0;
  font-size: 28px;
  font-weight: 700;
  font-family: inherit;
  color: inherit;
  background: transparent;
}

header h2 {
  margin: 0;
  font-size: 15px;
  font-weight: 400;
  font-family: inherit;
  color: #c5d4e4;
  background: transparent;
}

.box {
  margin: 0 0 16px 0;
  padding: 16px;
  background: #f8fafc;
  display: block;
  border: 1px solid #c9d4e0;
  border-radius: 12px;
  color: inherit;
  font-family: inherit;
}

.box-alt {
  margin: 0 0 16px 0;
  padding: 16px;
  background: #dceaf7;
  display: block;
  border: 1px solid #b0c7de;
  border-radius: 12px;
  color: inherit;
  font-family: inherit;
}

.credit {
  margin: 16px 0 0 0;
  padding: 10px 12px;
  font-size: 12px;
  background: #d5e0ec;
  border: 1px solid #a9b8c9;
  border-radius: 8px;
  color: #334155;
}

.accent {
  font-weight: 700;
  color: #0e7490;
}

.mark {
  background: #fde68a;
  color: inherit;
  font-family: inherit;
}

.explain {
  margin: 8px 0 0 0;
  font-size: 14px;
  font-weight: 400;
  font-family: inherit;
  color: #334155;
}

.demo-row {
  margin: 0 0 8px 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
}

ul {
  margin: 8px 0 0 0;
  padding: 0 0 0 22px;
}

li {
  margin: 0 0 6px 0;
}

/* —— Buttons —— */
button {
  margin: 0;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  background: #0e7490;
  display: block;
  border: 1px solid #155e75;
  border-radius: 8px;
  color: #ecfeff;
}

button:hover {
  background: #155e75;
  border: 1px solid #0f766e;
  color: #ffffff;
}

button:active {
  background: #0f766e;
  border: 1px solid #115e59;
  color: #ffffff;
}

button:focus {
  background: #0891b2;
  border: 2px solid #164e63;
  color: #ffffff;
}

button.secondary {
  background: #e2e8f0;
  border: 1px solid #94a3b8;
  color: #16324f;
}

button.secondary:hover {
  background: #16324f;
  border: 1px solid #0d2136;
  color: #f8fafc;
}

button.secondary:active {
  background: #0d2136;
  border: 1px solid #020617;
  color: #f8fafc;
}

button.secondary:focus {
  background: #334155;
  border: 2px solid #0e7490;
  color: #f8fafc;
}

button.pill {
  border-radius: 999px;
}

button.pill:hover {
  background: #0891b2;
  border: 1px solid #0e7490;
  color: #ffffff;
}

button.pill:active {
  background: #0e7490;
  border: 1px solid #155e75;
  color: #ffffff;
}

/* Grow font + padding on hover */
button.grow {
  font-size: 14px;
  padding: 10px 16px;
}

button.grow:hover {
  font-size: 18px;
  padding: 14px 22px;
  background: #0891b2;
  border: 1px solid #0e7490;
}

button.grow:active {
  font-size: 13px;
  padding: 8px 14px;
  background: #0f766e;
}

/* Swap label text via spans */
button.swap .alt {
  display: none;
}

button.swap:hover .main {
  display: none;
}

button.swap:hover .alt {
  display: inline;
}

button.swap:active {
  font-size: 13px;
}

/* Shrink on active (press) */
button.press:active {
  font-size: 12px;
  padding: 6px 12px;
  background: #0f766e;
}

/* —— Inputs + focus —— */
.field {
  margin: 0 0 10px 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  gap: 6px;
}

.field h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
}

input[type="text"],
input[type="email"] {
  margin: 0;
  padding: 8px 10px;
  width: 320px;
  font-size: 14px;
  font-family: inherit;
  background: #ffffff;
  display: block;
  border: 2px solid #94a3b8;
  border-radius: 8px;
  color: inherit;
}

input[type="text"]:hover,
input[type="email"]:hover {
  border: 2px solid #64748b;
  background: #f8fafc;
}

input[type="text"]:focus,
input[type="email"]:focus {
  border: 2px solid #0e7490;
  background: #ecfeff;
  color: #15202b;
  font-size: 16px;
  padding: 12px 12px;
}

/* —— Text link —— */
.text-link {
  margin: 0;
  padding: 0;
  font-size: 16px;
  font-weight: 600;
  font-family: inherit;
  background: transparent;
  color: #0e7490;
  border: 0;
  border-radius: 0;
  display: inline;
  text-align: left;
}

.text-link:hover {
  color: #164e63;
  background: #cffafe;
}

.text-link:focus {
  color: #164e63;
  background: #a5f3fc;
}

.text-link:visited {
  color: #6b21a8;
  background: transparent;
}

.text-link:visited:hover {
  color: #581c87;
  background: #f3e8ff;
}

/* —— Visit demo links —— */
.visit-list {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 8px;
}

.visit-list a {
  margin: 0;
  padding: 6px 10px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  background: #f8fafc;
  border: 1px solid #c9d4e0;
  border-radius: 8px;
  color: #0e7490;
  display: block;
}

.visit-list a:hover {
  background: #cffafe;
  border: 1px solid #0e7490;
  color: #164e63;
}

.visit-list a:visited {
  color: #6b21a8;
  border: 1px solid #c4b5fd;
  background: #f5f3ff;
}

.visit-list a:visited:hover {
  color: #581c87;
  background: #ede9fe;
  border: 1px solid #8b5cf6;
}

/* —— App nav —— */
.app-nav {
  margin: 0 0 16px 0;
  padding: 12px 16px;
  background: #16324f;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  border: 2px solid #0d2136;
  border-radius: 12px;
  color: #f8fafc;
}

.app-nav .brand {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  font-family: inherit;
  color: inherit;
}

.app-nav .links {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
}

.app-nav .links a {
  margin: 0;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 600;
  background: #1e4970;
  border: 1px solid #2a5f8f;
  border-radius: 999px;
  color: #f8fafc;
}

.app-nav .links a:hover {
  background: #22d3ee;
  border: 1px solid #67e8f9;
  color: #083344;
}

.chip-row {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
}

.chip {
  margin: 0;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  background: #dceaf7;
  border: 1px solid #b0c7de;
  border-radius: 999px;
  color: #16324f;
}

.chip:hover {
  background: #0e7490;
  border: 1px solid #155e75;
  color: #ecfeff;
  font-size: 14px;
  padding: 8px 16px;
}

/* —— Cards —— */
.card-row {
  margin: 0 0 16px 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
  gap: 16px;
}

.card {
  margin: 0;
  padding: 12px;
  width: 216px;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  border: 1px solid #c9d4e0;
  border-radius: 12px;
  color: inherit;
  text-align: center;
  font-family: inherit;
}

.card:hover {
  background: #ecfeff;
  border: 1px solid #0e7490;
}

.card:hover h3 {
  font-size: 20px;
  color: #0e7490;
}

.card:hover h4 {
  font-size: 14px;
}

.card .hint {
  display: none;
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: #0e7490;
}

.card:hover .hint {
  display: block;
}

.card:hover .price-line {
  display: none;
}

.card img {
  margin: 0;
  padding: 0;
  width: 192px;
  height: 120px;
  display: block;
  border: 1px solid #94a3b8;
  border-radius: 8px;
  background: #0f172a;
}

.card:hover img {
  border: 1px solid #0e7490;
}

.card h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  font-family: inherit;
  color: inherit;
}

.card h4 {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  font-family: inherit;
  color: #475569;
}

.price {
  font-weight: 700;
  color: #b45309;
}

/* —— Image tile —— */
.tile-row {
  margin: 0 0 8px 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.tile {
  margin: 0;
  padding: 0;
  width: 220px;
  height: 140px;
  background: #334155 url("https://images.unsplash.com/photo-1506905925346-21bda4d32df4?auto=format&fit=crop&w=500&q=80") center center no-repeat;
  background-size: cover;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: stretch;
  border: 2px solid #64748b;
  border-radius: 12px;
}

.tile-b {
  background: #334155 url("https://images.unsplash.com/photo-1441974231531-c6227db76b6e?auto=format&fit=crop&w=500&q=80") center center no-repeat;
  background-size: cover;
}

.tile-c {
  background: #334155 url("https://images.unsplash.com/photo-1469474968028-56623f02e42e?auto=format&fit=crop&w=500&q=80") center center no-repeat;
  background-size: cover;
}

.tile:hover {
  border: 2px solid #22d3ee;
  background: #0f172a url("https://images.unsplash.com/photo-1470229722913-7c0e2dbbafd3?auto=format&fit=crop&w=500&q=80") center center no-repeat;
  background-size: cover;
}

.tile-b:hover {
  background: #0f172a url("https://images.unsplash.com/photo-1497366216548-37526070297c?auto=format&fit=crop&w=500&q=80") center center no-repeat;
  background-size: cover;
}

.tile-c:hover {
  background: #0f172a url("https://images.unsplash.com/photo-1557672172-298e090bd0f1?auto=format&fit=crop&w=500&q=80") center center no-repeat;
  background-size: cover;
}

.tile .overlay {
  margin: 0;
  padding: 10px 12px;
  background: rgba(15, 23, 42, 0.75);
  color: #f8fafc;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
}

.tile .overlay .alt {
  display: none;
}

.tile:hover .overlay {
  background: rgba(8, 51, 68, 0.9);
  color: #cffafe;
  font-size: 15px;
  padding: 14px 12px;
}

.tile:hover .overlay .main {
  display: none;
}

.tile:hover .overlay .alt {
  display: inline;
}

/* —— Lists: first-child / nth-child —— */
.stripe-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  gap: 0;
  border: 1px solid #c9d4e0;
  border-radius: 8px;
}

.stripe-list li {
  margin: 0;
  padding: 12px 14px;
  font-size: 14px;
  font-family: inherit;
  background: #f8fafc;
  border: 0;
  color: inherit;
}

.stripe-list li:nth-child(odd) {
  background: #f8fafc;
}

.stripe-list li:nth-child(even) {
  background: #dceaf7;
}

.stripe-list li:first-child {
  font-weight: 700;
  font-size: 16px;
  background: #16324f;
  color: #f8fafc;
  padding: 16px 14px;
}

.stripe-list li:nth-child(3) {
  border: 2px solid #0e7490;
  font-size: 15px;
  font-weight: 700;
}

.rank-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  gap: 8px;
}

.rank-list li {
  margin: 0;
  padding: 12px 14px;
  font-size: 14px;
  background: #f8fafc;
  border: 1px solid #c9d4e0;
  border-radius: 8px;
}

.rank-list li:first-child {
  background: #ecfeff;
  border: 2px solid #0e7490;
  font-weight: 700;
  font-size: 18px;
  padding: 16px 14px;
}
