/* Small standalone replacements for interactive WordPress widgets. */
html { scroll-behavior: smooth; }
body { margin: 0; }
[hidden], .elementor-nav-menu--dropdown[hidden] { display: none !important; }
.elementor-invisible { visibility: visible !important; }
button, a, input, textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #c88c35; outline-offset: 4px; }
.elementor-menu-toggle { border: 0; border-radius: 0; }
.elementor-widget-nav-menu .elementor-nav-menu--dropdown:not([hidden]) { display:block; max-height: none; transform: none; width: 100%; top: 100%; left: 0; margin: 8px 0 0; z-index: 100; }
.elementor-widget-nav-menu .elementor-nav-menu--dropdown .elementor-item { justify-content: flex-start; }
.form-trap { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip-path: inset(50%); padding: 0 !important; margin: -1px !important; }
.privacy-note { font-size: 13px; line-height: 1.6; margin: 18px 0 0; color:#c8d9e5; }
.privacy-note a { color: inherit; text-decoration: underline; }
.form-status { font-size: 15px; line-height: 1.5; margin: 12px 0 0; }
.form-status:empty { display: none; }
.form-status[data-state="error"] { color: #9a251d; background:#fff3f1; padding: 12px; }
.form-status[data-state="success"] { color: #215237; background:#eff8f2; padding: 12px; }
button:disabled { opacity: .65; cursor: wait; }
.map-placeholder { min-height: 340px; height: 100%; display: flex; flex-direction: column; gap: 12px; align-items: center; justify-content: center; background: #f0eeeb; color:#242424; text-align:center; padding:30px 20px; line-height:1.6; }
.map-placeholder p { margin: 0; }
.map-placeholder .map-notice { font-size: 13px; }
.map-load { background: #b88645; border: 0; color: white; padding: 14px 22px; }
.map-placeholder a { color: #242424; text-decoration: underline; }
.elementor-icon-box-description a { color:inherit; text-decoration:underline; }
body button.whatsapp-contact { position: fixed; bottom: 22px; left: 22px; z-index: 301; height: 56px; width:56px; padding:0; border:0; display: flex; align-items:center; justify-content:center; border-radius: 50%; background:#25a75b; color:white !important; box-shadow: 0 3px 12px #0003; font-size: 31px; cursor:pointer; }
body button.whatsapp-contact span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body button.whatsapp-contact:hover { background:#21894d; }
.whatsapp-panel { position:fixed; left:22px; bottom:90px; z-index:300; width:400px; max-width:calc(100vw - 44px); max-height:calc(100dvh - 112px); overflow:auto; border-radius:28px; background:#f5fcf9; box-shadow:0 3px 14px #0004; font:16px/1.6 Arial,sans-serif; color:#494949; text-align:left; }
.whatsapp-panel-header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px 16px 26px; background:#25d366; color:#fff; }
.whatsapp-panel-header strong { font-size:20px; letter-spacing:-.5px; }
.whatsapp-panel-header i { font-size:25px; vertical-align:middle; }
body button.whatsapp-close { display:flex; align-items:center; justify-content:center; width:34px; height:34px; padding:0; border:0; border-radius:50%; background:#168a43; color:#fff; font:26px/1 Arial,sans-serif; cursor:pointer; flex-shrink:0; }
body button.whatsapp-close:hover { background:#116c34; }
.whatsapp-panel-body { padding:20px 10px 10px; }
.whatsapp-panel-body p { margin:0 16px 24px; padding:16px 20px; background:white; border:1px solid #e0e7e2; border-radius:26px; box-shadow:0 1px 3px #0002; }
body a.whatsapp-start, body a.whatsapp-start:visited { display:inline-flex; align-items:center; gap:14px; padding:12px 24px; border-radius:36px; background:#168a43; color:white; font-weight:700; text-decoration:none; }
body a.whatsapp-start:hover, body a.whatsapp-start:focus { background:#116c34; color:white; }
body a.whatsapp-start i { font-size:27px; }
@media (max-width:1024px) {
 .elementor-section.fw-navigation { display:block !important; position:relative; background:#f5f6f7; z-index:200; padding:16px 20px !important; margin:0 !important; }
 .fw-navigation > .elementor-container { display:flex; align-items:center; flex-wrap:nowrap; }
 .fw-navigation .site-logo-column { width:75% !important; }
 .fw-navigation .site-logo-column img { width:190px !important; max-width:100%; }
 .fw-navigation .site-nav-column { width:25% !important; position:static; }
 .fw-navigation .site-nav-column .elementor-widget-wrap, .fw-navigation .site-nav-column .elementor-widget-container { position:static; }
 .fw-navigation .site-appointment-column { display:none; }
 .fw-navigation .elementor-widget-wrap { padding:0 !important; margin:0 !important; }
 .fw-navigation .elementor-menu-toggle { margin-left:auto; background:transparent; color:#1d5073; padding:8px; }
 .elementor-section.after-navigation { margin-top:0 !important; padding-top:40px !important; }
 .elementor-widget-nav-menu { position: static; }
 .elementor-widget-nav-menu .elementor-nav-menu--dropdown:not([hidden]) { position: absolute; left:0; right:0; box-shadow:0 12px 18px #0001; }
}
@media (max-width:767px) {
 body button.whatsapp-contact { left:16px; bottom:16px; height:50px; width:50px; font-size:28px; }
 .whatsapp-panel { left:16px; bottom:78px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 94px); border-radius:24px; }
 .elementor-heading-title, .elementor-widget-text-editor, .elementor-widget-text-editor a { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { animation:none !important; transition:none !important; } }

/* Compact spacing for the service directory's existing hero. */
.elementor-section.fw-services-hero { padding-bottom:52px !important; }
@media (max-width:767px) {
 .elementor-section.fw-services-hero { padding-bottom:30px !important; }
}
