/* ==========================================================================
   PGBThuis.nl — Theme customizations
   Version: 1.0  /  2026-04-21  /  IT Live
   Load order: AFTER hello-elementor/assets/css/theme.css and elementor frontend
   Install: enqueue in child-theme functions.php via wp_enqueue_style
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Design tokens
   -------------------------------------------------------------------------- */
:root{
  --pgb-primary:       #0F2C49;
  --pgb-primary-600:   #1D4A7A;
  --pgb-primary-300:   #2E6A9F;
  --pgb-accent:        #E8A547;
  --pgb-accent-600:    #C98A35;
  --pgb-surface:       #FAFAF7;
  --pgb-surface-alt:   #F4F1E8;
  --pgb-ink:           #1A1E2B;
  --pgb-mute:          #6B7280;
  --pgb-line:          #E6E3DA;
  --pgb-white:         #FFFFFF;
  --pgb-success:       #2E8B57;
  --pgb-warn:          #C24E2B;
  --pgb-info:          #2D6CDF;

  --pgb-r-sm: 6px;
  --pgb-r-md: 12px;
  --pgb-r-lg: 20px;
  --pgb-r-xl: 32px;
  --pgb-r-pill: 999px;

  --pgb-shadow-sm:  0 1px 3px rgba(15,44,73,.06);
  --pgb-shadow-md:  0 4px 20px rgba(15,44,73,.08);
  --pgb-shadow-lg:  0 12px 40px rgba(15,44,73,.12);
  --pgb-shadow-gold:0 8px 24px rgba(232,165,71,.28);

  --pgb-ease: cubic-bezier(.2,.8,.2,1);
  --pgb-dur-fast: 150ms;
  --pgb-dur: 300ms;
  --pgb-dur-slow: 600ms;

  --pgb-font-serif: "Fraunces", ui-serif, Georgia, "Times New Roman", serif;
  --pgb-font-sans:  "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --pgb-maxw: 1240px;
  --pgb-gutter: clamp(1rem, 3vw, 2rem);
  --pgb-section-py: clamp(4rem, 9vw, 7.5rem);
}

/* --------------------------------------------------------------------------
   2. Fonts (self-hosted — AVG-conform)
   Place .woff2 files in child-theme /fonts/. Fallbacks remain valid.
   -------------------------------------------------------------------------- */
@font-face{
  font-family:"Fraunces";
  src:url("../fonts/Fraunces-Variable.woff2") format("woff2-variations");
  font-weight:100 900; font-style:normal; font-display:swap;
  font-variation-settings: "opsz" 144, "SOFT" 50, "WONK" 0;
}
@font-face{
  font-family:"Inter";
  src:url("../fonts/Inter-Variable.woff2") format("woff2-variations");
  font-weight:100 900; font-style:normal; font-display:swap;
}

/* --------------------------------------------------------------------------
   3. Base + typography
   -------------------------------------------------------------------------- */
