/* Mobile + tablet layout rules. Page markup uses inline styles, so these
   need !important to win. Loaded by ds-base.js on every page. */
html,body{overflow-x:hidden;-webkit-text-size-adjust:100%}
img,video,iframe{max-width:100%}
.nav-toggle{display:none}
/* Header dropdowns: collapsed by default, expand on hover/focus or on click
   (mobile-nav.js toggles .pbfp-open on the .nav-drop). Lives here so every page inherits it. */
.nav-menu{opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.18s ease}
.nav-drop:hover .nav-menu,.nav-drop:focus-within .nav-menu,.nav-drop.pbfp-open .nav-menu{opacity:1;visibility:visible;pointer-events:auto}
.nav-drop > a{cursor:pointer}
.nav-drop > a svg{transition:transform 0.2s ease}
.nav-drop.pbfp-open > a svg{transform:rotate(180deg)}
.nav-drop.pbfp-open > a{color:#8aecbe !important}

@media (max-width:1024px){
  header{padding-left:20px !important;padding-right:20px !important}
  section,footer{padding-left:24px !important;padding-right:24px !important}
  [style*="grid-template-columns"]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr)) !important}
}

@media (max-width:860px){
  /* Burger menu. The button is a fixed element on <body> (outside the React tree);
     html.pbfp-nav-open is the open state. */
  header{flex-wrap:wrap !important;gap:10px !important;padding:12px 68px 12px 16px !important}
  .nav-toggle{display:flex;position:fixed;top:14px;right:14px;z-index:9995;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:46px;height:46px;padding:0;background:rgba(10,12,11,0.9);border:1px solid rgba(255,255,255,0.24);border-radius:13px;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .nav-toggle span{display:block;width:20px;height:2px;background:#fff;border-radius:2px;transition:transform 0.2s ease,opacity 0.2s ease}
  html.pbfp-nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  html.pbfp-nav-open .nav-toggle span:nth-child(2){opacity:0}
  html.pbfp-nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  header nav{display:none !important}
  html.pbfp-nav-open header nav{display:flex !important;width:100% !important;flex-direction:column !important;align-items:stretch !important;gap:2px !important;padding:10px 0 6px !important;border-top:1px solid rgba(255,255,255,0.1)}
  html.pbfp-nav-open header nav > *{width:100%}
  html.pbfp-nav-open .nav-drop{flex-direction:column !important;align-items:stretch !important}
  html.pbfp-nav-open .nav-drop > a{padding:12px 2px !important;font-size:13px !important}
  /* Accordion: submenus collapsed until their row is tapped open. */
  html.pbfp-nav-open .nav-menu{position:static !important;display:none;opacity:1 !important;visibility:visible !important;pointer-events:auto !important;width:100% !important;margin-left:0 !important;padding-top:0 !important;transition:none !important}
  html.pbfp-nav-open .nav-drop.pbfp-open .nav-menu{display:block !important}
  html.pbfp-nav-open .nav-drop > a{justify-content:space-between !important}
  html.pbfp-nav-open .nav-drop > a svg{width:14px;height:14px}
  html.pbfp-nav-open .nav-menu > div{background:transparent !important;border:0 !important;box-shadow:none !important;padding:0 0 6px 14px !important;gap:0 !important}
  html.pbfp-nav-open .nav-menu a{padding:9px 10px !important}
}

@media (max-width:760px){
  section,footer{padding-left:18px !important;padding-right:18px !important}
  section{padding-top:56px !important;padding-bottom:56px !important}
  section[style*="min-height:86vh"]{min-height:auto !important;padding-top:72px !important;padding-bottom:72px !important}

  [style*="grid-template-columns"]{grid-template-columns:1fr !important}
  [style*="gap:56px"]{gap:32px !important}
  [style*="gap:40px"]{gap:28px !important}

  h2{font-size:30px !important;line-height:1.08 !important}
  h3{font-size:20px !important}
  p{font-size:15px !important}

  [style*="max-width:1200px"],[style*="max-width:1100px"],[style*="max-width:980px"]{max-width:100% !important}
  [style*="display:flex"][style*="gap:36px"]{flex-wrap:wrap !important;gap:20px !important}
}
