/*
Theme Name: YY B2B Astra
Template: astra
Version: 0.1.5-P7D2H1
Description: Project-owned visual layer for the YY B2B site; requires Catalogue UI B1 and Astra.
*/
/* Color tokens and legacy aliases load from Catalogue UI assets/brand-tokens.css. */
body { color: var(--yy-body); }
a { color: var(--yy-sea); }
.yy-stage-banner { background: var(--yy-surface); color: var(--yy-heading); text-align: center; padding: .55rem 1rem; font-weight: 700; }
.site-content { min-height: 58vh; }
.yy-hero { padding: clamp(3rem, 7vw, 7rem) 1.5rem; background: var(--yy-charcoal); color: var(--yy-on-dark); }
.yy-hero h1 { color: var(--yy-on-dark); font-size: clamp(2.3rem, 5vw, 4.5rem); max-width: 14ch; line-height: 1.06; }
.yy-hero p { max-width: 42rem; font-size: 1.12rem; }
.yy-hero a, .yy-button { display: inline-block; padding: .8rem 1.2rem; border-radius: .25rem; background: var(--yy-brand-red); color: var(--yy-on-red); font-weight: 700; text-decoration: none; }
.yy-section { padding: clamp(2rem, 5vw, 4.5rem) 1.5rem; max-width: 1200px; margin-inline: auto; }
.yy-section > h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
.yy-product-grid, .yy-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 1.2rem; }
.yy-product-card, .yy-card { border: 1px solid var(--yy-line); background: var(--yy-white); padding: 1.35rem; border-radius: .4rem; }
.yy-product-card img, .yy-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.yy-products form { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; margin-bottom: 1.5rem; }
.yy-products input, .yy-products select, .yy-enquiry input, .yy-enquiry textarea { max-width: 100%; }
.yy-breadcrumbs { font-size: .9rem; margin-bottom: 1.2rem; }
.yy-pagination { display: flex; gap: .7rem; margin-top: 1.5rem; }
.yy-enquiry { max-width: 45rem; border-top: 1px solid var(--yy-line); margin-top: 2rem; padding-top: 1.5rem; }
.yy-enquiry label { display: block; }
.yy-enquiry label input:not([type=checkbox]), .yy-enquiry textarea { display: block; width: 100%; }
.yy-product-specs table { width: 100%; border-collapse: collapse; }
.yy-product-specs th, .yy-product-specs td { border-bottom: 1px solid var(--yy-line); padding: .7rem; text-align: left; }
.yy-404 { max-width: 52rem; margin: 4rem auto; padding: 2rem; }
.yy-footer-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem 1.5rem; padding: 1rem; }
.yy-footer-links ul { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem 1.5rem; list-style: none; margin: 0; padding: 0; }
.yy-footer-test { text-align: center; font-size: .85rem; }
@media (max-width: 700px) { .yy-products form > * { width: 100%; } .yy-product-specs { overflow-x: auto; } }

/* Keep Astra's active palette in sync with the single brand token source. */
:root {
  --ast-global-color-0: var(--yy-brand-red);
  --ast-global-color-1: var(--yy-brand-red-hover);
  --ast-global-color-2: var(--yy-heading);
  --ast-global-color-3: var(--yy-body);
  --ast-global-color-4: var(--yy-white);
  --ast-global-color-5: var(--yy-surface);
  --ast-global-color-6: var(--yy-charcoal);
  --ast-global-color-7: var(--yy-line);
  --ast-global-color-8: var(--yy-heading);
  --ast-border-color: var(--yy-line);
}

/* Astra-owned site chrome. Verify actual Builder selectors before merging. */
.site-header .ast-primary-header-bar, .ast-mobile-header-wrap .ast-primary-header-bar { background: var(--yy-white); color: var(--yy-heading); }
.site-header .custom-logo-link { display: inline-flex; align-items: center; background: var(--yy-charcoal); padding: .35rem .55rem; border-radius: .2rem; }
.site-header .custom-logo-link img { width: auto; max-height: 56px; object-fit: contain; }
.site-header .main-header-menu .menu-link, .ast-mobile-header-wrap .menu-link { color: var(--yy-heading); }
.site-header .main-header-menu .current-menu-item > .menu-link, .site-header .main-header-menu .menu-link:hover, .ast-mobile-header-wrap .current-menu-item > .menu-link { color: var(--yy-brand-red); }
.ast-header-button-1 .ast-custom-button, .ast-mobile-header-wrap .menu-toggle { background: var(--yy-brand-red); color: var(--yy-on-red); border-color: var(--yy-brand-red); }
.ast-header-button-1 .ast-custom-button:hover, .ast-mobile-header-wrap .menu-toggle:hover { background: var(--yy-brand-red-hover); border-color: var(--yy-brand-red-hover); color: var(--yy-on-red); }
.site-footer { background: var(--yy-charcoal); color: var(--yy-on-dark-muted); }
.site-footer a { color: var(--yy-on-dark); }
.site-footer a:hover { color: var(--yy-on-dark-muted); text-decoration: underline; }
.site-footer .site-below-footer-wrap { background: var(--yy-charcoal); border-top-color: var(--yy-line); }
.site-footer .ast-footer-copyright, .site-footer .ast-footer-copyright p { color: var(--yy-on-dark-muted); }
.site-footer .ast-footer-copyright a { color: var(--yy-on-dark); }
.site-header .ast-mobile-header-wrap .menu-toggle.ast-mobile-menu-trigger-minimal { min-width: 44px; min-height: 44px; background: var(--yy-white); color: var(--yy-brand-red); }
.site-header .ast-mobile-header-wrap .menu-toggle.ast-mobile-menu-trigger-minimal:is(:hover, :focus-visible) { background: var(--yy-brand-red); color: var(--yy-on-red); }
.site-header .ast-mobile-header-wrap .menu-toggle.ast-mobile-menu-trigger-minimal .ast-mobile-svg { fill: currentColor; }
body.page-id-494 .entry-header, body.page-id-1258 .entry-header { display: none; }
.yy-b2b :is(a, button, input, select, textarea):focus-visible, .site-header :is(a, button):focus-visible { outline: 2px solid var(--yy-focus-ring); outline-offset: 3px; }

/* CPT archives use B1's approved-content shortcode; no case data is stored in the theme. */
body:is(.post-type-archive-yy_solution, .post-type-archive-yy_project) #content > .ast-container { max-width: none; padding: 0; }
body:is(.post-type-archive-yy_solution, .post-type-archive-yy_project) #primary { width: 100%; margin: 0; padding: 0; }
.yy-p7b-archive { max-width: none; background: var(--yy-white); color: var(--yy-body); }
.yy-p7b-archive-hero { padding: clamp(4rem, 8vw, 7rem) max(24px, calc((100vw - 1200px) / 2)); background: var(--yy-charcoal); color: var(--yy-on-dark); }
.yy-p7b-archive-hero h1 { color: var(--yy-on-dark); font-size: clamp(2.6rem, 6vw, 5rem); line-height: 1.07; margin: .6rem 0 1.1rem; }
.yy-p7b-archive-hero p { max-width: 64ch; color: var(--yy-on-dark-muted); }
.yy-p7b-archive-hero .yy-p7b-kicker { color: var(--yy-brand-red); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.yy-p7b-archive-list { max-width: 1200px; margin-inline: auto; padding: clamp(3rem, 6vw, 5rem) 24px; }
.yy-p7b-archive-list :is(a, button):focus-visible { outline: 2px solid var(--yy-focus-ring); outline-offset: 3px; }
