/* Global UI rhythm. Page-specific editorial layouts keep their own content scale; shared controls and homepage rhythm follow the latest service UI. */
:root{
  --ui-font:'Rubik',Arial,sans-serif;
  --ui-ink:#1c2022;
  --ui-text:#334155;
  --ui-orange:#ff9933;
  --ui-button-y:15px;
  --ui-button-x:21px;
  --ui-button-gap:22px;
}

body,body button,body input,body select,body textarea{font-family:var(--ui-font)}

/* One CTA shape across service pages, homepage, legal pages and article actions. */
body main .btn,
body main button.btn,
body main input[type="submit"].btn,
body main input[type="button"].btn{
  box-sizing:border-box;
  min-height:54px;
  padding:var(--ui-button-y) var(--ui-button-x) !important;
  border-radius:4px !important;
  font-family:var(--ui-font) !important;
  font-size:14px !important;
  font-weight:600 !important;
  line-height:1.6 !important;
  letter-spacing:.01em !important;
  gap:var(--ui-button-gap) !important;
}
body main .btn>span{flex-shrink:0}

body main .sourcing-plan .btn,
body main .service-plan .btn,
body main .buy-plan .btn,
body main .why-plan .btn,
body main .qc-plan .btn,
body main .ship-plan .btn,
body main .label-plan .btn,
body main .dev-plan .btn,
body main .pricing-plan .btn,
body main .visit-fee-card .btn{
  width:100%;
  justify-content:space-between;
  white-space:nowrap;
}
body main [class$="-contact-card"] .btn{
  width:100%;
  justify-content:space-between;
  white-space:nowrap;
}

body main .actions,
body main .buy-actions,
body main .visit-actions,
body main .why-actions,
body main .qc-actions,
body main .ship-actions,
body main .label-actions,
body main .dev-actions,
body main .pricing-actions,
body main .sourcing-hero-actions,
body main .sourcing-contact-actions{gap:12px}

/* Bring the homepage into the same vertical rhythm as the current service pages. */
body.home .sourcing-home .sourcing-hero{padding-top:60px}
body.home .sourcing-home .sourcing-hero h1{
  font-size:clamp(42px,4.7vw,64px) !important;
  line-height:1.1 !important;
  margin:23px 0 !important;
}
body.home .sourcing-home .sourcing-lead{font-size:17px}
body.home .sourcing-home .sourcing-section{padding:76px 0}
body.home .sourcing-home .sourcing-section-head{margin-bottom:32px}
body.home .sourcing-home h2{font-size:clamp(32px,3.3vw,46px)}

/* One content gutter prevents nested .wrap padding from squeezing editorial pages. */
body.home .sourcing-home .wrap,
body .journal-page>.wrap,
body.single-post main>.wrap,
body.single-post .br-related>.wrap{
  width:min(1176px,calc(100% - 64px));
  max-width:none;
  padding-inline:0;
}

body.home .sourcing-home .eyebrow,
body .journal-page .eyebrow,
body.single-post main .eyebrow{font-size:12px;line-height:1.6;letter-spacing:.1em}
body.home .sourcing-home h2{line-height:1.2;letter-spacing:-.025em}
body.home .sourcing-home p{line-height:1.75}
body.home .sourcing-home .sourcing-section-head>p,
body.home .sourcing-home .sourcing-plan p,
body.home .sourcing-home .sourcing-category p,
body.home .sourcing-home .sourcing-process p,
body.home .sourcing-home .sourcing-checks p:not(.sourcing-small),
body.home .sourcing-home .sourcing-visit-price p,
body.home .sourcing-home .sourcing-contact-card p,
body.home .sourcing-home .br-work-card p{font-size:16px;line-height:1.75}
body.home .sourcing-home .sourcing-plan li{font-size:16px;line-height:1.65}
body.home .sourcing-home .br-work-card li{font-size:15px;line-height:1.65}
body.home .sourcing-home .br-example-copy>p{font-size:17px;line-height:1.75}
body.home .sourcing-home .sourcing-area,
body.home .sourcing-home .sourcing-proof span,
body.home .sourcing-home .sourcing-fee-note p,
body.home .sourcing-home .br-work-footnote,
body.home .sourcing-home .sourcing-checks p.sourcing-small{font-size:14px;line-height:1.65}
body.home .sourcing-home .sourcing-category>span{font-size:14px;line-height:1.65}
body.home .sourcing-home .sourcing-category h3,
body.home .sourcing-home .sourcing-local-points h3,
body.home .sourcing-home .sourcing-process h3,
body.home .sourcing-home .br-work-card h3{
  font-size:24px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:-.02em;
  margin-bottom:12px;
}
body.home .sourcing-home .br-work-card h3{margin-top:20px}
body.home .sourcing-home .sourcing-plan h3{font-size:26px;line-height:1.35;letter-spacing:-.02em;margin:24px 0 16px}
body.home .sourcing-home .sourcing-faq summary{font-size:17px;line-height:1.65}
body.home .sourcing-home .sourcing-faq details p{font-size:16px;line-height:1.75;margin-top:12px}

