/* shared additions on every public page */
.house { display: grid; grid-template-columns: 72px 1fr; gap: 14px; align-items: center; margin: 6px 0 28px; padding: 14px; background: #111; color: #fff; border-top: 3px solid var(--red, #e10600); text-decoration: none; }
.house img { width: 72px; aspect-ratio: 3 / 4; object-fit: cover; }
.house b { display: block; font: 800 22px/1 var(--display, "Arial Narrow", sans-serif); margin-bottom: 6px; color: #fff; }
.house span { font-size: 14px; color: #ccc; }
.house:hover b { text-decoration: underline; }
.house-mpu { width: 300px; max-width: 100%; min-height: 250px; grid-template-columns: 1fr; text-align: center; justify-items: center; margin: 0 auto 24px; }
.house-mpu img { width: 110px; }
.house-leader { max-width: 728px; margin: 0 auto; }
.feed-grid > .house-mpu, .rail > .house-mpu { margin-top: 0; }
.grid2 > .house { grid-column: 1 / -1; margin: 0; }
/* homepage: lifestyle (trio), tech & auto (spot), sports (strip) */
.trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.trio .card .pic { aspect-ratio: 5 / 4; }
.spot { display: grid; gap: 24px; }
.spot > .ov { aspect-ratio: 21 / 9; }
.spot > .ov h3 { font-size: clamp(28px, 3.2vw, 44px); line-height: .95; max-width: 22ch; }
.spot-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.spot-row .card h3, .strip .card h3 { font-size: 21px; line-height: 1.05; }
.strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.strip .card .pic { aspect-ratio: 4 / 3; }
@media (max-width: 1024px) {
  .trio { gap: 18px; }
  .strip { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .trio, .spot-row { grid-template-columns: 1fr; gap: 22px; }
  .trio .card .pic { aspect-ratio: 3 / 2; }
  .spot > .ov { aspect-ratio: 4 / 5; }
  .spot-row .card { display: grid; grid-template-columns: 38% 1fr; grid-template-rows: auto 1fr; column-gap: 14px; align-items: start; }
  .spot-row .card .pic { grid-row: 1 / 3; margin: 0; aspect-ratio: 1; }
  .spot-row .card .cat, .spot-row .card h3 { grid-column: 2; }
  .spot-row .card h3 { font-size: 19px; }
  .strip { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin: 0 calc(-1 * var(--gut, 16px)); padding: 0 var(--gut, 16px) 6px; scroll-padding: 0 var(--gut, 16px); }
  .strip .card { flex: 0 0 72%; scroll-snap-align: start; }
}
/* homepage hero: latest cover fits one screen; covers-only wall shows two full rows */
:root { --hh: clamp(400px, calc(100svh - var(--hdr, 122px) - 40px), 600px); --ch: calc((var(--hh) - 132px) / 2); --cw: calc(var(--ch) * 3 / 4); }
@media (min-width: 1025px) {
  .cover { padding-top: 20px; padding-bottom: 20px; }
  .cover-grid { grid-template-columns: auto minmax(280px, 1fr) minmax(0, calc(3 * var(--cw) + 32px)); height: var(--hh); gap: 32px; }
  .cover .mag { height: min(calc(var(--hh) * .92), calc(28vw / .75)); width: auto; aspect-ratio: 3 / 4; transform: rotate(-1.5deg); }
  .cover-txt h1 { font-size: clamp(30px, 2.7vw, 46px); }
  .cover-txt p { font-size: 16px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .cover .best-row { width: 100%; }
  .cover .best-page { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 12px; }
  .cover .bc-img { width: 100%; height: auto; aspect-ratio: 3 / 4; }
}
.cvh { background: var(--ink, #000); color: #fff; padding: 22px 0 26px; }
.cvh-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.cvh-head .eyebrow { display: block; font-weight: 700; font-size: 13px; text-transform: uppercase; color: var(--red, #e10600); margin-bottom: 6px; }
.cvh-head h1 { font: 900 clamp(40px, 4.4vw, 64px)/.9 var(--display); margin: 0; }
.cvh .btn { border-color: #fff; background: #fff; color: #000; white-space: nowrap; }
.cvh .btn:hover { background: var(--red, #e10600); border-color: var(--red, #e10600); color: #fff; }
.wall { display: grid; grid-template-columns: repeat(9, 1fr); gap: 14px 12px; max-width: calc(((100svh - var(--hdr, 122px) - 175px) / 2) * .75 * 9 + 96px); margin: 0 auto; }
.wall .bc-img { box-shadow: 0 8px 20px rgba(0,0,0,.45); }
.wall .bc-t { color: #bdbdbd; margin-top: 6px; font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cvh .btns-m2 { display: none; }
@media (max-width: 1024px) {
  .wall { max-width: none; grid-template-columns: none; grid-auto-flow: column; grid-template-rows: auto auto; grid-auto-columns: 15%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin: 0 calc(-1 * var(--gut)); padding: 0 var(--gut) 6px; }
  .wall .bc { scroll-snap-align: start; }
}
@media (max-width: 760px) {
  .cvh { padding: 24px 0 22px; }
  .cvh-head { display: block; }
  .cvh-head h1 { font-size: 44px; }
  .cvh-cta { display: none; }
  .wall { grid-auto-columns: 36%; }
  .cvh .btns-m2 { display: flex; margin-top: 14px; }
  .cvh .btns-m2 .btn { flex: 1; text-align: center; }
}

/* fixed pages (privacy policy, terms): no drop cap */
.body.legal > p:first-child::first-letter { float: none; font: inherit; color: inherit; margin: 0; }
.body.legal h2 { font-size: 22px; margin-top: 28px; }

/* photos inside stories: never crop landscape photos; portrait photos sit in a 4:5 frame centred on the face */
.body img, .body figure img { height: auto; aspect-ratio: auto; }
.body img.pt { aspect-ratio: 4 / 5; width: 100%; max-width: 540px; margin-left: auto; margin-right: auto; object-fit: cover; }
.body > img, .body p > img { margin: 0 auto 22px; }
