/* Shared page structure. Component-specific cards/forms retain their own CSS. */
.site-page{--cc-gutter:clamp(20px,3vw,40px)}
.site-page .site-header{height:auto;display:block;padding:0;border-bottom:1px solid var(--cc-border);background:var(--cc-surface)}
.shell-header-inner{max-width:var(--cc-container);margin:auto;padding:14px var(--cc-gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px}
.site-page .brand{display:inline-flex;align-items:center;gap:9px;font:750 21px/1.2 var(--cc-font-body);letter-spacing:-.8px;text-decoration:none;white-space:nowrap}.site-page .brand .cc-icon{width:27px;height:27px;stroke-width:1.75;color:var(--cc-accent)}
.site-page .site-header nav{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.site-page .site-header nav a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 10px;border-radius:var(--cc-radius-sm);font-size:14px;text-decoration:none;white-space:nowrap;color:var(--cc-muted)}.site-page .site-header nav .cc-icon{width:17px;height:17px}.site-page .site-header nav a:hover{background:var(--cc-raised);color:var(--cc-text)}.site-page .site-header nav a[aria-current=page]{color:var(--cc-text);background:var(--cc-accent-soft);font-weight:650}
.site-page .site-main{max-width:var(--cc-container);margin:0 auto;padding:0 var(--cc-gutter) 56px;min-height:55vh}
.breadcrumbs{padding:20px 0 0;font-size:14px;line-height:1.6;color:var(--cc-muted)}.breadcrumbs ol{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;list-style:none;margin:0;padding:0}.breadcrumbs li{min-width:0;overflow-wrap:anywhere}.breadcrumbs li+li::before{content:"/";margin-right:10px;color:var(--cc-subtle)}.breadcrumbs a{text-underline-offset:3px}.breadcrumbs [aria-current]{color:var(--cc-text)}
.site-page .page-intro{max-width:950px;padding:26px 0 18px;margin:0}.site-page .page-intro h1{font:400 clamp(34px,4.6vw,56px)/1.08 var(--cc-font-display);letter-spacing:-.045em;margin:0 0 14px;overflow-wrap:break-word}.site-page .page-intro .eyebrow{font-size:12px;line-height:1.5;letter-spacing:.13em;font-weight:650;margin:0 0 12px;color:var(--cc-accent)}.site-page .page-intro p:not(.eyebrow){font-size:16px;line-height:1.65;color:var(--cc-muted);max-width:72ch;margin:0 0 10px}.site-page .page-intro .page-meta{font-size:14px!important;margin:12px 0 0!important;color:var(--cc-muted)}
.site-page .route-summary{margin:0 0 16px;padding:12px 0;border-block:1px solid var(--cc-border);font-size:14px;line-height:1.6;color:var(--cc-muted)}.site-page .page-links{margin:0 0 12px;font-size:14px;line-height:1.6;display:flex;gap:10px 22px;flex-wrap:wrap}
.site-page :is(.catalog-section,.brands-section,.laboratories-section,.resources-section,.tools-section,.comparison-panel,.section-shell){padding:20px 0 0;scroll-margin-top:20px}.site-page .section-heading{margin-bottom:20px}.site-page .section-heading h2{font-size:32px}.site-page .section-heading>p{font-size:14px;line-height:1.6}.site-page .lab-intro{font-size:15px;line-height:1.7;max-width:85ch;margin:0 0 22px}
.site-page .destination-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:12px 0 32px}.site-page .destination-card{border:1px solid var(--cc-border);border-radius:var(--cc-radius-md);background:var(--cc-surface);padding:24px;display:flex;flex-direction:column;text-decoration:none;min-width:0;box-shadow:var(--cc-shadow-sm);transition:border-color var(--cc-duration),box-shadow var(--cc-duration)}.site-page .destination-card h2{font:600 22px/1.25 var(--cc-font-body);letter-spacing:-.03em;margin:0 0 12px}.site-page .destination-card p{font-size:15px;line-height:1.65;color:var(--cc-muted);margin:0 0 20px}.site-page .destination-card>span:last-child{font-size:14px;font-weight:600;margin-top:auto}.site-page .destination-card:hover{border-color:var(--cc-accent);box-shadow:var(--cc-shadow-md)}.tools-directory .tool-card-icon{margin:0 0 16px;align-self:flex-start}
.site-page .tool-route{max-width:900px;margin:4px 0 28px}.site-page .tool-route .tool{min-width:0}.product-footer a.watch-price-button{display:block;text-decoration:underline}.site-page .home-destinations{margin-top:24px}.home-page .site-main{padding-bottom:36px}
.utility-page .site-main{max-width:1080px;padding-top:0}.reviewer-shell .site-main>h1{font:400 clamp(34px,5vw,50px)/1.1 var(--cc-font-display);letter-spacing:-.04em}.site-page .submission-page{padding-top:0}.site-page .submission-intro{padding-top:26px}.site-page .submission-layout{margin-top:8px}
@media(max-width:1080px){.site-page .site-header nav .cc-icon{display:none}.shell-header-inner{gap:14px}.site-page .site-header nav a{padding-inline:9px}.site-page .destination-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.shell-header-inner{align-items:flex-start;flex-direction:column;gap:10px;padding-block:16px 10px}.site-page .site-header nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;width:100%}.site-page .site-header nav a{min-width:0;padding-inline:5px;font-size:14px}.shell-footer-inner{grid-template-columns:1fr}.site-page .site-footer nav{gap:12px 20px}.site-page .page-intro{padding-top:22px}.breadcrumbs{padding-top:16px}}
@media(max-width:520px){.site-page .site-header nav{grid-template-columns:repeat(3,minmax(0,1fr))}.site-page .destination-grid{grid-template-columns:1fr;gap:14px}.site-page .destination-card{padding:20px}.site-page .site-main{padding-bottom:36px}.site-page .page-intro h1{font-size:36px}.site-page .page-intro p:not(.eyebrow){font-size:16px}.site-page .page-intro{padding-bottom:14px}.site-page .page-links{gap:8px 18px}.site-page .route-summary{font-size:14px}.utility-page .site-header nav{display:flex;justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Keep the shared wordmark distinct from the retired italic tagline. */
.site-page .footer-brand span{display:inline;margin:0;font:inherit;letter-spacing:inherit;color:inherit}

/* A centered composition: identity, balanced navigation, then policies. */
.site-page .site-footer{display:block;width:100%;max-width:none;padding:0;margin:0;border-top:1px solid var(--cc-border);background:var(--cc-surface)}
.site-footer .shell-footer-inner{display:block;width:100%;max-width:1040px;margin-inline:auto;padding:36px var(--cc-gutter) 20px;text-align:center}
.footer-top{display:grid;grid-template-columns:1fr;gap:28px;padding-bottom:28px}
.footer-identity{width:100%;max-width:600px;margin-inline:auto}
.site-page .footer-brand{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;font:700 24px/1.25 var(--cc-font-body);letter-spacing:-.8px}
.footer-brand .cc-icon{width:28px;height:28px;color:var(--cc-accent)}
.site-page .footer-brand span{display:inline;margin:0;font:inherit;letter-spacing:inherit;color:inherit}
.site-page .site-footer p{margin:0;font:400 14px/1.7 var(--cc-font-body);color:var(--cc-muted)}
.site-page .site-footer .footer-tagline{margin:12px 0 6px;color:var(--cc-text);font-weight:600}
.site-page .site-footer .footer-description{max-width:56ch;margin-inline:auto}
.site-footer .footer-contact{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin-top:4px;text-decoration:none;font-size:14px;color:var(--cc-accent);font-weight:600}.footer-contact .cc-icon{width:16px;height:16px}
.site-page .site-footer .footer-navigation{display:grid;width:100%;max-width:760px;margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.footer-column h2{font:650 13px/1.5 var(--cc-font-body);letter-spacing:.035em;margin:0 0 8px;color:var(--cc-text)}
.footer-column ul{list-style:none;margin:0;padding:0}.footer-column li{margin:0}
.site-footer .footer-column a{display:flex;align-items:center;justify-content:center;min-height:36px;padding:5px 0;color:var(--cc-muted);font:400 14px/1.5 var(--cc-font-body);text-decoration:none;overflow-wrap:anywhere}
.site-footer a:hover{color:var(--cc-accent);text-decoration:underline;text-underline-offset:4px}.site-footer a:focus-visible{outline:2px solid var(--cc-focus);outline-offset:4px;border-radius:3px}
.footer-bottom{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-top:1px solid var(--cc-border);padding-top:18px}
.site-page .site-footer .footer-bottom p{font-size:12px;max-width:80ch}.footer-bottom p a{color:inherit;white-space:nowrap;text-underline-offset:3px}
.site-page .site-footer .footer-legal{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 22px;font-size:12px}.footer-legal a{display:inline-flex;align-items:center;min-height:36px;color:var(--cc-muted);text-decoration:none}
@media(max-width:520px){.site-footer .shell-footer-inner{padding:28px 16px 16px}.site-page .site-footer .footer-navigation{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.footer-top{gap:22px;padding-bottom:22px}.site-footer .footer-column a{min-height:44px}.site-page .site-footer .footer-legal{gap:4px 18px}.footer-legal a{min-height:44px}.footer-column:last-child{grid-column:1/-1}.footer-column:last-child ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}}

/* Keep current-page geometry while the commerce fence withholds stale content.
   Container opacity also prevents descendants overriding inherited visibility. */
.cc-commerce-slot{position:relative}
main[data-commerce-reserved][hidden]{display:block!important;visibility:hidden!important;opacity:0!important}
main[data-commerce-reserved][hidden] *{visibility:hidden!important}
.cc-commerce-status{position:absolute;top:0;left:0;right:0;max-width:var(--cc-container);margin:0 auto;padding:16px var(--cc-gutter,16px);box-sizing:border-box}
