/*
Theme Name: TCOLF Recovered
Theme URI: https://tcolf.org/
Author: The Centre of Love Foundation
Description: A self-contained reconstruction of the former thecentreoflove.org website.
Version: 1.0.1
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: tcolf-recovered
*/

:root {
  --e-global-color-primary: #111;
  --e-global-color-secondary: #54595f;
  --e-global-color-text: #333;
  --e-global-color-accent: #e00909;
  --e-global-typography-primary-font-family: "Roboto";
  --e-global-typography-secondary-font-family: "Roboto Slab";
  --e-global-typography-text-font-family: "Roboto";
  --e-global-typography-accent-font-family: "Roboto";
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: #333; background: #fff; font-family: Roboto, Arial, sans-serif; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
img, video, iframe { max-width: 100%; height: auto; }
h1, h2, h3, h4, h5, h6 { margin-top: 0; line-height: 1.2; }

.elementor-section { position: relative; }
.elementor-section-stretched { width: 100%; }
.elementor-section .elementor-container { display: flex; position: relative; margin: 0 auto; width: 100%; max-width: 1140px; }
.elementor-column { position: relative; min-height: 1px; display: flex; }
.elementor-column-wrap, .elementor-widget-wrap { position: relative; width: 100%; }
.elementor-widget-wrap { display: flex; align-content: flex-start; flex-wrap: wrap; }
.elementor-widget { position: relative; width: 100%; }
.elementor-widget-container { position: relative; }
.elementor-element-populated { padding: 10px; }
.elementor-col-100 { width: 100%; }
.elementor-col-50 { width: 50%; }
.elementor-col-33 { width: 33.333%; }
.elementor-col-25 { width: 25%; }
.elementor-col-20 { width: 20%; }
.elementor-col-66 { width: 66.667%; }
.elementor-col-75 { width: 75%; }
.elementor-background-overlay { inset: 0; position: absolute; }
.elementor-button { display: inline-block; padding: 12px 24px; border-radius: 3px; background: #e00909; color: #fff; text-decoration: none; line-height: 1; }
.elementor-align-center { text-align: center; }
.elementor-align-right { text-align: right; }
.elementor-align-justify .elementor-button { width: 100%; text-align: center; }
.elementor-divider { display: flex; padding-block: 15px; }
.elementor-divider-separator { display: block; border-top: 1px solid #ddd; width: 100%; }
.elementor-icon-list-items, .elementor-nav-menu, .sub-menu { padding: 0; margin: 0; list-style: none; }
.elementor-icon-list-item { display: flex; align-items: center; gap: 8px; }
.elementor-nav-menu--main > ul { display: flex; align-items: center; justify-content: center; }
.elementor-nav-menu--main li { position: relative; }
.elementor-nav-menu--main a { display: block; padding: 13px 19px; text-decoration: none; }
.elementor-nav-menu--main .sub-menu { display: none; position: absolute; z-index: 50; min-width: 220px; background: #fff; box-shadow: 0 8px 20px rgb(0 0 0 / 15%); }
.elementor-nav-menu--main li:hover > .sub-menu, .elementor-nav-menu--main li:focus-within > .sub-menu { display: block; }
.elementor-nav-menu--main .sub-menu a:hover { color: #fff; background: #e00909; }
.elementor-nav-menu--dropdown, .elementor-menu-toggle { display: none; }
.elementor-invisible { visibility: visible !important; }
.elementor-widget-image img { display: inline-block; vertical-align: middle; }
.elementor-widget-text-editor > .elementor-widget-container > :first-child { margin-top: 0; }
.elementor-widget-text-editor > .elementor-widget-container > :last-child { margin-bottom: 0; }
.elementor-field-group { margin-bottom: 14px; }
.elementor-field { width: 100%; min-height: 46px; padding: 10px 13px; border: 1px solid #d6d6d6; border-radius: 2px; background: #fff; color: #222; font: inherit; }
textarea.elementor-field { min-height: 130px; resize: vertical; }
.elementor-field:focus { outline: 2px solid rgb(224 9 9 / 20%); border-color: #e00909; }
.elementor-button, button { transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease; }
.elementor-button:hover, button:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgb(0 0 0 / 12%); }
.ha-logo-grid-wrapper { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: center; }
.ha-logo-grid-item { display: flex; align-items: center; justify-content: center; padding: 20px; }
.ha-logo-grid-item img { max-height: 110px; width: auto; object-fit: contain; }
.tcolf-recovered main { min-height: 60vh; }
.elementor-image-carousel-wrapper { overflow: hidden; }
.swiper-wrapper { display: flex; gap: 20px; }
.swiper-slide { flex: 0 0 min(80vw, 700px); }
.gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

@media (max-width: 767px) {
  .elementor-section .elementor-container { flex-wrap: wrap; }
  .elementor-column, .elementor-col-50, .elementor-col-33, .elementor-col-25, .elementor-col-20, .elementor-col-66, .elementor-col-75 { width: 100%; }
  .elementor-nav-menu--main { display: none; }
  .elementor-menu-toggle { display: block; cursor: pointer; font-size: 26px; text-align: right; padding: 16px; }
  .elementor-menu-toggle::before { content: "☰"; }
  .elementor-menu-toggle.is-open::before { content: "×"; }
  .elementor-nav-menu--dropdown.is-open { display: block; position: absolute; left: 0; right: 0; z-index: 100; background: #fff; box-shadow: 0 8px 20px rgb(0 0 0 / 15%); }
  .elementor-nav-menu--dropdown a { display: block; padding: 12px 20px; text-decoration: none; }
  .elementor-nav-menu--dropdown .sub-menu { padding-left: 18px; }
  .elementor-heading-title { overflow-wrap: anywhere; }
  .elementor-element-populated { padding-left: 16px; padding-right: 16px; }
}
