/* AGAPA Suisse-Romande — єдиний CSS (site refresh) */

@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap");

:root {
  --agapa-green: #2d8a4e;
  --agapa-green-dark: #1a5c34;
  --agapa-green-light: #7cb88a;
  --agapa-soft: #e8f3e4;
  --agapa-bg: #f4f9f1;
  --agapa-surface: #ffffff;
  --agapa-rose: #b86b6b;
  --agapa-text: #1e2d24;
  --agapa-muted: #4d6356;
  --agapa-border: rgba(45, 138, 78, 0.22);
  --agapa-max: 1120px;
  --agapa-radius: 10px;
  --font-heading: "Oswald", sans-serif;
  --font-body: "Source Sans 3", system-ui, sans-serif;
  --shadow: 0 12px 40px rgba(26, 92, 52, 0.12);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body,
body.custom-background,
body.elementor-page {
  margin: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 1.0625rem !important;
  line-height: 1.7 !important;
  color: var(--agapa-text) !important;
  background: var(--agapa-bg) !important;
}

/* Приховати WP/Elementor шум */
svg[role="none"][viewbox="0 0 0 0"],
.elementor-add-new-section,
#wpadminbar {
  display: none !important;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: var(--agapa-green-dark);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

a:hover {
  color: var(--agapa-green);
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.elementor-heading-title,
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-heading) !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em;
  color: var(--agapa-green-dark) !important;
  line-height: 1.25 !important;
}

h1.entry-title,
.elementor-page-title {
  font-size: clamp(1.75rem, 4vw, 2.35rem) !important;
  margin-bottom: 1rem !important;
}

p,
.elementor-widget-text-editor,
.entry-content {
  color: var(--agapa-text);
}

/* Layout */
#outer-wrap,
.site.clr {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

#wrap,
#main {
  flex: 1;
}

#content,
.site-content,
.elementor-section.elementor-section-boxed > .elementor-container {
  width: min(100% - 2rem, var(--agapa-max)) !important;
  max-width: var(--agapa-max) !important;
  margin-inline: auto !important;
}

/* Skip link (removed from HTML; hide if legacy markup remains) */
a.skip-link,
.skip-link.screen-reader-text {
  display: none !important;
  visibility: hidden !important;
}

.pum-overlay,
.pum,
[id^="pum-"],
[id^="popmake-"] {
  display: none !important;
}

body.agapa-nav-open {
  overflow: hidden;
}

/* Header / nav */
#masthead,
header#masthead {
  background: linear-gradient(165deg, var(--agapa-green-dark) 0%, var(--agapa-green) 55%, #3da364 100%) !important;
  color: #fff !important;
  box-shadow: var(--shadow);
  position: relative;
  z-index: 100;
}

#masthead .elementor-section-wrap,
#masthead .elementor-widget-wrap {
  overflow: visible;
}

#masthead .hfe-site-logo-img {
  max-height: 72px;
  width: auto;
}

#masthead .elementor-element-71c72ae .elementor-heading-title {
  font-size: clamp(0.95rem, 2.2vw, 1.15rem) !important;
  color: #fff !important;
  margin: 0 !important;
  line-height: 1.35 !important;
}

#masthead a,
.hfe-nav-menu a.hfe-menu-item,
.hfe-nav-menu a.hfe-sub-menu-item,
.elementor-widget-nav-menu a {
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 500 !important;
}

#masthead a:hover,
.hfe-nav-menu a:hover {
  color: var(--agapa-soft) !important;
}

#masthead ul.hfe-nav-menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

#masthead .hfe-nav-menu .sub-menu {
  background: var(--agapa-surface) !important;
  border-radius: var(--agapa-radius) !important;
  box-shadow: var(--shadow) !important;
  padding: 0.35rem 0 !important;
  list-style: none;
  margin: 0;
}

#masthead .hfe-nav-menu .sub-menu a {
  color: var(--agapa-green-dark) !important;
}

.hfe-nav-menu__toggle,
.hfe-flyout-trigger {
  color: #fff !important;
  cursor: pointer;
  font-size: 1.35rem;
  line-height: 1;
  padding: 0.35rem 0.5rem;
}

/* Desktop: horizontal nav */
@media (min-width: 1025px) {
  .elementor-hidden-desktop {
    display: none !important;
  }

  #masthead .elementor-element-1cb7dd5 {
    display: block !important;
  }

  #masthead .hfe-layout-horizontal nav > .hfe-nav-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0.15rem 0.35rem;
  }

  #masthead .hfe-has-submenu {
    position: relative;
  }

  #masthead .hfe-has-submenu > .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
    z-index: 200;
  }

  #masthead .hfe-has-submenu:hover > .sub-menu,
  #masthead .hfe-has-submenu:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  #masthead .hfe-flyout-wrapper {
    display: none !important;
  }
}