html{ scroll-behavior:smooth; }
body{
  font-family:var(--pgb-font-sans);
  color:var(--pgb-ink);
  background:var(--pgb-surface);
  font-size:1.0625rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6{
  font-family:var(--pgb-font-serif);
  color:var(--pgb-primary);
  font-weight:500;
  line-height:1.15;
  letter-spacing:-0.01em;
  margin:0 0 0.5em;
}
h1{ font-size:clamp(2.25rem, 5vw, 4rem); font-weight:600; }
h2{ font-size:clamp(1.75rem, 3.5vw, 2.75rem); }
h3{ font-size:clamp(1.35rem, 2.2vw, 1.875rem); }
h4{ font-size:1.25rem; }
p{ margin:0 0 1em; }
a{ color:var(--pgb-info); text-decoration:underline; text-underline-offset:3px;
   transition:color var(--pgb-dur) var(--pgb-ease); }
a:hover{ color:var(--pgb-primary); }
strong{ font-weight:600; color:var(--pgb-primary); }

/* --------------------------------------------------------------------------
   4. Elementor widget overrides (safe: scoped via .elementor)
   -------------------------------------------------------------------------- */

/* Buttons — premium feel */
.elementor .elementor-button,
.pgb-btn-primary,
.pgb-btn-gold{
  font-family:var(--pgb-font-sans)!important;
  font-weight:600!important;
  letter-spacing:0.01em;
  padding:1rem 2rem;
  border-radius:var(--pgb-r-pill);
  transition:all var(--pgb-dur) var(--pgb-ease);
  will-change:transform;
  display:inline-flex; align-items:center; gap:.5rem;
}
.pgb-btn-gold{
  background:var(--pgb-accent);
  color:var(--pgb-primary)!important;
  box-shadow:var(--pgb-shadow-sm);
}
.pgb-btn-gold:hover{
  background:var(--pgb-surface);
  color:var(--pgb-primary)!important;
  transform:translateY(-2px) scale(1.02);
  box-shadow:var(--pgb-shadow-gold);
}
.pgb-btn-secondary{
  background:transparent; color:var(--pgb-surface)!important;
  border:2px solid var(--pgb-surface);
  transition:all var(--pgb-dur) var(--pgb-ease);
}
.pgb-btn-secondary:hover{
  background:var(--pgb-surface); color:var(--pgb-primary)!important;
  transform:translateY(-2px);
}
.pgb-btn-navy{
  background:var(--pgb-primary); color:var(--pgb-surface)!important;
}
.pgb-btn-navy:hover{
  background:var(--pgb-surface); color:var(--pgb-primary)!important;
  transform:translateY(-2px); box-shadow:var(--pgb-shadow-lg);
}
.pgb-btn-outline{
  background:transparent; color:var(--pgb-primary)!important;
  border:2px solid var(--pgb-primary);
}
.pgb-btn-outline:hover{
  background:var(--pgb-primary); color:var(--pgb-surface)!important;
}
.pgb-btn-xl{ padding:1.25rem 2.5rem; font-size:1.125rem; }

/* Focus-visible (a11y) */
.elementor a:focus-visible,
.elementor button:focus-visible,
.pgb-btn-primary:focus-visible,
.pgb-btn-gold:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:3px solid var(--pgb-accent);
  outline-offset:3px;
  border-radius:var(--pgb-r-md);
}

/* --------------------------------------------------------------------------
   5. Hero + gradient animation
   -------------------------------------------------------------------------- */
.pgb-hero{ position:relative; overflow:hidden; }
.pgb-gradient-animated{
  background: linear-gradient(135deg, #0F2C49 0%, #1D4A7A 45%, #2E6A9F 100%)!important;
  background-size:200% 200%!important;
  animation: pgb-grad 14s ease infinite;
}
@keyframes pgb-grad{
  0%{ background-position:0% 50%; }
  50%{ background-position:100% 50%; }
  100%{ background-position:0% 50%; }
}
.pgb-hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(232,165,71,.12), transparent 40%),
    radial-gradient(circle at 80% 80%, rgba(255,255,255,.08), transparent 40%);
  pointer-events:none;
}
.pgb-h1-hero{
  max-width:20ch; margin-left:auto; margin-right:auto;
  text-shadow:0 2px 30px rgba(0,0,0,.25);
}

/* Hero search card */
.pgb-hero-search{
  max-width:640px; margin:2rem auto 0; width:100%;
}
.pgb-search-card{
  background:var(--pgb-white); border-radius:var(--pgb-r-pill);
  padding:.5rem .5rem .5rem 1.5rem;
  display:flex; gap:.5rem; align-items:center;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
  transition:box-shadow var(--pgb-dur) var(--pgb-ease), transform var(--pgb-dur) var(--pgb-ease);
}
.pgb-search-card:focus-within{
  transform:translateY(-2px);
  box-shadow:0 28px 80px rgba(0,0,0,.32);
}
.pgb-search-input{
  flex:1; border:0; background:transparent;
  font-family:var(--pgb-font-sans); font-size:1.0625rem;
  padding:.875rem 0; color:var(--pgb-ink); outline:none; min-width:0;
}
.pgb-search-input::placeholder{ color:var(--pgb-mute); }
.pgb-search-submit{
  background:var(--pgb-accent); color:var(--pgb-primary);
  font-family:var(--pgb-font-sans); font-weight:600;
  border:0; border-radius:var(--pgb-r-pill);
  padding:.875rem 1.75rem; cursor:pointer;
  transition:all var(--pgb-dur) var(--pgb-ease); white-space:nowrap;
}
.pgb-search-submit:hover{
  background:var(--pgb-primary); color:var(--pgb-surface);
  transform:translateY(-1px);
}
.pgb-search-suggestions{
  position:absolute; left:0; right:0; top:calc(100% + .5rem);
  background:var(--pgb-white); border-radius:var(--pgb-r-lg);
  box-shadow:var(--pgb-shadow-lg);
  max-height:320px; overflow:auto; z-index:10;
}
.pgb-search-suggestions[hidden]{ display:none; }
.pgb-search-suggestions li{
  list-style:none; padding:.75rem 1rem; cursor:pointer;
  transition:background var(--pgb-dur-fast) var(--pgb-ease);
}
.pgb-search-suggestions li:hover,
.pgb-search-suggestions li[aria-selected="true"]{
  background:var(--pgb-surface-alt);
}

