/* Shared, final layout rules for classic templates, blocks and the managed home. */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}
#pcb-page {
  overflow-x: hidden;
  max-width: 100vw;
  width: 100%;
}
body { font-size: var(--pcb-base-size,16px); }
:where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid var(--pcb-primary); outline-offset: 4px; }
:where(main,article,section,aside,.woocommerce,.pcb-header-inner) { min-width: 0; }
.entry-content { overflow-wrap: anywhere; }
.entry-content :where(iframe,video,embed,object) { max-width: 100%; }
.entry-content pre { overflow: auto; white-space: pre; }
.wp-block-table { overflow-x: auto; }
.pcb-editor-home > :not(.alignfull):not(.elementor) { max-width: var(--pcb-container-width); margin-left:auto; margin-right:auto; }
.pcb-editor-home .alignwide { width: min(100%,var(--pcb-container-width)); }
.pcb-hide-shipping-meter .pcb-free-ship-meter { display:none; }
.pcb-managed-home { background:#f7fafb; }
.pcb-home-hero { background: #eef4f5; border-bottom:1px solid #dce6e8; padding:clamp(38px,6vw,90px) 0; }
.pcb-home-hero-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:clamp(28px,5vw,72px); align-items:center; }
.pcb-eyebrow { display:block; font-size:.72rem; color:#126357; font-weight:800; letter-spacing:.14em; margin-bottom:24px; }
.pcb-home-intro h1 { font-size:clamp(2.3rem,4.4vw,4.3rem); line-height:1.05; letter-spacing:-.055em; max-width:760px; margin-bottom:24px; }
.pcb-home-intro > p { font-size:1.08rem; line-height:1.8; max-width:620px; color:#49616a; }
.pcb-home-buttons { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.pcb-home-buttons .pcb-btn { min-height:48px; white-space:normal; text-align:center; }
.pcb-home-note { display:inline-block; margin-top:22px; color:#48636a; font-size:.83rem; }
.pcb-home-visual { background:#102e33; padding:20px; border-radius:var(--pcb-card-radius); box-shadow:0 20px 60px #15383d18; min-width:0; }
.pcb-home-photo { width:100%; aspect-ratio:1.4; object-fit:cover; border-radius:10px; }
.pcb-circuit-art { height:260px; display:grid; place-items:center; position:relative; overflow:hidden; background:linear-gradient(90deg,#8dcbb717 1px,transparent 1px),linear-gradient(#8dcbb717 1px,transparent 1px); background-size:28px 28px; border-radius:10px; }
.pcb-circuit-chip { width:170px; height:160px; border:2px solid #b9e9ba; background:#143e42; color:#d8f6b5; border-radius:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:3.5rem; letter-spacing:.1em; font-weight:800; box-shadow:0 0 0 12px #9bd4bb15,0 0 0 24px #9bd4bb08; transform:rotate(-8deg); }
.pcb-circuit-chip span { font-size:8px; letter-spacing:.12em; margin-top:8px; }
.pcb-circuit-art i { width:70px; height:2px; background:#aee2a0; position:absolute; left:0; top:32%; }
.pcb-circuit-art i:nth-of-type(2) { top:68%; width:95px; }
.pcb-circuit-art i:nth-of-type(3) { left:auto; right:0; top:40%; }
.pcb-circuit-art i:nth-of-type(4) { left:auto; right:0; top:76%; width:100px; }
.pcb-home-help { padding:22px 8px 8px; }
.pcb-home-help h2 { color:#f0faed; font-size:1.2rem; letter-spacing:-.02em; }
.pcb-home-help p { color:#b7cfd0; font-size:.88rem; line-height:1.7; }
.pcb-home-help > div { display:flex; flex-wrap:wrap; gap:14px; }
.pcb-home-help a { color:#d5f4b5; font-size:.82rem; border-bottom:1px solid #527d72; padding-bottom:6px; }
.pcb-home-section { padding:clamp(34px,5vw,64px) 0; }
.pcb-home-section-head { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:28px; }
.pcb-home-section-head h2 { font-size:clamp(1.65rem,2.6vw,2.45rem); margin:0; max-width:800px; letter-spacing:-.04em; }
.pcb-home-section-head > a { flex-shrink:0; font-size:.85rem; font-weight:700; }
.pcb-home-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.pcb-home-category { display:flex; gap:16px; align-items:center; color:#19393d; background:white; padding:22px; border:1px solid #dee8e9; border-radius:var(--pcb-card-radius); }
.pcb-home-category img { width:52px; height:52px; object-fit:contain; }
.pcb-home-category strong { flex:1; min-width:0; }
.pcb-home-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.pcb-home-card { background:white; border:1px solid #e0e9eb; border-radius:var(--pcb-card-radius); overflow:hidden; display:flex; flex-direction:column; }
.pcb-home-card img { width:100%; aspect-ratio:1.6; object-fit:cover; }
.pcb-home-card-content { padding:26px; display:flex; flex:1; flex-direction:column; }
.pcb-home-card time { color:#657c82; font-size:.75rem; margin-bottom:12px; }
.pcb-home-card h3 { font-size:1.15rem; line-height:1.4; }
.pcb-home-card h3 a { color:#17343b; }
.pcb-home-card p { color:#647980; font-size:.9rem; line-height:1.8; }
.pcb-home-card-link { margin-top:auto; font-size:.82rem; font-weight:700; }
.pcb-home-process { background:#eaf2ef; }
.pcb-home-step { padding:20px 24px 12px 0; }
.pcb-home-step > span { display:block; color:#4a8772; font-size:2.2rem; font-weight:800; margin-bottom:22px; }
.pcb-home-step h3 { font-size:1.2rem; }
.pcb-home-step p { font-size:.93rem; color:#4d6c65; line-height:1.8; }
.pcb-home-faq-list { max-width:900px; }
.pcb-home-faq-list details { border-bottom:1px solid #d6e1e3; padding:20px 0; }
.pcb-home-faq-list summary { cursor:pointer; font-size:1.04rem; font-weight:600; line-height:1.5; }
.pcb-home-faq-list p { margin:16px 0 4px; line-height:1.8; color:#557078; }
.pcb-home-contact { background:#e8f1f3; }
.woocommerce ul.products { grid-template-columns:repeat(var(--pcb-shop-cols,4),minmax(0,1fr)) !important; }
.woocommerce ul.products li.product { min-width:0 !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { white-space:normal !important; overflow-wrap:anywhere; }
.woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce { width:100%; }
.woocommerce .woocommerce-MyAccount-navigation ul { list-style:none; margin:0; padding:0; }
.woocommerce .woocommerce-MyAccount-navigation a { display:block; padding:12px; }
.woocommerce .woocommerce-MyAccount-navigation .is-active a { background:#eaf3fa; border-radius:8px; }
.pcb-mini-cart-panel,.pcb-wishlist-panel { height:100vh; height:100dvh; max-width:94vw; }
.pcb-mini-cart-body,.pcb-wishlist-items { min-height:0; overflow-y:auto; }
.pcb-header-inner { gap:20px; }
.pcb-branding { flex-shrink:0; }
.pcb-logo-name { overflow-wrap:anywhere; }
.pcb-navigation { min-width:0; }
.pcb-menu { flex-wrap:wrap; }
.pcb-menu .sub-menu { z-index:1100; }
.pcb-mobile-menu .sub-menu { position:static; float:none; width:100%; }
@media(min-width:1025px) and (max-width:1279px) { .pcb-header-search-bar { display:none !important; } }
@media(max-width:1024px) {
 .pcb-home-hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:28px; }
 .pcb-home-card-grid,.pcb-home-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .woocommerce ul.products { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }
}
@media(max-width:768px) {
 .pcb-home-hero-grid,.pcb-home-card-grid { grid-template-columns:minmax(0,1fr); }
 .pcb-home-intro h1 { font-size:clamp(1.85rem,7vw,2.75rem); }
 .pcb-home-visual { max-width:560px; width:100%; margin:auto; }
 .pcb-home-section-head { align-items:flex-start; flex-wrap:wrap; gap:12px; }
 .pcb-home-category { padding:16px; gap:8px; font-size:.88rem; }
 .pcb-home-category img { width:36px; height:36px; }
 .pcb-home-step { padding:8px 0; }
 .woocommerce ul.products { grid-template-columns:repeat(var(--pcb-mobile-cols,2),minmax(0,1fr)) !important; gap:8px !important; }
 body:not(.pcb-has-mobile-bar) { padding-bottom:0 !important; }
 .pcb-sticky-bar-active { padding-bottom:calc(165px + env(safe-area-inset-bottom)) !important; }
 .woocommerce .woocommerce-MyAccount-navigation,.woocommerce .woocommerce-MyAccount-content { float:none; width:100%; }
 .woocommerce .woocommerce-MyAccount-navigation { margin-bottom:24px; }
 .woocommerce form .form-row-first,.woocommerce form .form-row-last { width:100%; float:none; }
 .pcb-header-inner { gap:8px; }
 .pcb-branding { flex:1; min-width:0; }
 .pcb-logo-text { min-width:0; gap:6px; }
 .pcb-logo-name { font-size:clamp(.85rem,3.8vw,1.15rem); }
 .pcb-header-search-bar { display:none !important; }
 .pcb-header-actions .pcb-icon-btn { width:36px; height:40px; min-width:0; }
 .pcb-container { padding-left:16px; padding-right:16px; }
 .pcb-shop-filter-bar { flex-wrap:wrap; }
 .woocommerce .woocommerce-ordering { float:none; max-width:100%; }
 .woocommerce .woocommerce-ordering select { max-width:100%; }

 /* Single Product Mobile Optimization */
 .single-product div.product {
   display: flex !important;
   flex-direction: column !important;
   padding: 1.25rem 1rem !important;
   gap: 1.5rem !important;
 }
 .single-product div.product div.images,
 .single-product div.product .woocommerce-product-gallery {
   width: 100% !important;
   max-width: 100% !important;
   float: none !important;
 }
 .single-product div.product .summary.entry-summary {
   width: 100% !important;
   max-width: 100% !important;
   float: none !important;
 }
 .single-product div.product .woocommerce-product-gallery__image img {
   width: 100% !important;
   height: auto !important;
   max-height: 380px !important;
   aspect-ratio: 1 / 1 !important;
   object-fit: contain !important;
 }
 .single-product div.product .flex-control-thumbs {
   display: flex !important;
   flex-direction: row !important;
   flex-wrap: nowrap !important;
   overflow-x: auto !important;
   -webkit-overflow-scrolling: touch !important;
   gap: 8px !important;
   padding: 6px 0 !important;
 }
 .single-product div.product .flex-control-thumbs li {
   flex: 0 0 64px !important;
   width: 64px !important;
   height: 64px !important;
   min-width: 64px !important;
 }

 /* Modern Services & Locations Mobile Layout */
 .pcb-service-hero-grid,
 .pcb-modern-split {
   grid-template-columns: 1fr !important;
   gap: 1.5rem !important;
 }
 .pcb-modern-detail-grid {
   grid-template-columns: 1fr !important;
   gap: 1.5rem !important;
 }
 .pcb-service-hero-image-side img {
   height: 220px !important;
 }
 .pcb-page-header {
   padding: 2.5rem 0 2rem !important;
 }

 /* Error Code Tables & Horizontal Scroll Safeguard */
 .pcb-error-table-wrap,
 .pcb-error-table {
   width: 100% !important;
   max-width: 100% !important;
   overflow-x: auto !important;
   -webkit-overflow-scrolling: touch !important;
 }
 .pcb-brand-filter-pills {
   overflow-x: auto !important;
   -webkit-overflow-scrolling: touch !important;
   flex-wrap: nowrap !important;
   padding-bottom: 6px !important;
 }
 .pcb-brand-filter-pills .pcb-pill-btn {
   flex-shrink: 0 !important;
 }

 /* Floating Actions Placement above Mobile Bottom Bar */
 .pcb-floating-whatsapp,
 .pcb-floating-wrapper {
   bottom: 82px !important;
   z-index: 998 !important;
   right: 16px !important;
 }

 /* Mobile Category Browser inside Navigation Drawer */
 .pcb-mobile-cat-accordion {
   margin: 1rem 0;
   padding: 0.85rem 0;
   border-top: 1px solid var(--pcb-slate-200);
   border-bottom: 1px solid var(--pcb-slate-200);
 }
 .pcb-mcat-heading {
   font-size: 0.82rem;
   font-weight: 800;
   text-transform: uppercase;
   letter-spacing: 0.04em;
   color: var(--pcb-slate-600);
   margin-bottom: 0.65rem;
 }
 .pcb-mcat-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 6px;
 }
 .pcb-mcat-item {
   display: flex;
   align-items: center;
   padding: 6px 8px;
   background: #ffffff;
   border: 1px solid var(--pcb-slate-200);
   border-radius: 6px;
   font-size: 0.76rem;
   font-weight: 600;
   color: var(--pcb-dark-800);
   text-decoration: none;
   line-height: 1.3;
   transition: background 0.15s ease;
 }
 .pcb-mcat-item:hover {
   background: #e0f2fe;
   border-color: #38bdf8;
   color: #0284c7;
 }

 /* Header Category Strip on Mobile */
 .pcb-category-nav-strip {
   padding: 0.35rem 0 !important;
 }
 .pcb-catstrip-inner {
   padding-left: 12px !important;
   padding-right: 12px !important;
   gap: 0.4rem !important;
 }
 .pcb-catstrip-links {
   display: flex !important;
   align-items: center !important;
   gap: 0.35rem !important;
   overflow-x: auto !important;
   white-space: nowrap !important;
   -webkit-overflow-scrolling: touch !important;
   scrollbar-width: none !important;
 }
 .pcb-catstrip-links::-webkit-scrollbar {
   display: none !important;
 }
 .pcb-cat-chip {
   padding: 0.3rem 0.65rem !important;
   font-size: 0.76rem !important;
 }
 .pcb-catstrip-brands {
   display: none !important;
 }

 /* Single Product Specs Table & Compatibility Checker on Mobile */
 .pcb-single-tech-specs {
   overflow-x: auto !important;
   -webkit-overflow-scrolling: touch !important;
   width: 100% !important;
 }
 .pcb-single-tech-specs table {
   min-width: 280px !important;
 }
 .pcb-compat-checker-box > div {
   flex-wrap: wrap !important;
 }
 .pcb-compat-checker-box input {
   flex: 1 1 170px !important;
 }

  /* Services Directory Filter Toolbar & Category Pills on Mobile */
  .pcb-services-filter-toolbar {
    padding: 0.85rem 0 !important;
    top: 54px !important;
  }
  .pcb-services-filter-toolbar > .pcb-container > div {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }
  .pcb-services-filter-toolbar #pcbServiceSearchInput {
    max-width: 100% !important;
    width: 100% !important;
    font-size: 14px !important;
  }
  .pcb-section-filter-pills#pcbServiceCategoryFilters {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 6px !important;
    scrollbar-width: none !important;
    padding-bottom: 4px !important;
    justify-content: flex-start !important;
    width: 100% !important;
  }
  .pcb-section-filter-pills#pcbServiceCategoryFilters::-webkit-scrollbar {
    display: none !important;
  }
  .pcb-section-filter-pills#pcbServiceCategoryFilters .pcb-sfp-pill {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    padding: 7px 14px !important;
    font-size: 0.82rem !important;
    border-radius: 20px !important;
  }

  /* Services Full Card on Mobile */
  .pcb-service-card-full {
    border-radius: 10px !important;
  }
  .pcb-service-card-full > div:first-child {
    height: 190px !important;
  }
  .pcb-service-card-full > div:last-child {
    padding: 1.15rem 1rem !important;
  }
  .pcb-service-card-full h3 {
    font-size: 1.12rem !important;
  }

  /* Interactive Calculators on Mobile */
  .pcb-calc-tabs-bar {
    top: 54px !important;
  }
  .pcb-calc-grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
  .pcb-calc-tab-nav {
    gap: 6px !important;
    padding: 8px 0 !important;
  }
  .pcb-calc-tab-btn {
    padding: 8px 14px !important;
    font-size: 0.82rem !important;
  }
  .pcb-calc-panel .pcb-card {
    padding: 1.5rem 1.15rem !important;
  }
  .pcb-transit-steps {
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
  }

  /* Blog & Guide Archives Mobile */
  .pcb-posts-grid.pcb-grid-cols-2 {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }
  .pcb-blog-hero-content .pcb-page-title {
    font-size: clamp(1.6rem, 5vw, 2.2rem) !important;
  }
  .pcb-blog-search-wrap input {
    font-size: 14px !important;
  }
}

@media(max-width:480px) {
 /* Preserve comfortable touch targets and prevent iOS from zooming fields. */
 input,select,textarea { font-size:16px; }
 .pcb-header-actions .pcb-icon-btn,.pcb-search-close,.pcb-drawer-close,.pcb-modal-close { min-width:44px; min-height:44px; }
 .pcb-mobile-bottom-bar { padding-bottom:max(6px,env(safe-area-inset-bottom)); }
 .pcb-mbar-item { min-width:0; padding-left:2px; padding-right:2px; font-size:10px; }
 .pcb-mbar-item span { overflow:hidden; max-width:100%; text-overflow:ellipsis; white-space:nowrap; }
 .pcb-mobile-drawer-content,.pcb-mini-cart-panel,.pcb-wishlist-panel { width:min(100%,420px); max-width:100vw; border-radius:0; }
 .pcb-modal-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); overflow:auto; }
 .pcb-home-help,.pcb-home-card-content { padding:18px; }
 .woocommerce table.shop_table { display:block; overflow-x:auto; white-space:nowrap; }
 .woocommerce-cart-form .coupon { display:flex; flex-wrap:wrap; gap:8px; }
 .woocommerce-cart-form .coupon .input-text { min-height:44px; max-width:100%; }
 
 .pcb-home-buttons .pcb-btn,
 .pcb-modern-actions .pcb-btn {
   width: 100% !important;
   justify-content: center !important;
 }
 .pcb-quicksearch-wrap {
   height: 44px !important;
   padding: 0.2rem 0.4rem 0.2rem 0.85rem !important;
 }
 .pcb-quicksearch-btn {
   height: 36px !important;
   padding: 0 0.85rem !important;
   font-size: 0.82rem !important;
 }
}

@media(max-width:360px) {
 .pcb-home-category-grid { grid-template-columns:minmax(0,1fr) !important; }
 .pcb-home-buttons .pcb-btn { width:100%; }
 .pcb-logo-icon { display:none; }
 .pcb-sbb-left { display:none !important; }
}

@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
