/* Signature 1.2.1: fluid page geometry and natural reflow at browser zoom. */
:root {
    --zb-page-width: 1800px;
    --zb-page-gutter: clamp(18px, 2.5vw, 48px);
    --zb-card-gap: clamp(14px, 1.15vw, 22px);
}
body { background: #f8f8f4; }
.zbsr-shell,
.zb-site-main,
.zb-footer-inner,
.zb-footer-bottom {
    width: calc(100% - var(--zb-page-gutter) * 2);
    max-width: var(--zb-page-width);
    margin-inline: auto;
    padding-inline: 0;
}
.zb-site-main { padding-top: 22px; padding-bottom: 64px; }
.zb-site-footer {
    padding: 48px 0 24px;
    background: #edf1e7;
    border-top-color: #dce5d4;
}
.zb-footer-inner { gap: clamp(28px, 4vw, 80px); }
.zb-footer-inner p { font: 14px/1.8 var(--zbsr-sans); color: #58674f; }
.zb-footer-inner h2 { font-size: 23px; margin-bottom: 18px; }
.zb-footer-inner li { margin-block: 10px; }
.zb-footer-bottom { margin-top: 32px; padding-top: 20px; }
.zbsr-header { box-shadow: 0 6px 24px #193d2209; }
.zbsr-topbar { min-height: 108px; gap: clamp(22px, 2.3vw, 44px); }
.zbsr-search { height: 54px; border-radius: 12px; }
.zbsr-search button { height: 44px; border-radius: 9px; }
.zbsr-search input { font-size: 14px; }
.zbsr-action { min-height: 44px; justify-content: center; }
.zbsr-publish { min-height: 48px; padding-inline: 22px; border-radius: 10px; }
.zbsr-navigation { min-height: 62px; gap: clamp(4px, .45vw, 9px); }
.zbsr-dropdown summary { min-height: 44px; }
.zbsr-mega-panel { left: 0; right: 0; padding: 30px 34px; border-radius: 0 0 18px 18px; }
.zbsr-group-dropdown:nth-of-type(n+6) .zbsr-group-panel { right: 0; }
.zbsr-panel { max-height: calc(100dvh - 240px); }
.zbsr-mega-grid { gap: 30px 40px; }
.zbsr-mega-group li a { padding-block: 7px; }
.zbsr-brand, .zbsr-actions, .zb-card, .zb-home-columns > section,
.zb-request-list article > div, .zb-benefits article > div { min-width: 0; }

.zb-home .zb-hero {
    min-height: clamp(440px, 30.5vw, 560px);
    aspect-ratio: auto;
    border-radius: 18px;
    background-position: center;
    box-shadow: 0 14px 36px #1f3b2212;
}
.zb-home .zb-hero::before {
    background: linear-gradient(90deg, #102317e8 0%, #142517b8 30%, #182c1733 55%, transparent 72%);
}
.zb-home .zb-hero-copy {
    width: 57%;
    max-width: 960px;
    padding: clamp(36px, 3.3vw, 64px) clamp(32px, 4vw, 76px) 96px;
}
.zb-home .zb-hero .zb-eyebrow {
    display: block;
    font: 600 11px/1.5 var(--zbsr-sans);
    letter-spacing: 2.2px;
    margin-bottom: 18px;
}
.zb-home .zb-hero h1 {
    font-size: clamp(40px, 3.45vw, 64px);
    line-height: 1.035;
    letter-spacing: -1.6px;
    margin: 0 0 22px;
    text-wrap: pretty;
}
.zb-home .zb-hero-copy > p:not(.zb-eyebrow) {
    font-size: clamp(17px, 1.25vw, 22px);
    line-height: 1.5;
    margin-bottom: 28px;
    color: #f4f4eb;
}
.zb-home .zb-hero-actions { gap: 12px; align-items: stretch; }
.zb-home .zb-hero-actions .zb-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 14px 20px;
    border-radius: 10px;
    font: 650 13px/1.4 var(--zbsr-sans);
    box-shadow: 0 4px 14px #10271920;
}
.zb-home .zb-hero-trust {
    left: clamp(32px, 4vw, 76px);
    right: 24px;
    bottom: 25px;
    gap: 12px 25px;
    flex-wrap: wrap;
    font: 500 11px/1.5 var(--zbsr-sans);
}
.zb-home .zb-hero-trust > span { display: inline-flex; gap: 7px; align-items: center; }
.zb-home .zb-hero-trust .zbsr-icon { width: 18px; height: 18px; }
.zb-home .zb-shortcuts { gap: var(--zb-card-gap); margin: 28px 0 42px; }
.zb-home .zb-shortcut {
    border-radius: 15px;
    border-color: #e1e7da;
    box-shadow: 0 5px 18px #223f1906;
}
.zb-home .zb-shortcut .zb-photo { height: clamp(145px, 9.6vw, 184px); }
.zb-home .zb-shortcut .zb-card-body { padding: 32px 20px 20px; min-height: 142px; }
.zb-home .zb-shortcut .zb-round { left: 18px; width: 52px; height: 52px; }
.zb-home .zb-shortcut h2 { font-size: clamp(18px, 1.2vw, 23px); line-height: 1.16; letter-spacing: -.35px; margin-bottom: 10px; }
.zb-home .zb-shortcut p { font-size: 12px; line-height: 1.6; color: #5c6b54; }
.zb-home .zb-shortcut-arrow { right: 17px; top: 34px; }
.zb-home section { margin-bottom: 42px; }
.zb-home .zb-heading { margin: 0 0 20px; gap: 16px; align-items: baseline; }
.zb-home .zb-heading h2 { font-size: clamp(25px, 2vw, 34px); letter-spacing: -.65px; }
.zb-home .zb-heading > a { font: 550 12px/1.5 var(--zbsr-sans); }
.zb-home .zb-carousel { gap: var(--zb-card-gap); padding-bottom: 12px; }
.zb-home .zb-category-carousel > .zb-card { flex-basis: calc((100% - var(--zb-card-gap) * 7) / 8); border-radius: 13px; }
.zb-home .zb-category-carousel .zb-photo { height: clamp(120px, 8.3vw, 160px); }
.zb-home .zb-category-carousel .zb-card-body { padding: 16px; }
.zb-home .zb-category-carousel h3 { font-size: 16px; }
.zb-home .zb-category-carousel .zb-meta { margin-bottom: 0; }
.zb-home .zb-listing-carousel > .zb-card { flex-basis: calc((100% - var(--zb-card-gap) * 5) / 6); }
.zb-home .zb-carousel-prev, .zb-home .zb-carousel-next { width: 42px; height: 42px; font-size: 29px; }
.zb-home .zb-carousel-prev { left: -14px; }
.zb-home .zb-carousel-next { right: -14px; }
.zb-home .zb-home-columns { gap: 32px; }
.zb-home .zb-home-columns .zb-heading h2 { font-size: clamp(24px, 1.7vw, 30px); }
.zb-home .zb-empty { padding: 32px; background: #fff; border-style: solid; border-color: #e2e8da; }
.zb-home .zb-benefits { gap: var(--zb-card-gap); }
.zb-home .zb-benefits article { padding: 20px 16px; border: 1px solid #e4e9de; border-radius: 13px; align-items: flex-start; }
.zb-home .zb-benefits h3 { font-size: 16px; margin: 2px 0 8px; }
.zb-home .zb-benefits p { font: 12px/1.6 var(--zbsr-sans); }
.zb-request-list h3, .zb-heading h2 { overflow-wrap: anywhere; }
.zb-home .zb-all-categories { border-radius: 13px; border-color: #dce5d2; padding: 20px 24px; }

@media (min-width: 1500px) {
    .zbsr-dropdown summary { font-size: 13px; padding-inline: 17px; }
    .zbsr-brand .zb-logo strong { font-size: 34px; }
    .zbsr-request-link { font-size: 12px; }
    .zb-listing-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
}
@media (min-width: 1101px) and (max-width: 1320px) {
    .zbsr-topbar { gap: 20px; }
    .zbsr-publish { padding-inline: 12px; }
    .zbsr-navigation { gap: 3px; }
}
@media (max-width: 1400px) {
    .zb-home .zb-category-carousel > .zb-card { flex-basis: calc((100% - var(--zb-card-gap) * 5) / 6); }
    .zb-home .zb-listing-carousel > .zb-card { flex-basis: calc((100% - var(--zb-card-gap) * 3) / 4); }
}
/* Keep this breakpoint in sync with navigation.js. Zoom changes CSS viewport width. */
@media (max-width: 1100px) {
    .zbsr-topbar { min-height: 0; gap: 15px; }
    .zbsr-search { height: 50px; }
    .zbsr-search button { height: 40px; }
    .zbsr-navigation { min-height: 0; max-height: min(70dvh, 650px); }
    .zbsr-panel { max-height: none; }
    .zbsr-mega-panel { padding: 22px 8px; }
    .zbsr-mega-grid { gap: 24px; }
    .zbsr-group-dropdown:nth-of-type(n+6) .zbsr-group-panel { right: auto; }
    .zb-site-main { padding-top: 18px; }
    .zb-home .zb-hero { min-height: 420px; background-position: 62% center; }
    .zb-home .zb-hero-copy { width: 63%; padding: 30px 30px 85px; }
    .zb-home .zb-hero h1 { font-size: clamp(33px, 3.9vw, 43px); letter-spacing: -.9px; }
    .zb-home .zb-hero-copy > p:not(.zb-eyebrow) { font-size: 17px; margin-bottom: 22px; }
    .zb-home .zb-hero-actions .zb-button { font-size: 12px; padding: 12px 14px; min-height: 46px; }
    .zb-home .zb-hero-trust { left: 30px; bottom: 20px; gap: 10px 17px; }
    .zb-home .zb-shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .zb-home .zb-shortcut .zb-card-body { padding-inline: 18px; }
    .zb-home .zb-category-carousel > .zb-card { flex-basis: calc((100% - var(--zb-card-gap) * 3) / 4); }
    .zb-home .zb-category-carousel .zb-photo { height: 145px; }
    .zb-home .zb-listing-carousel > .zb-card { flex-basis: calc((100% - var(--zb-card-gap) * 2) / 3); }
    .zb-home .zb-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .zb-home .zb-hero, .zb-home .zb-hero-custom { min-height: 0; background-size: auto 285px; background-position: 70% top; border-radius: 14px; }
    .zb-home .zb-hero::before { background: linear-gradient(0deg, #172b1c 0%, #172b1c calc(100% - 238px), #172b1c00 calc(100% - 285px)); }
    .zb-home .zb-hero-copy { width: 100%; max-width: none; padding: 278px 24px 24px; }
    .zb-home .zb-hero .zb-eyebrow { display: none; }
    .zb-home .zb-hero h1 { font-size: clamp(31px, 5.5vw, 40px); line-height: 1.07; letter-spacing: -.7px; margin-bottom: 18px; }
    .zb-home .zb-hero-copy > p:not(.zb-eyebrow) { font-size: 16px; margin-bottom: 24px; }
    .zb-home .zb-hero-copy > p > br { display: none; }
    .zb-home .zb-hero-trust { position: static; padding: 0 24px 25px; gap: 10px 17px; font-size: 10px; }
    .zb-home .zb-hero-trust .zbsr-icon { width: 16px; height: 16px; }
    .zb-home .zb-shortcuts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 22px 0 32px; }
    .zb-home .zb-shortcut .zb-photo { height: clamp(120px, 24vw, 180px); }
    .zb-home .zb-shortcut .zb-card-body { padding: 28px 14px 17px; min-height: 144px; }
    .zb-home .zb-shortcut h2 { font-size: 18px; padding-right: 5px; }
    .zb-home .zb-shortcut p { padding-right: 0; font-size: 11px; }
    .zb-home .zb-shortcut .zb-round { left: 11px; width: 46px; height: 46px; top: -25px; }
    .zb-home .zb-shortcut-arrow { right: 11px; top: 31px; width: 15px; height: 15px; }
    .zb-home .zb-category-carousel > .zb-card { flex-basis: clamp(155px, 40vw, 210px); }
    .zb-home .zb-listing-carousel > .zb-card { flex-basis: clamp(210px, 68vw, 290px); }
    .zb-home .zb-category-carousel .zb-photo { height: 130px; }
    .zb-home .zb-category-carousel .zb-card-body { padding: 13px; }
    .zb-home .zb-heading { align-items: center; margin-bottom: 17px; gap: 12px; }
    .zb-home .zb-heading h2 { font-size: 25px; }
    .zb-home .zb-heading > a { font-size: 11px; max-width: 36%; white-space: normal; text-align: right; flex-shrink: 0; }
    .zb-home .zb-heading > a span { padding-left: 4px; }
    .zb-home section { margin-bottom: 32px; }
    .zb-home .zb-home-columns { gap: 0; }
    .zb-home .zb-empty { padding: 26px 20px; }
    .zb-home .zb-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .zb-home .zb-benefits article { display: block; padding: 17px 14px; }
    .zb-home .zb-benefits .zb-round { margin-bottom: 13px; }
    .zb-home .zb-benefits h3 { font-size: 16px; }
    .zb-home .zb-all-categories { padding: 17px; }
    .zb-site-footer { padding-top: 34px; }
}
@media (max-width: 400px) {
    :root { --zb-page-gutter: 16px; }
    .zbsr-publish { min-height: 42px; padding-inline: 9px; }
    .zbsr-search input { font-size: 16px; }
    .zb-home .zb-hero-copy { padding-inline: 20px; }
    .zb-home .zb-hero-actions { flex-direction: column; align-items: stretch; }
    .zb-home .zb-hero-actions .zb-button { width: 100%; font-size: 12px; }
    .zb-home .zb-hero-trust { padding-inline: 20px; }
    .zb-home .zb-heading h2 { font-size: 23px; }
    .zb-home .zb-shortcut h2 { font-size: 17px; }
    .zb-home .zb-shortcut .zb-card-body { min-height: 151px; }
}
@media (prefers-reduced-motion: reduce) {
    .zb-home .zb-shortcut:hover, .zb-home .zb-category-carousel > .zb-card:hover { transform: none; }
}