/* --------------------------------------------------------------------------
   6. Trust bar
   -------------------------------------------------------------------------- */
.pgb-trust-bar{ font-family:var(--pgb-font-sans); }
.pgb-trust-col{ flex:1; min-width:140px; text-align:center; }
.pgb-trust-item{ display:flex; flex-direction:column; gap:.25rem; }
.pgb-trust-item strong{
  font-family:var(--pgb-font-serif); font-size:1.5rem;
  color:var(--pgb-primary); font-weight:600;
}
.pgb-trust-item span{
  font-size:.875rem; color:var(--pgb-mute);
  letter-spacing:.02em;
}

/* --------------------------------------------------------------------------
   7. Step cards
   -------------------------------------------------------------------------- */
.pgb-step-card{
  position:relative; overflow:hidden;
  transition:transform var(--pgb-dur) var(--pgb-ease), box-shadow var(--pgb-dur) var(--pgb-ease);
}
.pgb-step-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg, var(--pgb-accent), var(--pgb-primary));
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--pgb-dur-slow) var(--pgb-ease);
}
.pgb-step-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--pgb-shadow-lg)!important;
}
.pgb-step-card:hover::before{ transform:scaleX(1); }

/* --------------------------------------------------------------------------
   8. Zorgsoorten grid cards
   -------------------------------------------------------------------------- */
.pgb-zorgsoorten-grid{ display:grid!important;
  grid-template-columns:repeat(auto-fit, minmax(280px,1fr));
  gap:1.5rem!important;
}
.pgb-zorgsoort-card{
  display:flex; flex-direction:column; gap:1rem;
  padding:2rem; background:var(--pgb-white);
  border:1px solid var(--pgb-line); border-radius:var(--pgb-r-lg);
  transition:all var(--pgb-dur) var(--pgb-ease);
  position:relative; overflow:hidden;
}
.pgb-zorgsoort-card::after{
  content:""; position:absolute; inset:auto 0 0 0; height:0;
  background:var(--pgb-accent);
  transition:height var(--pgb-dur) var(--pgb-ease);
  z-index:0;
}
.pgb-zorgsoort-card:hover{
  transform:translateY(-4px);
  border-color:var(--pgb-accent);
  box-shadow:var(--pgb-shadow-lg);
}
.pgb-zorgsoort-card:hover::after{ height:4px; }
.pgb-zorgsoort-card .icon{
  width:56px; height:56px; border-radius:var(--pgb-r-md);
  display:flex; align-items:center; justify-content:center;
  background:var(--pgb-surface-alt); color:var(--pgb-accent); font-size:28px;
}
.pgb-zorgsoort-card h3{ margin:0; color:var(--pgb-primary); }
.pgb-zorgsoort-card p{ margin:0; color:var(--pgb-ink); flex:1; }
.pgb-zorgsoort-card .cta{
  color:var(--pgb-primary); font-weight:600; text-decoration:none;
  display:inline-flex; align-items:center; gap:.375rem;
  transition:gap var(--pgb-dur) var(--pgb-ease);
}
.pgb-zorgsoort-card .cta:hover{ gap:.75rem; color:var(--pgb-accent-600); }

