/* Scoped product discovery improvements; keep the existing V11 brand styles. */
.hero.pc4-products-hero { min-height:0; height:auto; padding:120px 0 36px; }
.hero.pc4-products-hero .hero-copy { padding-top:0; padding-bottom:0; max-width:1200px; }
.hero.pc4-products-hero h1 { font-size:clamp(28px,3.4vw,48px); line-height:1.12; margin:8px 0 12px; }
.hero.pc4-products-hero p { max-width:760px; margin:0 0 22px; }
.pc4-product-search { display:flex; align-items:flex-end; gap:14px; max-width:1050px; }
.pc4-product-search>div { flex:1; min-width:0; }
.pc4-product-search label { display:block; font-size:13px; color:#fff; margin-bottom:6px; }
.pc4-product-search input,.pc4-product-search select { box-sizing:border-box; display:block; width:100%; min-height:46px; border:1px solid #778087; border-radius:0; padding:10px 12px; font:inherit; font-size:16px; color:#172026; background:#fff; }
.pc4-product-search button { cursor:pointer; min-height:46px; white-space:nowrap; border:0; }
.pc4-category-links { background:#f1f3f4; border-bottom:1px solid #dce0e3; }
.pc4-category-links .container { display:flex; flex-wrap:wrap; gap:8px; padding-top:16px; padding-bottom:16px; }
.pc4-category-links a { padding:8px 12px; background:#fff; border:1px solid #b7bfc4; color:#172026; font-size:13px; text-decoration:none; }
.pc4-category-links a[aria-current="page"],.pc4-category-links a:hover { background:#172026; color:#fff; }
.section.pc4-product-section { padding:36px 0; }
.pc4-product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.pc4-product-card { display:flex; flex-direction:column; border:1px solid #dce0e3; background:#fff; color:#172026; min-width:0; }
.pc4-product-card>a { display:block; }
.pc4-product-card img { width:100%; height:240px; object-fit:contain; display:block; background:#f3f4f4; }
.pc4-card-body { padding:22px; display:flex; flex:1; flex-direction:column; }
.pc4-card-body h3 { margin:0 0 8px; font-size:24px; overflow-wrap:anywhere; }
.pc4-card-body h3 a { color:inherit; }
.pc4-card-body p { margin:0 0 12px; font-size:14px; }
.pc4-card-body .pc4-category-name { font-size:12px; color:#52616a; }
.pc4-card-actions { margin-top:auto; padding-top:12px; display:flex; flex-wrap:wrap; gap:12px 20px; font-size:14px; }
.pc4-card-actions a { color:#943e00; font-weight:700; }
.pc4-product-section .category .visual { display:block; }
.pc4-product-section .category h3 a { color:inherit; font-size:inherit; }
.pc4-product-section .category-grid img { object-fit:contain; background:#f3f4f4; }
.pc4-product-section:target,.pc4-product-section [id]:target { scroll-margin-top:120px; }
.pc4-product-search :focus-visible,.pc4-category-links a:focus-visible,.pc4-product-section a:focus-visible { outline:3px solid #f47b12; outline-offset:3px; }
@media(max-width:800px) { .pc4-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .pc4-product-search { flex-wrap:wrap; } .pc4-product-search>div { flex-basis:calc(50% - 14px); } }
@media(max-width:540px) {
 .hero.pc4-products-hero { padding:100px 0 24px; }
 .pc4-product-search { display:grid; gap:12px; }
 .pc4-product-search button { width:100%; }
 .pc4-category-links .container { flex-wrap:nowrap; overflow-x:auto; padding-bottom:14px; }
 .pc4-category-links a { flex:none; }
 .pc4-product-grid { grid-template-columns:1fr; gap:18px; }
 .pc4-card-body { padding:18px; }
 .section.pc4-product-section { padding:28px 0; }
}

/* PC4.1: shared layout fixes. These rules override conflicting V11 page skins. */
/* Low-specificity foundations also cover Search and legal pages, which have no
   V11 page stylesheet. Existing page-specific rules retain their precedence. */
:where(*) { box-sizing:border-box; }
:where(body) { font-family:Arial,Helvetica,sans-serif; background:#080b0d; color:#f6f7f7; line-height:1.5; }
:where(a) { color:inherit; text-decoration:none; }
:where(img) { display:block; max-width:100%; }
:where(.container) { width:min(1280px,calc(100% - 48px)); margin-inline:auto; }
:where(.section) { padding:56px 0; }
:where(.light) { background:#f4f4f2; color:#15181a; }
:where(.dark) { background:#0c1013; }
:where(.eyebrow) { font-size:11px; color:#ef7415; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
:where(.hero-actions) { display:flex; flex-wrap:wrap; gap:14px; margin-top:24px; }
:where(.btn) { display:inline-flex; align-items:center; justify-content:center; padding:13px 20px; border:1px solid #ef7415; background:#ef7415; font-size:11px; font-weight:800; text-transform:uppercase; }
:where(main .cta) { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:32px; border:1px solid #2b3136; }
main .cta { background:#101418; }
main .btn:not(.outline) { color:#0b0d0f; }
main .legal-content a { color:#943e00; text-decoration:underline; }
footer { background:#07090b; border-top:1px solid #23292e; padding:42px 0 20px; color:#aab1b6; }
footer .footer-brand .brand { display:flex; width:168px; max-width:100%; }
footer .footer-brand img { display:block; width:168px; max-width:100%; height:45px; object-fit:contain; object-position:left center; }
footer .footer-grid a { display:block; margin:7px 0; }
footer .footer-bottom { margin-top:28px; padding-top:15px; border-top:1px solid #20252a; color:#899299; font-size:11px; }
footer .footer-grid {
 display:grid; grid-template-columns:minmax(210px,1.5fr) repeat(5,minmax(0,1fr));
 gap:28px 24px; align-items:start;
}
footer .footer-grid > * { min-width:0; }
footer .footer-grid h4 { color:#f5f7f8; font-size:12px; line-height:1.5; margin:0 0 14px; text-transform:uppercase; }
footer .footer-grid a,footer .footer-brand p { font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
footer .footer-grid .brand { margin:0 0 16px; }
/* PC4.2: keep email contact on the Contact page, not repeated in the footer. */
footer .footer-grid a[href^="mailto:"] { display:none; }
footer .footer-brand p > br { display:none; }
footer .footer-brand p { margin:0 0 12px; }
footer .footer-bottom { display:flex; flex-wrap:wrap; gap:12px 24px; align-items:flex-start; line-height:1.7; }
footer .footer-bottom > * { min-width:0; max-width:100%; overflow-wrap:anywhere; }

/* The legacy story asset is an already-cropped mockup, not a usable photograph.
   Hide only that exact asset; an image supplied through CMS remains visible. */
#our-story .split { grid-template-columns:minmax(0,1fr); gap:24px; }
#our-story .split > div { max-width:900px; }
#our-story .split > img { width:100%; max-width:900px; height:auto; max-height:none; object-fit:contain; }
#our-story .split > img[src="/v11/09-about-us/assets/images/story_visual.jpg"] { display:none; }
#factory .factory-grid,#global .global-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
#factory .factory-grid > div,#global .global-grid > div { max-width:900px; }
#factory .factory-grid > img,#global .global-grid > img { width:100%; max-width:900px; height:auto; max-height:none; object-fit:contain; }
#factory img[src="/v11/09-about-us/assets/images/factory_visual.jpg"],
#global img[src="/v11/09-about-us/assets/images/global_visual.jpg"] { display:none; }
#team .cap-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
main .resource-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }

/* Prevent dark call-to-action panels from inheriting dark text from .light. */
main .cta,main .cta h2,main .cta h3 { color:#f5f7f8; }
main .cta > *,main .container > *,main .form-grid > * { min-width:0; }
main .cta .btn { flex-shrink:0; }
main .dark .section-title p { color:#b9c1c7; }
main h1,main h2,main h3,main .btn { overflow-wrap:anywhere; }
main .btn { max-width:100%; white-space:normal; text-align:center; }
main .category-template-hero h1 { font-size:clamp(28px,5vw,52px)!important; line-height:1.12; }
main .hero-copy,main .hero-content,main .solution-hero-copy { padding-bottom:40px; }
main .cms-section-content img,main .detail-content img { max-width:100%; height:auto; }
main .legal-content,main .detail-content,main .info-row { overflow-wrap:anywhere; }
main .form-grid input,main .form-grid select,main .form-grid textarea { min-width:0; max-width:100%; }

@media(max-width:1200px) {
 .site-header .mobile-menu-toggle { display:block; margin-left:auto; flex:0 0 44px; width:44px; height:44px; }
 .site-header .header-inner > .header-cta { display:none!important; }
 .site-header .nav {
  display:none!important; position:absolute!important; top:82px!important; left:0; right:0;
  width:100%; padding:12px 24px!important; margin:0!important; background:#0b0f12;
  border-top:1px solid #2b3136; max-height:calc(100vh - 82px); max-height:calc(100dvh - 82px);
  overflow-y:auto!important; overflow-x:hidden!important; flex-direction:column!important;
  align-items:stretch!important; justify-content:flex-start!important; gap:0!important; white-space:normal!important;
 }
 .site-header .nav.is-open { display:flex!important; }
 .site-header .nav .nav-item { display:block!important; min-width:0; }
 .site-header .nav .nav-item > a { height:auto!important; min-height:44px; padding:12px 0!important; line-height:1.4!important; white-space:normal!important; font-size:13px; }
 .site-header .nav .nav-menu {
  display:block!important; position:static!important; min-width:0!important; width:auto;
  margin:0 0 10px 8px!important; padding:0 0 0 8px!important; border:0!important;
  border-left:1px solid #30363b!important; background:transparent!important; box-shadow:none!important;
 }
 .site-header .nav .nav-menu a { white-space:normal!important; overflow-wrap:anywhere; font-size:12px!important; min-height:38px; padding:9px 12px!important; }
 footer .footer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
}
@media(max-width:800px) {
 main .resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 footer .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
 main .cta { gap:22px; }
}
@media(max-width:600px) {
 main .resource-grid { grid-template-columns:minmax(0,1fr); }
 :where(.container) { width:calc(100% - 28px); }
 .site-header .nav { top:72px!important; max-height:calc(100vh - 72px); max-height:calc(100dvh - 72px); padding:12px 14px!important; }
 main .hero h1,main .page-hero h1,main .solution-hero h1 { font-size:clamp(28px,8.2vw,40px); line-height:1.1; }
 main .hero .tagline { font-size:21px; line-height:1.3; }
 main .hero-actions { flex-wrap:wrap; }
 main .cta { display:flex; flex-direction:column; align-items:flex-start; padding:24px; }
 main .cta h2 { font-size:25px; line-height:1.2; }
 main .form-grid input,main .form-grid select,main .form-grid textarea { font-size:16px; }
 #team .cap-grid { grid-template-columns:minmax(0,1fr); }
 footer .footer-grid .footer-brand { grid-column:1/-1; }
 footer .footer-bottom { flex-direction:column; }
}
@media(max-width:360px) {
 footer .footer-grid { grid-template-columns:minmax(0,1fr); }
}