/* Homepage and library cards use identical type and spacing. */
body.home .sourcing-home .journal-grid,
body .journal-page .journal-grid{gap:24px}
body.home .sourcing-home .journal-copy,
body .journal-page .journal-copy{padding:24px}
body.home .sourcing-home .sourcing-guides .journal-copy h2,
body .journal-page .journal-grid .journal-copy h2{
  font-size:24px;
  line-height:1.35;
  letter-spacing:-.02em;
  margin:16px 0;
}
body.home .sourcing-home .journal-copy p,
body .journal-page .journal-copy p{font-size:16px;line-height:1.75;margin:0 0 16px}
body.home .sourcing-home .journal-copy .journal-meta,
body .journal-page .journal-copy .journal-meta{font-size:13px;line-height:1.65;padding-top:16px}
body.home .sourcing-home .journal-copy .journal-read,
body .journal-page .journal-copy .journal-read{font-size:14px;line-height:1.65;margin-top:16px}
body .journal-page .journal-hero{padding-top:56px;padding-bottom:36px}
body .journal-page .journal-hero h1{font-size:clamp(40px,4.4vw,56px);line-height:1.15;letter-spacing:-.025em;margin:20px 0}
body .journal-page .journal-hero p{font-size:18px;line-height:1.75;margin-bottom:0}
body .journal-page .topic-nav{gap:10px;margin-bottom:24px}
body .journal-page .topic-nav a{font-size:14px;line-height:1.5;padding:10px 14px;min-height:44px}
body .journal-page .journal-bar{font-size:13px;line-height:1.65;letter-spacing:.04em;margin-bottom:24px;padding-bottom:16px}

/* Article titles retain hierarchy without overwhelming long guide names. */
body.single-post .article-hero h1{
  font-size:clamp(36px,3.4vw,46px);
  line-height:1.2;
  letter-spacing:-.025em;
  overflow-wrap:break-word;
}
body.single-post .article-deck{font-size:18px;line-height:1.75;margin-bottom:20px}
body.single-post .article-hero .journal-meta{font-size:13px;line-height:1.65}
body.single-post .back-blog{font-size:14px;line-height:1.65;margin-bottom:28px}
body.single-post .article-cover figcaption{font-size:12px;line-height:1.6;letter-spacing:.04em;padding:12px 16px}
body.single-post .article-end{font-size:14px;line-height:1.65;gap:16px;padding-top:24px;padding-bottom:40px}

body.single-post .article-body h2{
  font-size:28px;
  line-height:1.3;
  letter-spacing:-.02em;
  margin:40px 0 16px;
}
body.single-post .article-body h3{
  font-size:22px;
  line-height:1.4;
  letter-spacing:-.01em;
  margin:28px 0 12px;
}
body.single-post .article-body .article-cta h2{margin-top:0}

/* Consistent reading rhythm, with compact but legible tabular data. */
body.single-post .article-body{font-size:17px;line-height:1.75}
body.single-post .article-body p,
body.single-post .article-body li{font-size:17px;line-height:1.75}
body.single-post .article-body p{margin:0 0 18px}
body.single-post .article-body ul,
body.single-post .article-body ol{padding-left:24px;margin:0 0 22px}
body.single-post .article-body li{margin:0 0 8px;padding-left:2px}
body.single-post .article-body li:last-child{margin-bottom:0}
body.single-post .article-body li>ul,
body.single-post .article-body li>ol{margin:8px 0 0}
body.single-post .article-body li>p{margin-bottom:8px}
body.single-post .article-body .source-line{font-size:14px!important;line-height:1.65}
body.single-post .article-body .article-note{font-size:16px!important;line-height:1.75}
body.single-post .article-body table{font-size:15px;line-height:1.6}
body.single-post .article-body th,
body.single-post .article-body td{font-size:inherit;line-height:1.6;padding:14px 16px;vertical-align:top}
body.single-post .article-body table p,
body.single-post .article-body table li{font-size:inherit;line-height:inherit}
body.single-post .article-body td>p:last-child,
body.single-post .article-body td>ul:last-child,
body.single-post .article-body td>ol:last-child{margin-bottom:0}
body.single-post .article-body .table-scroll{max-width:100%;overflow-x:auto;margin:24px 0}

/* Supporting navigation follows the same article type scale. */
body.single-post .article-toc .guide-menu summary{font-size:16px;line-height:1.5;padding:12px 0;font-weight:600}
body.single-post .article-toc .guide-links a{display:block;font-size:14px;line-height:1.65;padding:12px 0;overflow-wrap:break-word}
body.single-post .article-toc .toc-contact{margin-top:16px}
body.single-post .br-related{padding:48px 0}
body.single-post .br-related-head{gap:32px;margin-bottom:24px}
body.single-post .br-related-head h2{font-size:28px;line-height:1.3;letter-spacing:-.02em;margin:14px 0 0}
body.single-post .br-related-head>p{font-size:17px;line-height:1.75}
body.single-post .br-related-grid{gap:20px}
body.single-post .br-related-card{padding:24px}
body.single-post .br-related-type{font-size:12px;line-height:1.5;letter-spacing:.06em}
body.single-post .br-related-card h3{font-size:22px;line-height:1.4;letter-spacing:-.01em;margin:16px 0 24px}
body.single-post .br-related-read,
body.single-post .br-related-email{font-size:14px;line-height:1.65}
body.single-post .br-related-actions{gap:16px 24px;margin-top:24px}