/* --------------------------------------------------------------------------
   9. Check lists (two-spoor section)
   -------------------------------------------------------------------------- */
.pgb-check-list{ list-style:none; padding:0; margin:0; }
.pgb-check-list li{
  position:relative; padding:.5rem 0 .5rem 2rem;
  font-size:1.0625rem; line-height:1.6;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.pgb-check-list li::before{
  content:""; position:absolute; left:0; top:calc(.5rem + .5em);
  transform:translateY(-50%);
  width:20px; height:20px; border-radius:50%;
  background:var(--pgb-accent); color:var(--pgb-primary);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F2C49' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
  background-size:12px; background-position:center; background-repeat:no-repeat;
}
.pgb-check-list li:last-child{ border-bottom:0; }
.pgb-check-dark li{ border-color:rgba(15,44,73,.15); }
.pgb-check-dark li::before{ background:var(--pgb-primary);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E8A547' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
}

/* --------------------------------------------------------------------------
   10. FAQ accordion (semantic <details> based)
   -------------------------------------------------------------------------- */
.pgb-faq{ max-width:820px; margin:0 auto; }
.pgb-faq details{
  background:var(--pgb-white); border:1px solid var(--pgb-line);
  border-radius:var(--pgb-r-md); margin-bottom:.75rem;
  transition:all var(--pgb-dur) var(--pgb-ease);
}
.pgb-faq details[open]{
  box-shadow:var(--pgb-shadow-md);
  border-color:var(--pgb-accent);
}
.pgb-faq summary{
  cursor:pointer; list-style:none; padding:1.25rem 1.5rem;
  font-family:var(--pgb-font-sans); font-weight:600; font-size:1.0625rem;
  color:var(--pgb-primary); display:flex; justify-content:space-between;
  align-items:center; gap:1rem;
}
.pgb-faq summary::-webkit-details-marker{ display:none; }
.pgb-faq summary::after{
  content:"+"; font-size:1.5rem; font-weight:300;
  transition:transform var(--pgb-dur) var(--pgb-ease);
  color:var(--pgb-accent); flex:0 0 auto; width:2rem; text-align:center;
}
.pgb-faq details[open] summary::after{ content:"−"; transform:rotate(0deg); }
.pgb-faq .pgb-faq-body{
  padding:0 1.5rem 1.5rem; color:var(--pgb-ink);
  line-height:1.7; border-top:1px solid var(--pgb-line); padding-top:1.25rem;
}

/* --------------------------------------------------------------------------
   11. Testimonials
   -------------------------------------------------------------------------- */
.pgb-testimonials{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:1.5rem; max-width:var(--pgb-maxw); margin:0 auto;
}
.pgb-testimonial{
  background:var(--pgb-white); padding:2rem;
  border-radius:var(--pgb-r-lg); border:1px solid var(--pgb-line);
  display:flex; flex-direction:column; gap:1rem;
  transition:all var(--pgb-dur) var(--pgb-ease); position:relative;
}
.pgb-testimonial:hover{
  transform:translateY(-4px); box-shadow:var(--pgb-shadow-md);
}
.pgb-testimonial::before{
  content:"\201C"; font-family:var(--pgb-font-serif);
  font-size:4rem; color:var(--pgb-accent); line-height:1;
  position:absolute; top:1rem; right:1.5rem; opacity:.35;
}
.pgb-testimonial .stars{ color:var(--pgb-accent); letter-spacing:2px; font-size:1.1rem; }
.pgb-testimonial blockquote{
  margin:0; font-family:var(--pgb-font-serif); font-size:1.125rem;
  line-height:1.55; color:var(--pgb-ink); font-style:italic;
}
.pgb-testimonial .person{
  display:flex; align-items:center; gap:.75rem; margin-top:auto;
}
.pgb-testimonial .person img{
  width:48px; height:48px; border-radius:50%;
  object-fit:cover; border:2px solid var(--pgb-line);
}
.pgb-testimonial .person strong{ display:block; color:var(--pgb-primary); font-size:.9375rem; }
.pgb-testimonial .person span{ display:block; color:var(--pgb-mute); font-size:.8125rem; }

/* --------------------------------------------------------------------------
   12. Forms (aanvraag + zorgverlener multi-step)
   -------------------------------------------------------------------------- */
.pgb-form{
  max-width:720px; margin:0 auto; background:var(--pgb-white);
  padding:clamp(1.5rem, 4vw, 3rem); border-radius:var(--pgb-r-xl);
  box-shadow:var(--pgb-shadow-md); border:1px solid var(--pgb-line);
}
.pgb-form fieldset{
  border:0; padding:0; margin:0 0 2rem;
}
.pgb-form legend{
  font-family:var(--pgb-font-serif); font-size:1.5rem; font-weight:500;
  color:var(--pgb-primary); margin-bottom:1.25rem;
}
.pgb-form label{
  display:block; font-weight:600; font-size:.9375rem;
  color:var(--pgb-primary); margin-bottom:.375rem;
}
.pgb-form label .req{ color:var(--pgb-warn); margin-left:.25rem; }
.pgb-form input[type="text"],
.pgb-form input[type="tel"],
.pgb-form input[type="email"],
.pgb-form input[type="number"],
.pgb-form input[type="date"],
.pgb-form select,
.pgb-form textarea{
  width:100%; padding:.875rem 1rem;
  font-family:var(--pgb-font-sans); font-size:1rem;
  background:var(--pgb-surface); color:var(--pgb-ink);
  border:1.5px solid var(--pgb-line); border-radius:var(--pgb-r-md);
  transition:border-color var(--pgb-dur) var(--pgb-ease), background var(--pgb-dur) var(--pgb-ease);
}
.pgb-form input:focus, .pgb-form select:focus, .pgb-form textarea:focus{
  border-color:var(--pgb-accent); background:var(--pgb-white);
  outline:none; box-shadow:0 0 0 3px rgba(232,165,71,.18);
}
.pgb-form input:invalid:not(:placeholder-shown){ border-color:var(--pgb-warn); }
.pgb-form .pgb-field-row{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
  gap:1rem;
}
.pgb-form .pgb-checkgrid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.75rem;
}
.pgb-form .pgb-checkgrid label{
  display:flex; align-items:center; gap:.5rem;
  padding:.875rem 1rem; background:var(--pgb-surface);
  border:1.5px solid var(--pgb-line); border-radius:var(--pgb-r-md);
  cursor:pointer; font-weight:500; color:var(--pgb-ink);
  transition:all var(--pgb-dur) var(--pgb-ease);
  margin-bottom:0;
}
.pgb-form .pgb-checkgrid label:has(input:checked){
  border-color:var(--pgb-accent); background:#FFF8E8;
  color:var(--pgb-primary); font-weight:600;
}
.pgb-form .pgb-checkgrid input{ accent-color:var(--pgb-accent); }
.pgb-form .pgb-progress{
  display:flex; gap:.375rem; margin-bottom:2rem;
}
.pgb-form .pgb-progress span{
  flex:1; height:4px; background:var(--pgb-line); border-radius:var(--pgb-r-pill);
  transition:background var(--pgb-dur) var(--pgb-ease);
}
.pgb-form .pgb-progress span.active,
.pgb-form .pgb-progress span.done{ background:var(--pgb-accent); }
.pgb-form .pgb-step[hidden]{ display:none; }
.pgb-form .pgb-actions{
  display:flex; justify-content:space-between; gap:1rem; margin-top:2rem;
  flex-wrap:wrap;
}

