/* Public contact shortcuts only. Company Profile owns every destination. */
.pbes-address-link, .pbes-address-text { min-width: 0; overflow-wrap: anywhere; }
.pbes-address-link { color: inherit; text-decoration: underline; text-decoration-color: #7c9e8d80; text-underline-offset: 3px; }
.pbes-address-link:hover { text-decoration-color: currentColor; }
.pbes-address-link:focus-visible { outline: 3px solid #087b40; outline-offset: 4px; border-radius: 2px; }
.pbes-footer .pbes-address-link:focus-visible { outline-color: #b4f5cd; }
.pbes-footer .pbes-social-links { justify-content: flex-start; gap: 8px !important; }
/* Stable Company Profile keys select brand treatments; unknown keys stay neutral. */
.pbes-footer .pbes-social-button { --social-color: #46515b; --social-background: #f4f7f5; position: relative; display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 50%; background: transparent; color: var(--social-color); text-decoration: none; }
.pbes-footer .pbes-social-button::before { content: ''; position: absolute; width: 30px; height: 30px; box-sizing: border-box; border: 1px solid #ffffff80; border-radius: 50%; background: var(--social-background); transition: box-shadow .2s; }
.pbes-footer .pbes-social-button .pbes-social-icon { position: relative; width: 18px; height: 18px; }
.pbes-footer .pbes-social-button--facebook_url { --social-color: #1877f2; }
.pbes-footer .pbes-social-button--whatsapp_url { --social-color: #fff; --social-background: #128c4a; }
.pbes-footer .pbes-social-button--linkedin_url { --social-color: #fff; --social-background: #0a66c2; }
.pbes-footer .pbes-social-button--youtube_url { --social-color: #e60000; }
.pbes-footer .pbes-social-button--instagram_url { --social-color: #fff; --social-background: linear-gradient(35deg, #f9ce34, #ee2a7b 50%, #6228d7); }
.pbes-footer .pbes-social-button--twitter_url { --social-color: #151515; }
.pbes-footer .pbes-social-button:hover::before, .pbes-footer .pbes-social-button:focus-visible::before { box-shadow: 0 0 0 2px #ffffff38, 0 3px 10px #00170b50; }
.pbes-footer .pbes-social-button:focus-visible { outline: 3px solid #b4f5cd; outline-offset: 3px; }
@media (max-width: 782px), (pointer: coarse) {
	.pbes-footer .pbes-social-links { gap: 4px !important; }
	.pbes-footer .pbes-social-button { width: 44px; height: 44px; }
}
.pbes-social-icon { display: block; width: 20px; height: 20px; flex-shrink: 0; }
/* The desktop button sits in the outer gutter; no separate legal-row spacer. */
.pbes-footer--floating-contact { padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
.pbes-whatsapp-float { position: fixed; z-index: 90; right: calc(24px + env(safe-area-inset-right, 0px)); bottom: calc(24px + env(safe-area-inset-bottom, 0px)); width: 52px; height: 52px; border-radius: 50%; color: #fff; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.pbes-whatsapp-disc { display: grid; place-items: center; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(145deg, #119b54, #087b40); border: 1px solid #ffffff70; box-shadow: 0 3px 8px #00361f20, 0 6px 20px #00361f26; animation: pbes-whatsapp-breathe 2.2s ease-in-out infinite; }
.pbes-whatsapp-disc .pbes-social-icon { width: 27px; height: 27px; }
.pbes-whatsapp-float::before { content: ''; position: absolute; inset: 0; border: 1px solid #15995760; border-radius: inherit; pointer-events: none; animation: pbes-whatsapp-ring 2.2s ease-out infinite; }
.pbes-whatsapp-float:hover .pbes-whatsapp-disc, .pbes-whatsapp-float:focus-visible .pbes-whatsapp-disc { box-shadow: 0 4px 10px #00361f30, 0 8px 24px #00361f38; }
.pbes-whatsapp-float:focus-visible { outline: 3px solid #e0001b; outline-offset: 5px; }
.pbes-whatsapp-tooltip { position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%); white-space: nowrap; background: #003b25; color: #fff; padding: 8px 12px; border-radius: 6px; font-size: 13px; font-weight: 600; box-shadow: 0 3px 12px #00271920; pointer-events: none; opacity: 0; visibility: hidden; }
.pbes-whatsapp-float:hover .pbes-whatsapp-tooltip, .pbes-whatsapp-float:focus-visible .pbes-whatsapp-tooltip { opacity: 1; visibility: visible; }
.pbes-whatsapp-float.is-left .pbes-whatsapp-tooltip { right: auto; left: calc(100% + 12px); }
@keyframes pbes-whatsapp-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.045); } }
@keyframes pbes-whatsapp-ring { 0% { transform: scale(1); opacity: .6; } 80%, 100% { transform: scale(1.28); opacity: 0; } }
@media (max-width: 600px) {
	.pbes-whatsapp-float { width: 44px; height: 44px; right: calc(16px + env(safe-area-inset-right, 0px)); bottom: calc(36px + env(safe-area-inset-bottom, 0px)); }
	.pbes-whatsapp-disc .pbes-social-icon { width: 24px; height: 24px; }
}
/* Tablet clearance for the footer credit; retain desktop/mobile placement. */
@media (min-width: 768px) and (max-width: 1024px) {
	.pbes-whatsapp-float { bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
}
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
	.pbes-whatsapp-float { cursor: grab; }
	.pbes-whatsapp-float.is-dragging { cursor: grabbing; user-select: none; }
	.pbes-whatsapp-float.is-dragging .pbes-whatsapp-disc, .pbes-whatsapp-float.is-dragging::before { animation-play-state: paused; }
	.pbes-whatsapp-float.is-dragging .pbes-whatsapp-disc { box-shadow: 0 6px 22px #00361f50; }
	.pbes-whatsapp-float.is-dragging .pbes-whatsapp-tooltip { visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
	.pbes-whatsapp-disc, .pbes-whatsapp-float::before { animation: none; }
	.pbes-whatsapp-float::before { display: none; }
	.pbes-footer .pbes-social-button::before { transition: none; }
}

/* Company Profile slogan: secondary branding, omitted entirely when empty. */
.pbes-header .pbes-brand-text > .pbes-brand-tagline { font-size: 11px; line-height: 1.35; letter-spacing: 0; text-transform: none; color: #53695f; margin-top: 2px; max-width: 240px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pbes-footer .pbes-brand-text > .pbes-brand-tagline { font-size: 11px; line-height: 1.45; letter-spacing: 0; text-transform: none; color: #bed5c8; margin-top: 4px; overflow-wrap: anywhere; }
@media(max-width:1279px) { .pbes-header .pbes-brand-text > .pbes-brand-tagline { display: none; } }

/* Mobile footer: full-width branding/contact around two compact navigation columns.
 * Keep the desktop grid and all Company Profile content/destinations unchanged. */
@media (max-width: 600px) {
	.pbes-footer { padding-top: 26px; }
	.pbes-footer .pbes-footer-grid,
	.pbes-footer .pbes-footer-grid:has(>div:nth-child(3):last-child),
	.pbes-footer .pbes-footer-grid:has(>div:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 16px; padding-bottom: 16px; }
	.pbes-footer-grid > div { min-width: 0; }
	.pbes-footer-grid > .pbes-footer-brand,
	.pbes-footer-grid > .pbes-footer-contact { grid-column: 1 / -1; }
	.pbes-footer-brand { padding-bottom: 22px; border-bottom: 1px solid #9ae5bf40; }
	.pbes-footer .pbes-footer-brand .pbes-brand { max-width: none; gap: 12px; border: 0; padding: 0; margin: 0; }
	.pbes-footer .pbes-logo { width: 64px; height: 64px; flex-shrink: 0; }
	.pbes-footer .pbes-brand-text { min-width: 0; }
	.pbes-footer .pbes-brand-text strong { font-size: 30px; }
	.pbes-footer .pbes-brand-text > span { font-size: 9px; line-height: 1.5; }
	.pbes-footer .pbes-brand-text > .pbes-brand-tagline { font-size: 13px; color: #e1f0e7; margin-top: 4px; }
	.pbes-footer-brand > p { display: none; }
	.pbes-footer-grid h2 { font-size: 15px; color: #f3fff7; margin-bottom: 12px; }
	.pbes-footer-grid li { font-size: 14px; line-height: 1.55; }
	.pbes-footer-quick-links ul, .pbes-footer-explore ul { gap: 8px; }
	.pbes-footer-contact { padding-top: 20px; border-top: 1px solid #9ae5bf40; }
	.pbes-footer .pbes-contact-links { gap: 10px; }
	.pbes-footer .pbes-contact-links li { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 10px; }
	.pbes-footer .pbes-contact-links a, .pbes-footer .pbes-address-text { min-width: 0; overflow-wrap: anywhere; }
	/* 42px hit areas around 32px circles provide a 10px visual gap. */
	.pbes-footer .pbes-social-links { justify-content: flex-start; gap: 0 !important; margin-top: 16px !important; }
	.pbes-footer .pbes-social-links li { flex: 0 0 42px; }
	.pbes-footer .pbes-social-button { width: 42px; height: 44px; }
	.pbes-footer .pbes-social-button::before { width: 32px; height: 32px; }
	.pbes-footer .pbes-social-button .pbes-social-icon { width: 16px; height: 16px; }
	.pbes-footer-bottom { border: 0; padding-block: 0 16px; }
	.pbes-footer-bottom .pbes-container { padding-top: 18px; border-top: 1px solid #9ae5bf40; gap: 8px; }
	/* 72px + the final group's 16px = 88px: fixed button's 36px offset,
	 * 44px target, and 8px clearance. No extra copyright spacer when absent. */
	.pbes-footer--floating-contact { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
	/* A configured copyright row provides the social clearance itself. Leave
	 * space beside its text for the floating button instead of a blank block. */
	.pbes-footer--floating-contact:has(.pbes-footer-bottom) { padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
	.pbes-footer--floating-contact .pbes-footer-bottom span { padding-inline-end: 60px; }
}
@media (max-width: 339px) {
	/* Both rows start at the content edge: four targets, then three. */
	.pbes-footer .pbes-social-links:has(>li:nth-child(5)) { max-width: 168px; margin-inline: 0; justify-content: flex-start; }
}
