/* Best Hair Loss Supplements for Men — built from Figma 428:3496 (desktop 1440) / 428:4199 (mobile 430) */
:root {
  --ink: #241c18;
  --orange: #d88a2d;
  --rust: #be5a32;
  --tint: rgba(216, 138, 45, 0.07);
  --tint-10: rgba(216, 138, 45, 0.1);
  --rule: #ddd3c8;
  --grey: #888;
  --cell-border: #d9d9d9;
  --cell-bg: #f3f3f3;
  --band: #f4f4f4;
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --col: 534px;
  --gap: 35px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 22px;
  letter-spacing: -0.02px; /* Google's Inter v4 sets ~0.2% wider than Figma's Inter; keeps Figma's line breaks */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-wrap: break-word;
}
img { display: block; max-width: 100%; }
p, h1, h2, h3, ul { margin: 0; }
a { color: inherit; }
.trim { text-box: trim-both cap alphabetic; }

/* ---------- Header ---------- */
.site-header {
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 100px;
  background: #fff;
  border-bottom: 1px solid var(--rule);
}
.site-header img { width: 220px; height: 53px; object-fit: cover; }

/* ---------- Main column ---------- */
main {
  width: min(var(--col), 100% - 30px);
  margin: 0 auto;
  padding: var(--gap) 0;
  display: flex;
  flex-direction: column;
  gap: var(--gap);
}
.serif-title { font-family: var(--serif); font-weight: 700; font-size: 22px; line-height: 1.2; }

/* Hero */
.hero {
  background: var(--tint);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.kicker { font-weight: 700; font-size: 10px; line-height: 12px; letter-spacing: 0.5px; color: var(--rust); }
.hero h1 { font-family: var(--serif); font-weight: 500; font-size: 35px; line-height: 42px; }
.byline { font-size: 12px; line-height: 15px; color: #757575; }
.byline strong { color: var(--ink); }

/* Callouts (left orange rule) */
.callout {
  background: var(--tint);
  border-left: 5px solid var(--orange);
  padding: 20px 25px 20px 20px; /* Figma stroke sits inside the 25px inset */
}
.callout p + p { margin-top: 22px; }
.callout--roomy { padding: 30px 25px 30px 20px; display: flex; flex-direction: column; gap: 15px; }
.callout--roomy ul { padding: 0; list-style: disc; }
.callout--roomy li { margin-left: 24px; }
.callout--roomy li + li { margin-top: 10px; }

.hero-img { width: 100%; height: 385px; object-fit: cover; border-radius: 5px; }

/* Orange framed boxes (top pick, #1) */
.box { border: 1px solid var(--orange); padding-bottom: 20px; }
.box-bar {
  height: 33px;
  display: flex;
  align-items: center;
  padding: 0 20px;
  background: var(--orange);
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  line-height: 22px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}
.box-body { padding: 20px; display: flex; flex-direction: column; }
.box-body--glance { gap: 10px; }
.box-body--review { gap: 20px; }
.box-cta { padding: 0 20px; }

.glance-row { display: flex; align-items: center; }
.glance-row > a { flex: none; }
.glance-row img { width: 150px; height: 150px; object-fit: cover; }
.glance-text { flex: 1 1 0; min-width: 1px; display: flex; flex-direction: column; gap: 10px; }

/* Buttons */
.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 55px;
  padding: 0 25px;
  border-radius: 10px;
  background: var(--ink);
  color: #fff;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background-color .15s ease;
}
.btn:hover, .btn:focus-visible { background: #3a2e28; }
.btn:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }

/* Rank header */
.rank-head { display: flex; gap: 20px; align-items: flex-start; }
.rank-badge {
  flex: none;
  width: 46px;
  height: 47px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ink);
  color: #fff;
  font-weight: 700;
  font-size: 22px;
  line-height: 1.2;
}
.rank-titles { flex: 1 1 0; min-width: 1px; padding-top: 5px; display: flex; flex-direction: column; gap: 15px; }
.rank-titles h2 { font-family: var(--serif); font-weight: 700; font-size: 22px; line-height: 26px; text-box: trim-both cap alphabetic; }
.rank-sub { color: var(--orange); text-box: trim-both cap alphabetic; }
.rank-sub--featured { font-size: 14px; line-height: 17px; font-weight: 600; }
.rank-sub--featured b { font-weight: 700; }
.rank-sub--featured span { font-weight: 400; }
.rank-sub--fit { font-size: 12px; line-height: 15px; font-weight: 700; }

/* #1 image band */
.img-band {
  margin: 0 -21px;
  background: var(--band);
  border-left: 1px solid var(--orange);
  border-right: 1px solid var(--orange);
  display: flex;
  justify-content: center;
}
.img-band img { width: 293px; height: 293px; object-fit: cover; }