/* Tablet / mobile: burger + flyout drawer */
@media (max-width: 1024px) {
  #masthead .elementor-element-1cb7dd5.elementor-hidden-tablet {
    display: none !important;
  }

  #masthead .elementor-element-d50234d {
    display: block !important;
  }

  #masthead .elementor-element-d50234d > .elementor-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-block: 0.35rem !important;
  }

  #masthead .hfe-flyout-wrapper {
    position: static;
  }

  #masthead .hfe-flyout-container {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 99990;
  }

  #masthead .hfe-flyout-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 40, 25, 0.55);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s;
    pointer-events: none;
    z-index: 99991;
  }

  #masthead .hfe-flyout-overlay.agapa-overlay-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  #masthead .hfe-side {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(320px, 88vw);
    max-width: 100%;
    background: linear-gradient(180deg, var(--agapa-green-dark), #163d24);
    overflow-y: auto;
    transform: translateX(-105%);
    transition: transform 0.28s ease;
    z-index: 99992;
    pointer-events: auto;
    padding: 1rem 0 2rem;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.25);
  }

  #masthead .hfe-side.hfe-flyout-open {
    transform: translateX(0);
  }

  #masthead .hfe-flyout-content.push {
    position: static;
    transform: none;
  }

  #masthead #menu-1-6f17aff {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0 0.75rem;
  }

  #masthead #menu-1-6f17aff .hfe-menu-item,
  #masthead #menu-1-6f17aff .hfe-sub-menu-item {
    display: block;
    padding: 0.55rem 0.65rem;
    border-radius: 6px;
  }

  #masthead #menu-1-6f17aff .hfe-has-submenu > .sub-menu {
    display: none;
    padding-left: 0.5rem;
  }

  #masthead #menu-1-6f17aff .hfe-has-submenu.agapa-submenu-open > .sub-menu {
    display: block;
  }

  #masthead .hfe-flyout-close {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    font-size: 1.35rem;
    color: #fff;
    cursor: pointer;
  }
}

.elementor-shape-fill,
.ha-shape-divider {
  fill: var(--agapa-bg) !important;
}

/* Content sections */
.elementor-section:not(#masthead .elementor-section) {
  padding-block: 1.75rem !important;
}

.elementor-inner-section,
.elementor-widget-wrap {
  gap: 0.5rem;
}

.elementor-column-gap-default > .elementor-column > .elementor-element-populated {
  padding: 1rem !important;
}

.elementor-widget-container {
  background: transparent !important;
}

/* Cards / accordions */
.eael-advanced-accordion .eael-accordion-header,
.elementor-accordion-item {
  background: var(--agapa-surface) !important;
  border: 1px solid var(--agapa-border) !important;
  border-radius: var(--agapa-radius) !important;
  margin-bottom: 0.5rem !important;
}

.eael-accordion-content,
.elementor-accordion-content {
  background: var(--agapa-surface) !important;
  border: 1px solid var(--agapa-border) !important;
  border-top: none !important;
  padding: 1rem 1.25rem !important;
}

/* Buttons & forms */
.elementor-button,
.wpforms-submit,
button,
input[type="submit"],
.btn {
  background: var(--agapa-green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--agapa-radius) !important;
  padding: 0.65rem 1.25rem !important;
  font-family: var(--font-body) !important;
  cursor: pointer;
}

.elementor-button:hover,
.wpforms-submit:hover {
  background: var(--agapa-green-dark) !important;
}

input[type="text"],
input[type="email"],
input[type="tel"],
textarea,
select,
.wpforms-field input,
.wpforms-field textarea {
  border: 1px solid var(--agapa-border) !important;
  border-radius: 6px !important;
  padding: 0.55rem 0.75rem !important;
  font-family: var(--font-body) !important;
  width: 100%;
  max-width: 100%;
}

/* Events / MEC */
.mec-wrap,
.mec-event-article,
.mec-calendar {
  font-family: var(--font-body) !important;
}

.mec-color,
.mec-bg-color {
  color: var(--agapa-green) !important;
}

/* Footer */
#colophon,
footer#colophon,
.elementor-location-footer {
  background: var(--agapa-green-dark) !important;
  color: #eef5ef !important;
  margin-top: 2rem !important;
}

#colophon a,
footer#colophon a {
  color: #fff !important;
}

#colophon .elementor-heading-title {
  color: #fff !important;
}

/* Contact / maps off */
.elementor-widget-google_maps,
.elementor-widget-google_maps iframe {
  display: none !important;
}

.agapa-address-block {
  background: var(--agapa-surface);
  border: 1px solid var(--agapa-border);
  border-radius: var(--agapa-radius);
  padding: 1.25rem 1.5rem;
  box-shadow: var(--shadow);
}

/* Legacy 2009/2012 */
table {
  border-collapse: collapse;
  width: 100%;
  max-width: 100%;
}

td, th {
  padding: 0.5rem;
  border: 1px solid var(--agapa-border);
}

.site-header h1 a,
.site-title a {
  color: var(--agapa-green-dark) !important;
  font-family: var(--font-heading) !important;
}

.nav-menu a {
  font-weight: 500;
}

/* Grid posts */
.eael-grid-post-holder {
  background: var(--agapa-surface) !important;
  border-radius: var(--agapa-radius) !important;
  overflow: hidden;
  box-shadow: var(--shadow);
}

.eael-entry-title a {
  color: var(--agapa-green-dark) !important;
  text-decoration: none !important;
}

@media (max-width: 900px) {
  .elementor-column {
    width: 100% !important;
  }

  .hfe-nav-menu .hfe-nav-menu {
    flex-direction: column;
  }
}

@media (max-width: 768px) {
  body {
    font-size: 1rem !important;
  }

  .elementor-section {
    padding-block: 1.25rem !important;
  }
}
