
/*
Theme Name: Netwerk
Description: Custom Hello Elementor child theme for Netwerk Senioren Limburg.
Author: Netwerk
Template: hello-elementor
Version: 1.0.0
Text Domain: netwerk
*/

/* ==========================================
   GLOBAL VARIABLES
========================================== */

:root {
  --netwerk-purple: #806d98;
  --netwerk-brown: #80635f;
  --netwerk-green: #518b71;
  --netwerk-teal: #4d7880;
  --netwerk-gold: #d4a252;

  --netwerk-white: #ffffff;
  --netwerk-black: #000000;
  --netwerk-text: #222222;

  --netwerk-font-heading: Georgia, serif;
  --netwerk-font-body: Arial, sans-serif;

  --netwerk-content-width: 1200px;
  --netwerk-section-spacing: 60px;

  --netwerk-header-height: 100px;
  --netwerk-logo-size: 160px;
  --netwerk-logo-left: 30px;
  --netwerk-logo-top: 20px;
}

/* ==========================================
   GENERAL
========================================== */

body {
  margin: 0;
  color: var(--netwerk-text);
  font-family: var(--netwerk-font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
}

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

/* ==========================================
   TYPOGRAPHY
========================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  font-family: var(--netwerk-font-heading);
  font-weight: 700;
  line-height: 1.2;
}

h1 {
  font-size: 48px;
}

h2 {
  font-size: 32px;
}

h3 {
  font-size: 26px;
}

h4 {
  font-size: 22px;
}

h5 {
  font-size: 20px;
}

h6 {
  font-size: 18px;
}

p {
  margin-top: 0;
  margin-bottom: 20px;
}

a {
  color: var(--netwerk-green);
  text-decoration: none;
  transition: color .3s ease;
}

a:hover {
  color: var(--netwerk-brown);
}

/* ==========================================
   GLOBAL CONTAINER
========================================== */

.netwerk-container {
  width: 100%;
  max-width: var(--netwerk-content-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.netwerk-section {
  padding-top: var(--netwerk-section-spacing);
  padding-bottom: var(--netwerk-section-spacing);
}

/* ==========================================
   BUTTONS
========================================== */

.netwerk-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 28px;
  background: var(--netwerk-green);
  color: var(--netwerk-white);
  font-family: var(--netwerk-font-body);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  border: 0;
  border-radius: 4px;
  text-decoration: none;
  transition: background .3s ease, color .3s ease;
}

.netwerk-button:hover {
  background: var(--netwerk-brown);
  color: var(--netwerk-white);
}


/* ==========================================
   HEADER
========================================== */

.netwerk-header {
  position: relative;
  z-index: 100;
  width: 100%;
  min-height: var(--netwerk-header-height);
  background: var(--netwerk-white);
  overflow: visible;
}

/* ==========================================
   HEADER INNER CONTAINER
========================================== */

.netwerk-header-inner {
  position: relative;
  width: 100%;
  max-width: var(--netwerk-content-width);
  min-height: var(--netwerk-header-height);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
  overflow: visible;
}

/* ==========================================
   LOGO CONTAINER
========================================== */

.netwerk-logo {
  position: absolute;
  z-index: 101;
  top: var(--netwerk-logo-top);
  left: 24px;

  display: flex;
  align-items: center;
  justify-content: center;

  width: var(--netwerk-logo-size);
  height: var(--netwerk-logo-size);

  padding: 20px;
  background: var(--netwerk-white);
  border-radius: 50%;
  overflow: hidden;
}

/* ==========================================
   LOGO IMAGE
========================================== */

.netwerk-logo-image {
  width: 100%;
}

.netwerk-logo-image img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  object-fit: contain;
}


/* ==========================================
   HERO BANNER
========================================== */

.netwerk-hero {
  position: relative;
  z-index: 1;
  min-height: 500px;
  overflow: hidden;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;

  border-bottom: 5px solid var(--netwerk-gold);
}

/* Hero heading */

.netwerk-hero .elementor-heading-title {
  margin: 0;
  color: var(--netwerk-white);
  font-family: var(--netwerk-font-heading);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}

/* ==========================================
   TABLET
========================================== */

@media (max-width: 1024px) {

  :root {
    --netwerk-section-spacing: 50px;
    --netwerk-header-height: 85px;
    --netwerk-logo-size: 130px;
    --netwerk-logo-left: 20px;
    --netwerk-logo-top: 15px;
  }

  h1 {
    font-size: 40px;
  }

  h2 {
    font-size: 30px;
  }

  .netwerk-hero {
    min-height: 400px;
  }

  .netwerk-logo {
    padding: 15px;
  }
}

/* ==========================================
   MOBILE
========================================== */

@media (max-width: 767px) {

  :root {
    --netwerk-section-spacing: 40px;
    --netwerk-header-height: 70px;
    --netwerk-logo-size: 100px;
    --netwerk-logo-left: 15px;
    --netwerk-logo-top: 10px;
  }

  h1 {
    font-size: 32px;
  }

  h2 {
    font-size: 26px;
  }

  h3 {
    font-size: 22px;
  }

  .netwerk-container {
    padding-left: 20px;
    padding-right: 20px;
  }

  .netwerk-logo {
    padding: 12px;
  }

  .netwerk-hero {
    min-height: 320px;
  }

  .netwerk-hero .elementor-heading-title {
    font-size: 32px;
  }
}
