/* ==========================================================================
   NYT Writing Contests · project page styles (Classic NYT Editorial · mono)
   Pushed to theme assets/css/tailwind.css (auto-enqueued before style.css).
   Page HTML uses these .nyt-* classes + inline style; NO <style> in page (L85).
   Palette: ink #121212 · paper #fff · surface #FAF9F6 · rule #DCDCD6 · muted #5B5B5B
   Type: Source Serif 4/Georgia (headings) · Inter (body/UI)
   ========================================================================== */

.nyt-wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
.nyt-narrow{max-width:820px;margin:0 auto;padding:0 28px;}
.nyt-serif{font-family:'Source Serif 4',Georgia,'Times New Roman',serif;}
.nyt-sans{font-family:'Inter',-apple-system,system-ui,sans-serif;}

/* section bands */
.nyt-band{background:#FFFFFF;}
.nyt-band--alt{background:#FAF9F6;}
.nyt-band--ink{background:#121212;color:#F4F3EE;}
.nyt-band-pad{padding:64px 0;}
.nyt-rule{height:1px;background:#DCDCD6;border:0;margin:0;}

/* kicker (Arabic numbering, never a section-sign glyph · L91) */
.nyt-kicker{font-family:'Inter',-apple-system,system-ui,sans-serif;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#8A8A82;margin:0 0 16px;}
.nyt-band--ink .nyt-kicker{color:rgba(244,243,238,.6);}

.nyt-h1{font-family:'Source Serif 4',Georgia,'Times New Roman',serif;font-weight:700;font-size:clamp(34px,4.8vw,56px);line-height:1.04;letter-spacing:-.015em;color:#121212;margin:0;}
.nyt-h2{font-family:'Source Serif 4',Georgia,'Times New Roman',serif;font-weight:700;font-size:clamp(26px,3vw,36px);line-height:1.12;letter-spacing:-.01em;color:#121212;margin:0 0 14px;}
.nyt-band--ink .nyt-h2{color:#F4F3EE;}
.nyt-lede{font-family:'Inter',-apple-system,system-ui,sans-serif;font-size:18px;line-height:1.7;color:#5B5B5B;margin:18px 0 0;}
.nyt-p{font-family:'Inter',-apple-system,system-ui,sans-serif;font-size:16px;line-height:1.75;color:#2B2B2B;margin:0 0 16px;}
.nyt-band--ink .nyt-lede,.nyt-band--ink .nyt-p{color:rgba(244,243,238,.78);}

/* buttons */
.nyt-btn{display:inline-block;font-family:'Inter',-apple-system,system-ui,sans-serif;font-size:14px;font-weight:700;letter-spacing:.01em;text-decoration:none;padding:13px 22px;border-radius:2px;transition:background .15s,color .15s,border-color .15s;}
.nyt-btn--solid{background:#121212;color:#FFFFFF;border:1.5px solid #121212;}
.nyt-btn--solid:hover{background:#000000;}
.nyt-btn--ghost{background:transparent;color:#121212;border:1.5px solid #121212;}
.nyt-btn--ghost:hover{background:#121212;color:#FFFFFF;}
.nyt-band--ink .nyt-btn--solid{background:#F4F3EE;color:#121212;border-color:#F4F3EE;}
.nyt-band--ink .nyt-btn--solid:hover{background:#FFFFFF;}
.nyt-band--ink .nyt-btn--ghost{color:#F4F3EE;border-color:rgba(244,243,238,.5);}
.nyt-band--ink .nyt-btn--ghost:hover{background:#F4F3EE;color:#121212;}
.nyt-btnrow{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px;}

/* hero */
.nyt-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:60px 0 56px;}
.nyt-hero-fig{margin:0;border:1px solid #DCDCD6;background:#fff;}
.nyt-hero-fig img{display:block;width:100%;height:auto;}
.nyt-hero-cap{font-family:'Inter',sans-serif;font-size:11.5px;color:#8A8A82;padding:8px 10px;border-top:1px solid #DCDCD6;}

/* stats */
.nyt-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #DCDCD6;border-bottom:1px solid #DCDCD6;}
.nyt-stat{padding:26px 22px;border-left:1px solid #DCDCD6;}
.nyt-stat:first-child{border-left:0;}
.nyt-stat-n{font-family:'Source Serif 4',Georgia,serif;font-weight:700;font-size:38px;line-height:1;color:#121212;letter-spacing:-.01em;}
.nyt-stat-l{font-family:'Inter',sans-serif;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#5B5B5B;font-weight:600;margin-top:10px;line-height:1.45;}

/* contests intro (2-col text + image) */
.nyt-2col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.nyt-fig{margin:0;border:1px solid #DCDCD6;background:#fff;}
.nyt-fig img{display:block;width:100%;height:auto;}

/* contest cards */
.nyt-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:38px;border-top:1px solid #DCDCD6;border-left:1px solid #DCDCD6;}
.nyt-ccard{padding:24px 24px 22px;border-right:1px solid #DCDCD6;border-bottom:1px solid #DCDCD6;display:flex;flex-direction:column;}
.nyt-ccard-no{font-family:'Inter',sans-serif;font-size:12px;font-weight:700;letter-spacing:.06em;color:#8A8A82;}
.nyt-ccard h3{font-family:'Source Serif 4',Georgia,serif;font-weight:700;font-size:21px;line-height:1.16;margin:8px 0 8px;color:#121212;}
.nyt-ccard p{font-family:'Inter',sans-serif;font-size:14px;line-height:1.6;color:#5B5B5B;margin:0;flex:1;}
.nyt-ccard-when{font-family:'Inter',sans-serif;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#121212;margin-top:16px;padding-top:14px;border-top:1px solid #DCDCD6;font-variant-numeric:tabular-nums;}

/* steps */
.nyt-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:34px;border-top:1px solid #DCDCD6;}
.nyt-step{padding:24px 26px 8px;border-left:1px solid #DCDCD6;}
.nyt-step:first-child{border-left:0;}
.nyt-step-n{font-family:'Source Serif 4',Georgia,serif;font-weight:700;font-size:26px;color:#121212;}
.nyt-step h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:18px;margin:8px 0 8px;color:#121212;}
.nyt-step p{font-family:'Inter',sans-serif;font-size:14px;line-height:1.6;color:#5B5B5B;margin:0;}

/* pull quote */
.nyt-pull{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:clamp(20px,2.4vw,26px);line-height:1.4;color:#121212;border-left:3px solid #121212;padding:6px 0 6px 22px;margin:0;}

/* disclaimer box */
.nyt-disclaimer{font-family:'Inter',sans-serif;font-size:13.5px;line-height:1.7;color:#5B5B5B;border:1px solid #DCDCD6;background:#FAF9F6;padding:18px 22px;margin-top:24px;}
.nyt-disclaimer b{color:#121212;}
/* a heading right after the disclaimer callout needs breathing room (About page) */
.nyt-disclaimer + .nyt-h2{margin-top:32px;}

/* resources CTA (image + text) */
.nyt-feature{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;}

/* FAQ */
.nyt-faq{margin-top:30px;border-top:1px solid #DCDCD6;}
.nyt-faq details{border-bottom:1px solid #DCDCD6;}
.nyt-faq summary{list-style:none;cursor:pointer;font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:18px;color:#121212;padding:18px 36px 18px 0;position:relative;}
.nyt-faq summary::-webkit-details-marker{display:none;}
.nyt-faq summary::after{content:"+";position:absolute;right:6px;top:16px;font-family:'Inter',sans-serif;font-size:22px;font-weight:400;color:#8A8A82;}
.nyt-faq details[open] summary::after{content:"\2013";}
.nyt-faq .nyt-faq-a{font-family:'Inter',sans-serif;font-size:15px;line-height:1.7;color:#2B2B2B;padding:0 0 20px;margin:0;max-width:62ch;}

/* contact CTA (ink) */
.nyt-contact{display:grid;grid-template-columns:1fr auto;gap:44px;align-items:center;}
.nyt-contact-qr{width:150px;height:150px;background:#fff;border-radius:6px;padding:7px;box-sizing:border-box;object-fit:contain;display:block;}
.nyt-contact-qrwrap{text-align:center;}
.nyt-contact-qrlabel{font-family:'Inter',sans-serif;font-size:11.5px;color:rgba(244,243,238,.66);margin-top:10px;max-width:160px;}

/* mobile */
@media (max-width:860px){
  .nyt-band-pad{padding:46px 0;}
  .nyt-hero{grid-template-columns:1fr;gap:28px;padding:38px 0 40px;}
  .nyt-hero-fig{order:-1;}
  .nyt-2col,.nyt-feature,.nyt-contact{grid-template-columns:1fr;gap:26px;}
  .nyt-cards{grid-template-columns:1fr;border-left:0;border-top:0;}
  .nyt-ccard{border-left:1px solid #DCDCD6;border-top:1px solid #DCDCD6;}
  .nyt-steps{grid-template-columns:1fr;}
  .nyt-step{border-left:0;border-top:1px solid #DCDCD6;padding-left:0;padding-right:0;}
  .nyt-step:first-child{border-top:0;}
  /* L86 fit-test: short label+number stats keep 2x2 on mobile */
  .nyt-stats{grid-template-columns:1fr 1fr;}
  .nyt-stat:nth-child(2){border-left:0;}
  .nyt-stat:nth-child(3),.nyt-stat:nth-child(4){border-top:1px solid #DCDCD6;}
  .nyt-stat:nth-child(3){border-left:0;}
  .nyt-contact{justify-items:start;}
  .nyt-contact-qrwrap{order:-1;}
}

/* ==========================================================================
   Inner-page components (contests / how-to-enter / resources / winners / about / contact)
   ========================================================================== */
.nyt-pagehero{padding:52px 0 34px;}
.nyt-crumb{font-family:'Inter',-apple-system,system-ui,sans-serif;font-size:12px;letter-spacing:.04em;color:#8A8A82;margin:0 0 16px;}
.nyt-crumb a{color:#5B5B5B;text-decoration:none;}
.nyt-crumb a:hover{color:#121212;}

/* vertical timeline */
.nyt-timeline{margin-top:30px;border-left:2px solid #121212;padding-left:0;}
.nyt-tl-item{position:relative;padding:0 0 28px 28px;}
.nyt-tl-item:last-child{padding-bottom:0;}
.nyt-tl-item::before{content:"";position:absolute;left:-7px;top:5px;width:12px;height:12px;background:#121212;border-radius:50%;}
.nyt-tl-when{font-family:'Inter',sans-serif;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8A8A82;font-variant-numeric:tabular-nums;}
.nyt-tl-item h3{font-family:'Source Serif 4',Georgia,'Times New Roman',serif;font-weight:700;font-size:20px;margin:4px 0 6px;color:#121212;}
.nyt-tl-item p{font-family:'Inter',sans-serif;font-size:14.5px;line-height:1.65;color:#5B5B5B;margin:0;}

/* numbered vertical process */
.nyt-process{margin-top:30px;}
.nyt-pstep{display:grid;grid-template-columns:54px 1fr;gap:20px;padding:22px 0;border-top:1px solid #DCDCD6;}
.nyt-pstep:first-child{border-top:0;}
.nyt-pstep .pn{font-family:'Source Serif 4',Georgia,serif;font-weight:700;font-size:30px;color:#121212;line-height:1;}
.nyt-pstep h3{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:19px;margin:0 0 6px;color:#121212;}
.nyt-pstep p{font-family:'Inter',sans-serif;font-size:15px;line-height:1.7;color:#2B2B2B;margin:0;}

/* table */
.nyt-table{width:100%;border-collapse:collapse;margin-top:22px;font-family:'Inter',sans-serif;font-size:14.5px;}
.nyt-table th,.nyt-table td{border:1px solid #DCDCD6;padding:12px 16px;text-align:left;vertical-align:top;}
.nyt-table th{background:#121212;color:#F4F3EE;font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;}
.nyt-table td{color:#2B2B2B;}
.nyt-table tr:nth-child(even) td{background:#FAF9F6;}
.nyt-tnum{font-variant-numeric:tabular-nums;white-space:nowrap;}

/* definition rows */
.nyt-deflist{margin-top:24px;border-top:1px solid #DCDCD6;}
.nyt-defrow{display:grid;grid-template-columns:210px 1fr;gap:24px;padding:16px 0;border-bottom:1px solid #DCDCD6;}
.nyt-defrow dt{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:16px;color:#121212;margin:0;}
.nyt-defrow dd{font-family:'Inter',sans-serif;font-size:14.5px;line-height:1.65;color:#5B5B5B;margin:0;}

/* reusable contact CTA card (bordered, on paper) */
.nyt-ctacard{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:center;border:1px solid #121212;padding:30px 32px;margin-top:38px;}
.nyt-ctacard h3{font-family:'Source Serif 4',Georgia,serif;font-weight:700;font-size:24px;margin:0 0 8px;color:#121212;}
.nyt-ctacard p{font-family:'Inter',sans-serif;font-size:15px;line-height:1.65;color:#5B5B5B;margin:0 0 16px;max-width:52ch;}
.nyt-ctacard .qrwrap{text-align:center;}
.nyt-ctacard .qrwrap img{width:140px;height:140px;display:block;border:1px solid #DCDCD6;}
.nyt-ctacard .qrwrap span{display:block;font-family:'Inter',sans-serif;font-size:11px;color:#8A8A82;margin-top:8px;max-width:150px;line-height:1.4;}

/* reading column for text-heavy pages */
.nyt-reading{max-width:760px;}
.nyt-reading .nyt-p{font-size:17px;}

@media (max-width:860px){
  .nyt-defrow{grid-template-columns:1fr;gap:4px;}
  .nyt-ctacard{grid-template-columns:1fr;gap:22px;justify-items:start;}
  .nyt-pstep{grid-template-columns:42px 1fr;gap:14px;}
}

/* ==========================================================================
   Archive + single-post templates fix
   main is a direct child of .wp-site-blocks, so L115 zeroes its padding-top
   (title ends up flush under the fixed header). Restore breathing room with a
   higher-specificity !important rule. Also force post-title links to ink (they
   were rendering in the default link/visited purple).
   ========================================================================== */
body.blog main.wp-block-group,
body.archive main.wp-block-group,
body.search main.wp-block-group,
body.single main.wp-block-group{padding-top:48px !important;padding-left:28px !important;padding-right:28px !important;}
@media (max-width:767px){
  body.blog main.wp-block-group,
  body.archive main.wp-block-group,
  body.search main.wp-block-group,
  body.single main.wp-block-group{padding-top:32px !important;padding-left:20px !important;padding-right:20px !important;}
}
.wp-block-post-title a,.wp-block-post-title a:visited{color:#121212;text-decoration:none;}
.wp-block-post-title a:hover{color:#121212;text-decoration:underline;text-underline-offset:3px;}
/* archive post date: tabular + tidy */
.wp-block-post-date{font-variant-numeric:tabular-nums;}

/* ==========================================================================
   Single article: breadcrumb + meta row (date/reading-time/category chip),
   "Read next" related cards, and prev/next nav styling
   ========================================================================== */
.nyt-art-crumb{font-family:'Inter',-apple-system,system-ui,sans-serif;font-size:12px;letter-spacing:.04em;color:#8A8A82;margin:0 0 14px;}
.nyt-art-crumb a{color:#5B5B5B;text-decoration:none;}
.nyt-art-crumb a:hover{color:#121212;}
.nyt-art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-family:'Inter',-apple-system,system-ui,sans-serif;font-size:13px;color:#5B5B5B;margin:0 0 4px;}
.nyt-art-meta .d{text-transform:uppercase;letter-spacing:.05em;font-variant-numeric:tabular-nums;}
.nyt-art-meta .sep{color:#C9C7C0;}
.nyt-art-meta .nyt-cat-chip{font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase;background:#121212;color:#F4F3EE;padding:3px 9px;border-radius:3px;text-decoration:none;}
.nyt-art-meta .nyt-cat-chip:hover{background:#000;}
.nyt-related-h{font-family:'Source Serif 4',Georgia,'Times New Roman',serif;font-weight:700;font-size:22px;color:#121212;margin:48px 0 18px;padding-top:26px;border-top:1px solid #DCDCD6;}
.nyt-related{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.nyt-rel-card{display:block;text-decoration:none;}
.nyt-rel-img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border:1px solid #DCDCD6;margin-bottom:10px;}
.nyt-rel-title{display:block;font-family:'Source Serif 4',Georgia,'Times New Roman',serif;font-weight:600;font-size:16px;line-height:1.24;color:#121212;}
.nyt-rel-card:hover .nyt-rel-title{text-decoration:underline;text-underline-offset:2px;}
body.single .hl-post-nav{border-top:1px solid #DCDCD6 !important;margin-top:48px;padding-top:22px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.hl-post-nav .wp-block-post-navigation-link{font-family:'Inter',-apple-system,system-ui,sans-serif;font-size:14px;max-width:48%;}
.hl-post-nav .wp-block-post-navigation-link:last-child{text-align:right;}
.hl-post-nav .wp-block-post-navigation-link a{color:#121212;text-decoration:none;font-weight:600;}
.hl-post-nav .wp-block-post-navigation-link a:hover{text-decoration:underline;text-underline-offset:3px;}
.hl-post-nav .post-navigation-link__label,.hl-post-nav .wp-block-post-navigation-link__label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8A8A82;font-weight:700;margin-bottom:3px;}
@media(max-width:767px){.nyt-related{grid-template-columns:1fr;gap:18px;}}

/* refine v2: gutter-TOC only on wide screens (avoid edge-crowding ≤1500px),
   restore single main bottom padding (L115 zeroes it → content abutted footer),
   boxed prev/next nav */
/* TOC: show on normal desktop (>=1300px), hide on narrow; narrow it to 150px so it
   keeps a comfortable margin from the viewport edge (less "edge-stuck") while still
   hugging the reading column's left. */
.hl-toc-float{ --hl-toc-width:150px !important; top:128px !important; }
/* logged-in: admin bar (32px) pushes the fixed header down → clear it so TOC doesn't touch the nav line */
body.admin-bar .hl-toc-float{ top:160px !important; }
@media (max-width:1299px){ .hl-toc-float{ display:none !important; } }
body.blog main.wp-block-group, body.archive main.wp-block-group, body.search main.wp-block-group, body.single main.wp-block-group{ padding-bottom:56px !important; }
.hl-post-nav .wp-block-post-navigation-link{ flex:1 1 0; min-width:200px; max-width:50%; border:1px solid #DCDCD6; border-radius:2px; padding:13px 16px; }
/* hide the empty prev/next box when there is no adjacent post; keep "next" right-aligned */
.hl-post-nav .wp-block-post-navigation-link:empty{ display:none !important; border:0 !important; padding:0 !important; }
.hl-post-nav .post-navigation-link-next{ margin-left:auto; text-align:right; }
/* mobile: stack prev/next full-width (column). box-sizing:border-box so 100% width +
   padding + border stays inside the column (was overflowing → right border clipped).
   Both items left-aligned (override the desktop :last-child right-align). */
@media (max-width:860px){
  body.single .hl-post-nav{ flex-direction:column; gap:14px; }
  .hl-post-nav .wp-block-post-navigation-link{ flex:none !important; width:100%; max-width:100% !important; min-width:0; margin:0; box-sizing:border-box; text-align:left; }
  .hl-post-nav .wp-block-post-navigation-link:last-child{ text-align:left; margin-left:0; }
}

/* mobile: keep wide tables from overflowing the viewport (deadlines / eligibility) */
@media (max-width:767px){
  .nyt-table{font-size:12.5px;}
  .nyt-table th,.nyt-table td{padding:8px 9px;}
  .nyt-tnum{white-space:normal;}
}

/* 🔴 EDGE FIX: .nyt-band-pad/.nyt-hero/.nyt-pagehero use `padding:X 0` shorthand which zeroed
   .nyt-wrap's side padding (hidden on desktop by the max-width centering gutter; on mobile text
   went edge-to-edge). Force container side padding everywhere. */
.nyt-wrap{ padding-left:28px !important; padding-right:28px !important; }
@media (max-width:767px){ .nyt-wrap{ padding-left:20px !important; padding-right:20px !important; } }

/* mobile: home contact-CTA QR is redundant with the footer QR right below it.
   Hide it on mobile; keep the "Chat with us" button + the footer QR. */
@media (max-width:860px){ .nyt-contact .nyt-contact-qrwrap{ display:none !important; } }

/* mobile: center the CTA card's button + QR/label (heading & body text stay left-aligned) */
@media (max-width:860px){
  .nyt-ctacard .nyt-btn{ display:block; width:-moz-fit-content; width:fit-content; margin-left:auto; margin-right:auto; }
  .nyt-ctacard .qrwrap{ justify-self:center; }
}

/* article CTA (end-of-article [nyt_cta] + auto mid-article) — reuses .nyt-ctacard.
   Vertical rhythm; guard the card's own type against .hl-prose overrides (the mid CTA sits inside .hl-prose). */
.nyt-art-cta{ margin:34px 0 0; }
.hl-prose .nyt-art-cta{ margin:36px 0; }
.hl-prose .nyt-art-cta h3{ font-family:'Source Serif 4',Georgia,serif; font-weight:700; font-size:24px; line-height:1.16; margin:0 0 8px; color:#121212; }
.hl-prose .nyt-art-cta p{ font-family:'Inter',sans-serif; font-size:15px; line-height:1.65; color:#5B5B5B; margin:0 0 16px; max-width:52ch; }

/* fix: solid CTA button text inside .hl-prose (the mid-article CTA) — the theme's
   .hl-prose a (ink) outranks .nyt-btn--solid's white, giving black-on-black. */
.hl-prose .nyt-art-cta .nyt-btn--solid,
.hl-prose .nyt-art-cta .nyt-btn--solid:hover{ color:#FFFFFF; text-decoration:none; }

/* ── Dual QR (WhatsApp + WeChat) · footer / page CTA cards / home contact / article CTA.
   Graceful: renders whichever QR(s) Site Tools has set (single until 2nd QR uploaded). ── */
.nyt-qr-dual{ display:flex; gap:16px; flex-wrap:wrap; align-items:flex-start; }
.nyt-qr-item{ margin:0; text-align:center; }
.nyt-qr-item img{ width:128px !important; height:128px !important; display:block; border:1px solid #DCDCD6; background:#fff; border-radius:4px; padding:5px; box-sizing:border-box; }
.nyt-qr-item figcaption{ font-family:'Inter',-apple-system,system-ui,sans-serif; font-size:11px; color:#8A8A82; margin-top:7px; line-height:1.4; max-width:128px; }
.nyt-footer .nyt-qr-item figcaption, .nyt-contact .nyt-qr-item figcaption{ color:rgba(244,243,238,.72); }
.nyt-footer .nyt-qr-dual{ gap:12px; }
.nyt-footer .nyt-qr-item img{ width:108px !important; height:108px !important; }
.nyt-footer .nyt-qr-item figcaption{ max-width:108px; }
@media (max-width:860px){
  .nyt-ctacard .qrwrap .nyt-qr-dual, .nyt-contact-qrwrap .nyt-qr-dual{ justify-content:center; }
  .nyt-qr-item img{ width:120px !important; height:120px !important; }
}

/* CTA card border-box: padding(32) + border(1) must count INSIDE the width, or the card
   overflows its column (~33px each side). NO max-width here — the block layout's
   `max-width:760px` (constrained main) must win so the card matches the body column;
   an explicit max-width on .nyt-ctacard would override it and let the card go full-width. */
.nyt-ctacard{ box-sizing:border-box; }
.nyt-ctacard *{ box-sizing:border-box; }