@media(min-width:721px) and (max-width:1000px){
  body.single-post .article-layout{grid-template-columns:minmax(0,1fr);gap:24px}
  body.single-post .article-toc{position:static;border:1px solid var(--line);border-radius:4px;padding:8px 16px}
  body.single-post .article-toc .guide-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
  body.single-post .article-toc .toc-contact{margin-top:0}
}

@media(max-width:720px){
  body.home .sourcing-home .wrap,
  body .journal-page>.wrap,
  body.single-post main>.wrap,
  body.single-post .br-related>.wrap{width:calc(100% - 40px)}
  body.home .sourcing-home .eyebrow,
  body .journal-page .eyebrow,
  body.single-post main .eyebrow{font-size:11px}
  body.home .sourcing-home .sourcing-category h3,
  body.home .sourcing-home .sourcing-local-points h3,
  body.home .sourcing-home .sourcing-process h3,
  body.home .sourcing-home .br-work-card h3{font-size:22px}
  body.home .sourcing-home .sourcing-plan h3{font-size:24px}
  body.home .sourcing-home .sourcing-lead,
  body.home .sourcing-home .sourcing-local-grid>div>p,
  body.home .sourcing-home .sourcing-quality-grid>div>p,
  body.home .sourcing-home .sourcing-visit-grid>div>p,
  body.home .sourcing-home .sourcing-faq-grid>div>p,
  body.home .sourcing-home .sourcing-contact-grid>div>p,
  body.home .sourcing-home .br-example-copy>p{font-size:16px}
  body.home .sourcing-home .journal-grid,
  body .journal-page .journal-grid{gap:16px}
  body.home .sourcing-home .journal-copy,
  body .journal-page .journal-copy{padding:20px}
  body .journal-page .journal-hero{padding-top:36px;padding-bottom:28px}
  body .journal-page .journal-hero h1{font-size:36px;line-height:1.2}
  body .journal-page .journal-hero p,
  body.single-post .article-deck{font-size:16px}
  body .journal-page .topic-nav{gap:8px}
  body .journal-page .journal-bar{gap:8px}
  body.single-post .article-layout{padding-top:24px;padding-bottom:40px;gap:24px}
  body.single-post .article-toc{padding:8px 16px}
  body.single-post .article-toc .guide-menu{width:100%;min-width:0}
  body.single-post .article-toc .guide-links a{font-size:14px;padding:12px 0}
  body.single-post .br-related{padding:36px 0}
  body.single-post .br-related-head{gap:16px;margin-bottom:20px}
  body.single-post .br-related-head h2{font-size:24px}
  body.single-post .br-related-head>p{font-size:16px}
  body.single-post .br-related-grid{gap:16px}
  body.single-post .br-related-card{padding:20px}
  body.single-post .br-related-card h3{font-size:20px;margin:14px 0 20px}
  body.single-post .br-related-actions{margin-top:20px}
  body.single-post .article-body,
  body.single-post .article-body p,
  body.single-post .article-body li{font-size:16px;line-height:1.75}
  body.single-post .article-body p{margin-bottom:16px}
  body.single-post .article-body table{font-size:14px}
  body.single-post .article-body table p,
  body.single-post .article-body table li{font-size:inherit;line-height:inherit}
  body.single-post .article-body th,
  body.single-post .article-body td{padding:12px}
  body.single-post .article-body h2{font-size:24px;margin:32px 0 14px}
  body.single-post .article-body h3{font-size:20px;margin:24px 0 10px}
  body.single-post .article-hero h1{font-size:30px;line-height:1.25}
  body main .btn,
  body main button.btn,
  body main input[type="submit"].btn,
  body main input[type="button"].btn{
    padding:14px 16px !important;
    gap:12px !important;
    font-size:clamp(13px,3.6vw,14px) !important;
  }
  body.home .sourcing-home .sourcing-hero{padding-top:37px}
  body.home .sourcing-home .sourcing-hero h1{font-size:37.44px !important}
  body.home .sourcing-home .sourcing-section{padding:50px 0}
  body.home .sourcing-home .sourcing-section-head{margin-bottom:25px}
  body.home .sourcing-home h2{font-size:32px}
  body.home .sourcing-home .sourcing-guides .journal-copy h2,
  body .journal-page .journal-grid .journal-copy h2{font-size:22px}
}

@media(max-width:360px){
  body.home .sourcing-home .wrap,
  body .journal-page>.wrap,
  body.single-post main>.wrap,
  body.single-post .br-related>.wrap{width:calc(100% - 32px)}
}

@media(prefers-reduced-motion:reduce){body main .btn{transition:none!important}}