/* Spec tables */
.spec { display: grid; grid-template-columns: 218px 1fr; border: 1px solid var(--cell-border); }
.spec > div { padding: 15px; border-bottom: 1px solid var(--cell-border); display: flex; align-items: center; }
.spec > .k { background: var(--cell-bg); }
.spec > div:nth-last-child(-n+2) { border-bottom: 0; }

/* Pros / considerations */
.pc { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.pc h3 { font-weight: 700; font-size: 16px; line-height: 1.2; text-box: trim-both cap alphabetic; }
.pc-col { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.pc ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.pc li { display: flex; gap: 10px; align-items: flex-start; }
.pc li.c { align-items: center; }
.pc li img { flex: none; width: 10px; }
.pc li span { flex: 1 1 0; min-width: 1px; text-box: trim-both cap alphabetic; }
.pc--top { grid-template-areas: "pros cons" "foot foot"; }
.pc--top .pros { grid-area: pros; }
.pc--top .cons { grid-area: cons; }
.pc--top .foot { grid-area: foot; }

.take { background: var(--tint); padding: 15px; }

/* Competitor cards */
.card { display: flex; flex-direction: column; gap: 20px; }
.prod-row { display: flex; align-items: center; background: var(--band); }
.prod-row img { flex: none; width: 120px; height: 120px; object-fit: cover; }
.prod-row .glance-text { flex: 1 1 0; }

/* Comparison table */
.compare { display: flex; flex-direction: column; gap: 15px; }
.compare h2 { font-family: var(--serif); font-weight: 700; font-size: 22px; line-height: 1.2; text-box: trim-both cap alphabetic; }
.ctable { display: grid; grid-template-columns: 188px 135px 1fr; border: 1px solid var(--grey); }
.ctable > div { min-width: 0; padding: 15px; border-right: 1px solid var(--grey); border-bottom: 1px solid var(--grey); display: flex; align-items: flex-start; }
.ctable > div:nth-child(3n) { border-right: 0; }
.ctable > div:nth-last-child(-n+3) { border-bottom: 0; }
.ctable > .th { background: var(--orange); color: #fff; font-weight: 700; align-items: center; }
.ctable > .hl { background: var(--tint-10); }
.ctable > .p { font-weight: 700; }

/* FAQ */
.section-h { font-family: var(--serif); font-weight: 500; font-size: 30px; line-height: 36px; }
.faq { display: flex; flex-direction: column; gap: 20px; }
.faq hr { margin: 0 0 -1px; height: 0; border: 0; border-top: 1px solid var(--rule); }
.faq h3 { display: flex; gap: 10px; align-items: flex-start; font-weight: 700; font-size: 18px; line-height: 26px; }
.faq h3 img { flex: none; width: 15px; height: 11px; }
.faq h3 span { flex: 1 1 0; min-width: 1px; text-box: trim-both cap alphabetic; }

.verdict { display: flex; flex-direction: column; gap: 15px; }

.sources { color: var(--grey); }
.sources a { text-decoration: none; word-break: break-word; }
.sources a:hover { text-decoration: underline; }

/* ---------- Footer ---------- */
.ad-bar {
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 85px;
  border-top: 1px solid var(--rule);
  background: #fff;
  color: var(--grey);
  text-align: center;
}
.site-footer {
  background: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 70px;
  padding: 25px 100px;
}
.f-logo { flex: none; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; white-space: nowrap; font-family: var(--serif); }
.f-logo .a { color: var(--rust); font-weight: 500; font-size: 30px; line-height: 1.2; text-box: trim-both cap alphabetic; }
.f-logo .b { color: #fff; font-weight: 400; font-size: 20.108px; line-height: 28.151px; text-box: trim-both cap alphabetic; }
.f-text { flex: 1 1 0; min-width: 1px; display: flex; flex-direction: column; gap: 25px; color: var(--rule); font-weight: 300; font-size: 12px; line-height: normal; }
.f-text p { text-box: trim-both cap alphabetic; }

/* ---------- Tablet ---------- */
@media (max-width: 900px) {
  .site-footer { flex-direction: column; gap: 20px; padding: 25px 15px; }
  .f-text { flex: none; width: 100%; max-width: 949px; }
  .ad-bar { padding: 0 15px; }
}

/* ---------- Mobile (Figma 430 frame) ---------- */
@media (max-width: 600px) {
  :root { --gap: 30px; }
  .site-header { padding: 0 15px; }
  main { padding: 25px 0; }
  .btn { font-size: 18px; }
  .spec--top { grid-template-columns: 116px 1fr; }
  .spec:not(.spec--top) { grid-template-columns: minmax(0, 218px) minmax(150px, 1fr); }
  .pc--top { grid-template-columns: 1fr; grid-template-areas: "pros" "foot" "cons"; }
  .pc--stack { grid-template-columns: 1fr; }
  .ctable { grid-template-columns: minmax(0, 129fr) minmax(0, 124fr) minmax(0, 145fr); }
  .ctable > div { padding: 10px; }
  .ad-bar { font-size: 14px; line-height: normal; text-align: left; }
}