/* --------------------------------------------------------------------------
   13. Mobile sticky CTA
   -------------------------------------------------------------------------- */
.pgb-sticky-cta-mobile{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  display:none; background:var(--pgb-white);
  border-top:1px solid var(--pgb-line);
  padding:.75rem 1rem;
  gap:.5rem;
  box-shadow:0 -10px 30px rgba(0,0,0,.08);
}
.pgb-sticky-cta-mobile a{
  flex:1; text-align:center; padding:.875rem;
  font-family:var(--pgb-font-sans); font-weight:600;
  border-radius:var(--pgb-r-pill); text-decoration:none;
  font-size:.9375rem;
}
.pgb-sticky-cta-mobile .cta-primary{ background:var(--pgb-accent); color:var(--pgb-primary); }
.pgb-sticky-cta-mobile .cta-secondary{ background:var(--pgb-primary); color:var(--pgb-surface); }
@media (max-width: 767px){
  .pgb-sticky-cta-mobile{ display:flex; }
  body{ padding-bottom:5rem; }
}

/* --------------------------------------------------------------------------
   14. Scroll-reveal animation (progressive enhancement)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference){
  .pgb-reveal{
    opacity:0; transform:translateY(24px);
    transition:opacity 600ms var(--pgb-ease), transform 600ms var(--pgb-ease);
  }
  .pgb-reveal.in{ opacity:1; transform:translateY(0); }
}

/* --------------------------------------------------------------------------
   15. Header + nav polish (works with Hello Elementor default)
   -------------------------------------------------------------------------- */
