/* Homepage components. Header, footer, font stack and colour tokens come from layouts.site. */
.home-content { min-width:0; padding-bottom:0; }
.home-content h1,.home-content h2,.home-content h3,.home-content p { margin:0; }
.home-content .icon { width:20px; height:20px; vertical-align:middle; }
.home-content .hero { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr); gap:64px; padding:50px 0 46px; }
.home-content .eyebrow { margin-bottom:12px; font-size:11px; line-height:1.5; font-weight:750; letter-spacing:.1em; }
/* Match .page-intro h1 and its mobile rule in the category stylesheet. */
.home-content .hero h1 { margin:12px 0 15px; font-size:clamp(42px,4.4vw,60px); line-height:1.02; letter-spacing:-.048em; font-weight:760; }
.home-content .hero-description,.home-content .hero-help p { max-width:820px; color:var(--muted); font-size:16px; line-height:1.6; }
.home-content .search-form { margin:26px 0 0; }
.home-content .search-control { display:flex; align-items:center; min-height:56px; border:1px solid #afb6c1; border-radius:4px; background:#fff; overflow:hidden; }
.home-content .search-control>.icon { margin-left:18px; color:#6a707b; flex:0 0 auto; }
.home-content .search-control input { flex:1; min-width:0; width:0; height:54px; padding:0 14px; border:0; outline:0; color:var(--ink); background:transparent; font-size:15px; }
.home-content .search-control input::placeholder { color:#777d88; }
.home-content .search-control:focus-within { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.home-content .search-control .button { align-self:stretch; min-height:56px; padding:0 26px; border:0; border-radius:0; font-size:14px; font-weight:750; }
.home-content .search-hint { margin-top:8px; color:var(--muted); font-size:11px; line-height:1.5; }
.home-content .hero-links { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:20px; }
.home-content .text-link { display:inline-flex; align-items:center; gap:8px; color:var(--accent); font-size:12px; line-height:1.5; font-weight:700; }
.home-content .text-link:hover { text-decoration:underline; text-underline-offset:3px; }
.home-content .hero-links .text-link { min-height:40px; }
.home-content .hero-links .text-link+.text-link { padding-left:20px; border-left:1px solid var(--line); }
.home-content .hero-help { align-self:start; margin-top:4px; padding-top:24px; border-top:2px solid var(--ink); }
.home-content .hero-help h2 { margin:0 0 16px; font-size:30px; line-height:1.12; letter-spacing:-.03em; font-weight:700; }
.home-content .hero-help p { margin-bottom:24px; }
.home-content .hero-help .button { width:100%; min-height:48px; font-size:13px; }
.home-content .button--outline { color:var(--accent); border:1px solid var(--accent); background:#fff; }
.home-content .button--outline:hover { background:var(--wash); }
.home-content .ruled-section { padding-bottom:32px; border-top:2px solid var(--ink); }
.home-content .section-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:26px 0; }
/* Match the category directory's heading scale. */
.home-content .section-heading h2 { font-size:30px; line-height:1.12; letter-spacing:-.03em; font-weight:700; }
.home-content .section-heading>.text-link { flex-shrink:0; }
.home-content .category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); }
.home-content .category-card { display:grid; grid-template-columns:160px minmax(0,1fr) 20px; align-items:center; gap:24px; min-width:0; min-height:174px; padding:12px 20px 12px 0; border-bottom:1px solid var(--line); background:#fff; }
.home-content .category-card:nth-child(even) { padding-left:24px; border-left:1px solid var(--line); }
.home-content .category-card img { display:block; width:160px; height:148px; object-fit:contain; }
.home-content .category-card>span { font-size:14px; line-height:1.35; font-weight:680; }
.home-content .category-card>span>span { display:block; }
.home-content .category-card:hover { color:var(--accent); background:var(--wash); }
.home-content .brand-grid { display:grid; grid-template-columns:1.15fr 1.6fr 1.35fr 1.2fr 1fr 1.2fr; align-items:center; padding:4px 0; }
.home-content .brand-grid>a { display:flex; align-items:center; justify-content:center; min-width:0; height:60px; padding:8px 26px; border-left:1px solid var(--line); }
.home-content .brand-grid>a:first-child { padding-left:0; border-left:0; overflow:hidden; }
.home-content .brand-grid>a:last-child { padding-right:0; }
.home-content .brand-grid img { display:block; width:100%; max-height:38px; object-fit:contain; }
.home-content .brand-grid>a:first-child img { width:200%; max-width:none; max-height:none; flex-shrink:0; }
.home-content .product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.home-content .product-card { display:flex; flex-direction:column; min-width:0; width:auto; max-width:100%; padding:0; margin:0; gap:0; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:#fff; }
.home-content .product-card:hover { border-color:#b8c5d8; }
.home-content .product-main { display:block; flex:1; min-width:0; padding:18px 20px; }
.home-content .product-image { display:flex; align-items:center; justify-content:center; height:190px; margin-bottom:16px; }
.home-content .product-image img { display:block; width:100%; height:100%; object-fit:contain; }
.home-content .product-brand { margin-bottom:8px; color:var(--accent); font-size:10px; line-height:1.5; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.home-content .product-card h3 { margin:0; color:var(--ink); font-size:18px; line-height:1.3; letter-spacing:normal; font-weight:720; overflow-wrap:anywhere; }
.home-content .product-type,.home-content .product-article { margin-top:8px; color:var(--muted); font-size:12px; line-height:1.55; }
.home-content .product-article { margin-top:2px; font-size:11px; }
.home-content .product-actions { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px 12px; padding:12px 18px; border-top:1px solid var(--line); }
.home-content .product-actions a { display:inline-flex; align-items:center; gap:7px; min-height:36px; color:var(--accent); font-size:11px; line-height:1.5; font-weight:700; }
.home-content .product-actions a:hover { text-decoration:underline; }
.home-content .product-actions .icon { width:16px; height:16px; }
.home-content .quote-banner { display:flex; align-items:center; gap:24px; margin:0 0 32px; padding:24px; border-radius:4px; background:#f3f7ff; }
.home-content .quote-icon { display:flex; padding-right:24px; border-right:1px solid #cbd6e6; color:var(--accent); }
.home-content .quote-icon>.icon { width:36px; height:36px; }
.home-content .quote-copy { flex:1; }
.home-content .quote-copy h2 { margin-bottom:8px; font-size:28px; line-height:1.15; letter-spacing:-.03em; font-weight:700; }
.home-content .quote-copy p { color:var(--muted); font-size:13px; line-height:1.6; }
.home-content .quote-actions { display:flex; flex-direction:column; align-items:center; gap:10px; }
.home-content .quote-actions .button { min-width:220px; min-height:46px; font-size:12px; }
.home-content .quote-actions .text-link { font-size:11px; }
.home-content .knowledge-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.home-content .knowledge-card { display:flex; flex-direction:column; align-items:flex-start; min-width:0; min-height:0; height:auto; padding:0 26px; border-left:1px solid var(--line); }
.home-content .knowledge-card:first-child { border-left:0; padding-left:0; }
.home-content .knowledge-card:last-child { padding-right:0; }
.home-content .knowledge-card>.icon { width:28px; height:28px; margin-bottom:16px; color:var(--accent); }
.home-content .knowledge-card h3 { margin-bottom:16px; font-size:18px; line-height:1.32; letter-spacing:normal; font-weight:700; }
.home-content .knowledge-card .text-link { min-height:36px; margin-top:auto; }
.homepage-unified .category-dialog { width:530px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--ink); box-shadow:0 24px 80px #10254d40; }
.homepage-unified .category-dialog::backdrop { background:#0b172867; }
.homepage-unified.home-dialog-open { overflow:hidden; }
.homepage-unified .category-dialog .dialog-inner { padding:26px; }
.homepage-unified .category-dialog .dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.homepage-unified .category-dialog h2 { margin:0; font-size:24px; line-height:1.2; font-weight:700; letter-spacing:-.03em; }
.homepage-unified .category-dialog .icon-button { display:grid; place-items:center; flex:0 0 auto; width:40px; height:40px; padding:8px; border:1px solid var(--line); border-radius:4px; background:var(--wash); cursor:pointer; }
.homepage-unified .category-dialog .dialog-intro { margin:12px 0 24px; color:var(--muted); font-size:13px; line-height:1.6; }
.homepage-unified .category-dialog .dialog-links { display:flex; flex-direction:column; margin-bottom:20px; border-top:1px solid var(--line); }
.homepage-unified .category-dialog .dialog-links>a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:12px 0; border-bottom:1px solid var(--line); font-size:14px; font-weight:650; }
.home-content :is(a,button,input):focus-visible,.homepage-unified .category-dialog :is(a,button):focus-visible { outline:3px solid #3977cd; outline-offset:4px; }
@media(max-width:1100px) {
 .home-content .hero { gap:36px; }
 .home-content .category-card { grid-template-columns:130px minmax(0,1fr) 20px; gap:18px; }
 .home-content .category-card img { width:130px; height:134px; }
 .home-content .brand-grid>a { padding-inline:18px; }
 .home-content .product-image { height:160px; }
 .home-content .quote-copy h2 { font-size:24px; }
 .home-content .quote-actions .button { min-width:190px; }
}
@media(max-width:760px) {
 .home-content .hero { display:block; padding:38px 0 34px; }
 .home-content .hero h1 { font-size:38px; }
 .home-content .hero-description,.home-content .hero-help p { font-size:16px; line-height:1.6; }
 .home-content .search-form { margin-top:22px; }
 .home-content .search-control input { padding-inline:10px; font-size:16px; }
 .home-content .search-control>.icon { margin-left:12px; width:18px; height:18px; }
 .home-content .search-control .button { padding-inline:18px; font-size:12px; }
 .home-content .hero-links { gap:8px 18px; margin-top:16px; }
 .home-content .hero-links .text-link+.text-link { border-left:0; padding-left:0; }
 .home-content .hero-help { margin-top:24px; padding-top:24px; border-top-width:1px; }
 .home-content .hero-help h2 { font-size:30px; }
 .home-content .desktop-break { display:none; }
 .home-content .ruled-section { padding-bottom:28px; }
 .home-content .section-heading { align-items:flex-start; flex-wrap:wrap; gap:12px 20px; padding:24px 0; }
 .home-content .section-heading h2 { font-size:30px; }
 .home-content .section-heading>.text-link { min-height:32px; }
 .home-content .category-grid { grid-template-columns:1fr; }
 .home-content .category-card,.home-content .category-card:nth-child(even) { grid-template-columns:100px minmax(0,1fr) 20px; gap:16px; min-height:128px; padding:10px 0; border-left:0; }
 .home-content .category-card img { width:100px; height:106px; }
 .home-content .brand-grid { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:16px; }
 .home-content .brand-grid>a,.home-content .brand-grid>a:first-child,.home-content .brand-grid>a:last-child { height:44px; padding:6px 16px; }
 .home-content .brand-grid>a:nth-child(3n+1) { border-left:0; }
 .home-content .brand-grid img { max-height:30px; }
 .home-content .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .home-content .product-main { padding:12px; }
 .home-content .product-image { height:140px; margin-bottom:12px; }
 .home-content .product-card h3 { font-size:14px; }
 .home-content .product-type { font-size:11px; }
 .home-content .product-actions { flex-direction:column; align-items:stretch; gap:0; padding:4px 12px; }
 .home-content .product-actions a { justify-content:space-between; min-height:40px; font-size:11px; }
 .home-content .product-actions a+a { border-top:1px solid var(--line); }
 .home-content .quote-banner { display:grid; grid-template-columns:30px minmax(0,1fr); gap:16px; margin-bottom:28px; padding:20px; align-items:start; }
 .home-content .quote-icon { padding:0; border-right:0; }
 .home-content .quote-icon>.icon { width:30px; height:30px; }
 .home-content .quote-copy h2 { font-size:24px; }
 .home-content .quote-actions { grid-column:1/-1; }
 .home-content .quote-actions .button { width:100%; min-width:0; min-height:48px; font-size:13px; }
 .home-content .knowledge-grid { grid-template-columns:1fr; }
 .home-content .knowledge-card,.home-content .knowledge-card:first-child,.home-content .knowledge-card:last-child { display:grid; grid-template-columns:28px minmax(0,1fr); grid-template-rows:auto auto; align-content:start; gap:12px 16px; padding:22px 0; border-left:0; border-bottom:1px solid var(--line); }
 .home-content .knowledge-card:first-child { padding-top:0; }
 .home-content .knowledge-card:last-child { padding-bottom:0; border-bottom:0; }
 .home-content .knowledge-card>.icon { margin:0; grid-row:1/3; }
 .home-content .knowledge-card h3 { margin:0; font-size:18px; }
 .home-content .knowledge-card .text-link { grid-column:2; }
 .homepage-unified .category-dialog .dialog-inner { padding:20px; }
}
@media(max-width:370px) {
 .home-content .hero h1 { font-size:34px; }
 .home-content .search-control input { padding-inline:8px; }
 .home-content .search-control .button { padding-inline:14px; }
 .home-content .category-card,.home-content .category-card:nth-child(even) { grid-template-columns:80px minmax(0,1fr) 18px; gap:12px; }
 .home-content .category-card img { width:80px; height:96px; }
 .home-content .product-grid { grid-template-columns:1fr; }
 .home-content .product-image { height:190px; }
 .home-content .product-card h3 { font-size:14px; }
 .home-content .product-actions { flex-direction:row; gap:10px; }
 .home-content .product-actions a+a { border-top:0; }
 .home-content .brand-grid>a { padding-inline:8px; }
}