header.site-header,
.elementor-location-header{
  backdrop-filter:saturate(140%) blur(12px);
  background:rgba(250,250,247,.85)!important;
  border-bottom:1px solid var(--pgb-line);
  transition:all var(--pgb-dur) var(--pgb-ease);
}
.elementor-location-header.pgb-scrolled{
  background:rgba(250,250,247,.98)!important;
  box-shadow:var(--pgb-shadow-sm);
}
.elementor-nav-menu > li > a{
  font-family:var(--pgb-font-sans)!important;
  font-weight:500; color:var(--pgb-primary)!important;
  transition:color var(--pgb-dur) var(--pgb-ease);
}
.elementor-nav-menu > li > a:hover,
.elementor-nav-menu > li.current-menu-item > a{
  color:var(--pgb-accent-600)!important;
}

/* --------------------------------------------------------------------------
   16. Footer
   -------------------------------------------------------------------------- */
footer.site-footer, .elementor-location-footer{
  background:var(--pgb-primary); color:var(--pgb-surface);
  padding:4rem 0 2rem;
}
footer a{ color:var(--pgb-surface); text-decoration:none; }
footer a:hover{ color:var(--pgb-accent); }
.pgb-footer-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:2rem; max-width:var(--pgb-maxw);
  margin:0 auto; padding:0 var(--pgb-gutter);
}
.pgb-footer-col h4{
  color:var(--pgb-accent); font-family:var(--pgb-font-sans);
  font-size:.875rem; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; margin-bottom:1rem;
}
.pgb-footer-col ul{ list-style:none; padding:0; margin:0; }
.pgb-footer-col li{ margin-bottom:.5rem; }
.pgb-footer-bottom{
  border-top:1px solid rgba(250,250,247,.15);
  margin-top:3rem; padding:1.5rem var(--pgb-gutter) 0;
  text-align:center; font-size:.875rem; opacity:.75;
  max-width:var(--pgb-maxw); margin-left:auto; margin-right:auto;
}

/* --------------------------------------------------------------------------
   17. Utility helpers
   -------------------------------------------------------------------------- */
.pgb-container{ max-width:var(--pgb-maxw); margin:0 auto; padding:0 var(--pgb-gutter); }
.pgb-section{ padding:var(--pgb-section-py) 0; }
.pgb-text-center{ text-align:center; }
.pgb-visually-hidden{
  position:absolute!important; width:1px; height:1px; padding:0;
  margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.pgb-skip-link{
  position:absolute; left:1rem; top:-40px;
  background:var(--pgb-primary); color:var(--pgb-surface);
  padding:.5rem 1rem; border-radius:var(--pgb-r-sm);
  transition:top var(--pgb-dur) var(--pgb-ease); z-index:100;
}
.pgb-skip-link:focus{ top:1rem; }

/* --------------------------------------------------------------------------
   18. Reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.01ms!important; transition-duration:.01ms!important;
  }
  .pgb-gradient-animated{ animation:none!important; }
}

/* --------------------------------------------------------------------------
   19. Print
   -------------------------------------------------------------------------- */
@media print{
  .pgb-sticky-cta-mobile, .sitechat-widget, #wpadminbar{ display:none!important; }
  body{ background:#fff; color:#000; }
  a{ color:#000; text-decoration:underline; }
}

/* End of theme-customizations.css */
