/* CSS RESET & BASELINE NORMALIZE */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,main,menu,nav,output,ruby,section,summary,time,mark,audio,video {
  margin:0; padding:0; border:0; font-size:100%; font:inherit; vertical-align:baseline; box-sizing:border-box;
}
body {line-height:1;}
ol,ul {list-style:none;}
a {text-decoration:none; color:inherit;}
button,input,select,textarea {font:inherit; outline:none;}
img {max-width:100%; height:auto; display:block;}
html {box-sizing: border-box; scroll-behavior:smooth;}
*, *:before, *:after {box-sizing: inherit;}

:root {
  --color-bg: #fff;
  --color-fg: #111;
  --color-fg-light: #3d3d3d;
  --color-fg-dark: #000;
  --color-primary: #111;
  --color-secondary: #292929;
  --color-tertiary: #777;
  --brand-green: #39723C;
  --brand-green-light: #68A065;
  --brand-accent: #F5F2EB;
  --color-gray-50: #f7f7f7;
  --color-gray-100: #ececec;
  --color-gray-200: #e2e2e2;
  --color-gray-300: #cccccc;
  --color-gray-400: #999999;
  --color-gray-600: #575757;
  --color-gray-900: #191919;
  --shadow-dark: 0 6px 32px rgba(0,0,0,0.09), 0 1.5px 5px rgba(0,0,0,0.11);
  --transition: 0.18s cubic-bezier(.5,1.7,.45,1);
  --border-radius-sm: 6px;
  --border-radius-md: 12px;
  --border-radius-lg: 24px;
}

/* TYPOGRAPHY */
body {
  background: var(--color-bg);
  color: var(--color-fg);
  font-family: 'Open Sans',Arial,Helvetica,sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.7;
  min-height: 100vh;
}
h1, h2, h3, h4, h5, h6 {
  font-family: 'Montserrat', 'Open Sans', Arial, Helvetica, sans-serif;
  font-weight: 700;
  color: var(--color-fg-dark);
  margin-bottom: 16px;
}
h1 {font-size: 2.4rem; letter-spacing: -1.2px;}
h2 {font-size: 2rem; letter-spacing: -1px;}
h3 {font-size: 1.4rem; letter-spacing: -0.7px;}
h4 {font-size: 1.14rem;}
p,li,blockquote {
  color: var(--color-fg-light);
  font-size:1rem;
  margin-bottom:16px;
}
blockquote {
  font-style:italic; border-left:4px solid var(--brand-green); padding-left:16px; color: var(--color-fg-dark); background:var(--color-gray-50); border-radius:var(--border-radius-sm); margin-bottom: 24px;
}
strong,b {font-weight:700; color:var(--color-fg-dark);}

/* LAYOUT CONTAINERS */
.container {
  width: 100%; max-width: 1180px; margin: 0 auto;
  padding: 0 20px;
}
.content-wrapper {
  display: flex; flex-direction: column; gap: 20px;
}

.section { margin-bottom: 60px; padding: 40px 20px; }
.card-container { display: flex; flex-wrap: wrap; gap: 24px; }
.card { margin-bottom: 20px; position: relative; padding: 24px; background:var(--color-bg); border-radius:var(--border-radius-md); box-shadow: var(--shadow-dark); }
.content-grid { display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; }
.text-image-section { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; }
.testimonial-card { display: flex; align-items: center; gap: 20px; padding: 20px; background: var(--color-gray-50); border-radius: var(--border-radius-md); box-shadow: 0 2px 14px rgba(0,0,0,0.05); margin-bottom: 20px; }
.feature-item { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; background:var(--color-gray-100); padding:24px; border-radius:var(--border-radius-md); min-width:230px; box-shadow: 0 2px 8px rgba(0,0,0,0.03); }

/* HEADER & NAVIGATION */
header {
  background: #fff;
  box-shadow: 0 1px 0 rgba(0,0,0,0.05);
  position: sticky; top: 0; z-index: 30; width: 100%;
}
header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
}
.logo img { height: 38px; width:auto; margin-right:24px; vertical-align: middle; }
.main-nav { display: flex; gap: 28px; align-items: center; }
.main-nav a {
  color: var(--color-fg-dark);
  font-family: 'Montserrat', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  position: relative;
  transition: color var(--transition);
  padding:2px 0;
}
.main-nav a:hover,
.main-nav a:focus {
  color: var(--brand-green);
}
.cta-button.primary {
  background: var(--color-fg-dark);
  color: #fff;
  border-radius: var(--border-radius-md);
  padding:12px 26px;
  font-size:1rem;
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  margin-left: 32px;
  box-shadow: 0 3px 20px rgba(20,20,20,0.04);
  border: none;
  cursor: pointer;
  transition: background var(--transition), color var(--transition), box-shadow var(--transition);
  outline:none;
}
.cta-button.secondary {
  background: #fff;
  color: var(--color-fg-dark);
  border: 2px solid var(--color-fg-dark);
  border-radius: var(--border-radius-md);
  padding: 12px 26px;
  font-size:1rem;
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  box-shadow: 0 3px 20px rgba(20,20,20,0.02);
  cursor: pointer;
  transition: background var(--transition), color var(--transition), box-shadow var(--transition);
  outline:none;
}
.cta-button.primary:hover,
.cta-button.primary:focus {
  background: var(--brand-green);
  color: #fff;
  box-shadow: 0 6px 24px rgba(57,114,60,0.10);
}
.cta-button.secondary:hover,
.cta-button.secondary:focus {
  background: var(--brand-green);
  color:#fff;
  border-color:var(--brand-green);
  box-shadow: 0 3px 24px rgba(57,114,60,0.09);
}

/* MOBILE MENU BUTTONS */
.mobile-menu-toggle {
  display: none;
  background: transparent;
  border: none;
  font-size: 2rem;
  color: var(--color-fg-dark);
  cursor: pointer;
  z-index:41;
  margin-left:16px;
  padding:4px 16px;
  border-radius:var(--border-radius-sm);
  transition: background var(--transition);
}
.mobile-menu-toggle:focus,
.mobile-menu-toggle:hover {
  background:var(--color-gray-200);
}
/* MOBILE MENU OVERLAY */
.mobile-menu {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: 100vw; max-width: 420px;
  background: #fff;
  box-shadow: -2px 0 26px 0 rgba(0,0,0,0.18);
  transform: translateX(105%);
  transition: transform 0.35s cubic-bezier(.77,0,.18,1);
  z-index: 1003;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap:0;
  padding-top:44px;
}
.mobile-menu.open {
  transform: translateX(0); pointer-events:auto;
}
.mobile-menu-close {
  background:transparent; border:none;
  font-size:1.8rem; color:var(--color-fg-dark);
  position:absolute; top:14px; right:18px; z-index:1005;
  cursor:pointer; padding:4px; border-radius:var(--border-radius-sm);
}
.mobile-menu-close:focus,
.mobile-menu-close:hover { background:var(--color-gray-200);}
.mobile-nav {
  display:flex; flex-direction:column; gap:18px;
  padding:52px 26px 24px 26px;
}
.mobile-nav a {
  font-family:'Montserrat',sans-serif; font-size:1.12rem; color:var(--color-fg-dark);
  font-weight: 600;
  padding:14px 0;
  border-bottom:1px solid var(--color-gray-100);
  transition: color var(--transition);
  text-align:left;
}
.mobile-nav a:last-child { border-bottom: none; }
.mobile-nav a:hover,
.mobile-nav a:focus { color:var(--brand-green);}

/* HERO STYLES */
.hero,.workshops-hero {
  background: #fff;
  display:flex;
  align-items:center;
  min-height: 340px;
  padding-top: 30px; padding-bottom:30px;
}
.hero .content-wrapper,.workshops-hero .content-wrapper {
  align-items:flex-start; justify-content:center;
  gap: 22px;
  max-width:700px;
}
.hero h1,.workshops-hero h1 {
  font-size:2.3rem;
  color: var(--color-primary);
}
.hero p,.workshops-hero p {
  font-size: 1.19rem;
  color: var(--color-tertiary);
}

/* FEATURES SECTION */
.features {
  background:var(--color-bg);
}
.feature-grid { display: flex; flex-wrap: wrap; gap: 24px; }
.feature-item {
  min-width:230px; flex:1 1 200px; max-width:320px;
  transition: box-shadow var(--transition), transform var(--transition);
}
.feature-item:hover {
  box-shadow: 0 6px 26px rgba(57,114,60,0.07);
  transform: translateY(-2px) scale(1.015);
}
.feature-icon {
  font-size: 2rem; color: var(--brand-green); background:#fff; border-radius:50%; width:48px; height:48px; display:flex; align-items:center; justify-content:center;
}

/* CARDS & SERVICES */
.card-container, .service-cards, .article-preview-grid {
  display: flex; flex-wrap: wrap; gap: 24px; margin-bottom:24px;
}
.card, .service-card, .article-preview {
  background:var(--color-bg);
  border-radius: var(--border-radius-md);
  padding: 28px 22px;
  box-shadow:var(--shadow-dark);
}
.card, .service-card {
  flex:1 1 250px; max-width:360px;
  transition: box-shadow var(--transition), transform var(--transition);
}
.card:hover, .service-card:hover {
  box-shadow: 0 8px 40px rgba(0,0,0,0.11);
  transform: translateY(-4px);
}
.article-preview {
  flex: 1 1 220px; min-width: 190px; margin-bottom: 20px;
  transition:box-shadow var(--transition),transform var(--transition);
}
.article-preview:hover {
  box-shadow: 0 6px 22px rgba(57,114,60,0.07);
  transform: translateY(-2px) scale(1.01);
}
.article-preview a {
  color:var(--brand-green);
  font-weight:600;
  transition: color var(--transition);
}
.article-preview a:hover {
  color:var(--color-fg-dark);
}
.service-cards .service-card .price,
.price,
.price-tag {
  font-family: 'Montserrat',sans-serif;
  font-size:1.04rem;
  color:var(--brand-green);
  margin-top:8px;
  font-weight:700;
  background:var(--color-gray-100);
  padding:6px 14px;
  border-radius:var(--border-radius-sm);
  display:inline-block;
  letter-spacing:0.01em;
}

/* TESTIMONIALS */
.testimonials {
  background: var(--color-gray-50);
  padding-top: 38px; padding-bottom:38px;
}
.testimonial-card blockquote {
  flex:1 1 auto;
  font-size: 1.16rem;
  color: var(--color-fg-dark);
  background:none;
  margin-bottom: 0;
  border-left:4px solid var(--brand-green-light);
}
.testimonial-author {
  font-size: 1rem;
  font-family: 'Open Sans',sans-serif;
  color: var(--color-fg);
  margin-top:4px; margin-left:8px;
}

/* TABLES */
table {
  border-collapse:collapse;
  margin-top:15px;
  width:100%; background:#fff;
}
thead th {
  font-weight:700;
  background:var(--color-gray-200);
  color:var(--color-fg-dark);
  font-size:1rem;
  padding:11px 8px;
}
tbody td {
  font-size:1rem;
  color:var(--color-fg);
  padding:11px 8px;
  border-top:1px solid var(--color-gray-200);
  text-align:center;
}
tbody td:first-child, thead th:first-child {
  text-align:left;
}

/* BADGE ICONS */
.badge-icons { display: flex; gap: 12px; flex-wrap: wrap; margin-top:12px; margin-bottom:8px;}
.badge-icons span {
  background:var(--color-gray-200);
  color:var(--color-fg);
  font-size:0.97rem;
  border-radius: var(--border-radius-sm);
  padding: 3px 12px;
  font-family: 'Montserrat',sans-serif;
  font-weight: 500;
}

/* ABOUT-LIKE LIST */
ul {
  margin-bottom: 20px;
}
li {
  margin-bottom:12px;
  padding-left:19px;
  position:relative;
}
li:before {
  content:'';
  display:inline-block;
  width:7px;height:7px;
  border-radius:50%;
  background:var(--color-gray-400);
  position:absolute;left:0;top:9px;
}

/* NEWSLETTER */
.newsletter-signup .cta-button {
  margin-top:12px;
  min-width:190px;
}

/* CTA BLOCKS */
.cta-end,.cta-section {
  background:var(--brand-accent);
  padding:40px 0;
  display:flex;
  align-items:center;
  border-radius:var(--border-radius-lg);
  box-shadow: 0 2px 12px rgba(20,20,20,0.03);
}
.cta-end .cta-button, .cta-section .cta-button {
  margin-top:22px;
}

/* FOOTER */
footer {
  background:var(--color-gray-900);
  color:#fff;
  padding:38px 0 20px 0;
  font-size:0.99rem;
}
.footer-nav {
  display:flex;gap:28px;justify-content:center;align-items:center;
  margin-bottom:22px;
}
.footer-nav a {
  color:#fff; opacity:0.81;display:inline-block; font-family:'Montserrat',sans-serif;
  padding:2px 0;
  transition:opacity var(--transition); font-weight:500;
}
.footer-nav a:hover, .footer-nav a:focus {opacity:1; color:var(--brand-green-light);}
.footer-brand {
  display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:13px;
  font-family:'Montserrat',sans-serif;font-weight:600;font-size:1.08rem;letter-spacing:0.01em;
}
.footer-brand img {height:28px; width:auto;}
.footer-contact {
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;color:#d2d2d2;font-size:0.96rem;
}

/* THANK YOU SECTION */
.thanks-section {
  background: var(--brand-accent);
  border-radius: var(--border-radius-lg);
  margin: 60px 0;
  padding: 48px 20px;
  box-shadow: 0 2px 16px rgba(40,40,40,0.05);
  text-align: center;
}
.confirmation-message p {font-size:1.3rem;font-style:italic; color:var(--brand-green);padding:16px 0;}

/* MISC */
.note {
  color:var(--color-gray-600);
  font-size:1.02rem;
  padding: 8px 0 12px 0;
}
.text-section {
  font-size: 1rem;
  color: var(--color-fg-dark);
  margin-bottom: 8px;
}

/* MAP SECTION PLACEHOLDER */
.map-section .text-section {
  background:var(--color-gray-100);
  border-radius:var(--border-radius-md);
  padding:22px;
  color:var(--color-fg);
}

/* FAQ */
.faq-list{
  display:flex; flex-wrap:wrap; gap:24px; justify-content:flex-start; margin-top:16px;
}
.faq-item{
  flex: 1 1 220px;
  background: var(--color-gray-100);
  border-radius: var(--border-radius-sm);
  padding:18px 16px 12px 14px;
  margin-bottom:20px;
  box-shadow: 0 1.5px 7px rgba(0,0,0,0.03);
  transition:background var(--transition);
}
.faq-item:hover {
  background: var(--color-gray-200);
}

/* MODAL DIALOG (FOR COOKIE SETTINGS) */
.cookie-modal {
  display:none;
  position:fixed;
  top: 0; left:0; width:100vw; height:100vh; z-index:1200;
  background:rgba(0,0,0,0.47);
  align-items:center;
  justify-content:center;
}
.cookie-modal.open {
  display:flex;
}
.cookie-modal-content {
  background:#fff;
  padding: 34px 28px 28px 28px;
  border-radius:var(--border-radius-lg);
  box-shadow: 0 8px 44px rgba(0,0,0,0.14);
  min-width:310px; max-width:96vw;
  display:flex; flex-direction:column; gap:22px;
  color:var(--color-fg);
}
.cookie-modal-content h3{
  font-size:1.35rem;
  color:var(--color-fg-dark);
  margin-bottom:2px;
}
.cookie-group {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 11px 0;
}
.cookie-modal-content label {
  user-select: none;
  font-size:1rem;
}
.cookie-modal-close {
  position: absolute; top: 19px; right: 32px;
  background:transparent; border:none; font-size:2rem;cursor:pointer;color:var(--color-fg-dark); transition:background var(--transition);
  padding:4px; border-radius:var(--border-radius-sm);
}
.cookie-modal-close:focus,
.cookie-modal-close:hover { background: var(--color-gray-200);}

/* COOKIE CONSENT BANNER */
.cookie-banner {
  position: fixed;
  bottom: 0; left: 0; width: 100vw;
  background: #191919; 
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap:20px;
  padding: 20px 26px 18px 20px;
  box-shadow: 0 -2px 12px rgba(0,0,0,0.08);
  z-index: 1201;
  font-size:0.97rem;
  animation: cookie-banner-in 0.57s cubic-bezier(.87,-.04,.34,1.33);
}
@keyframes cookie-banner-in {
  from { transform: translateY(100%); opacity:0; }
  to { transform: translateY(0); opacity:1;}
}
.cookie-banner .cookie-banner-text {
  color:#fff; max-width:460px;
}
.cookie-banner .cookie-banner-buttons {
  display: flex;
  gap: 17px;
}
.cookie-banner button {
  font-family:'Montserrat',sans-serif; font-weight:600; font-size:1rem;
  border-radius:var(--border-radius-sm); padding:8px 20px;
  border:none; cursor:pointer;
  transition:background var(--transition), color var(--transition),box-shadow var(--transition);
  outline:none;
  background: #fff;
  color: var(--color-fg-dark);
  box-shadow:0 1px 8px rgba(255,255,255,0.03);
}
.cookie-banner .accept { background:var(--brand-green); color:#fff; }
.cookie-banner .accept:hover,
.cookie-banner .accept:focus {background: var(--brand-green-light); color:#222;}
.cookie-banner .reject {
  background: #fff; color:#191919; border:2px solid var(--color-gray-400);}
.cookie-banner .reject:hover,
.cookie-banner .reject:focus { background:var(--color-gray-200);}
.cookie-banner .settings { background:transparent; color:#fff; border:2px solid #fff;}
.cookie-banner .settings:hover,
.cookie-banner .settings:focus { background:var(--color-gray-100); color:#222; border-color:var(--color-gray-400);}

/* FORM ELEMENTS (if needed on Kontakt) */
input,textarea,select {
  padding:10px 12px;
  border-radius:var(--border-radius-sm);
  border:1.5px solid var(--color-gray-300);
  font-size:1rem;
  color:var(--color-fg-dark);
  margin-bottom:20px;
  background: #fff;
  transition: border-color var(--transition), box-shadow var(--transition);
}
input:focus,textarea:focus,select:focus {
  border-color: var(--brand-green);
  box-shadow: 0 1.5px 8px rgba(57,114,60,0.14);
}
label { font-family:'Montserrat',sans-serif; font-size:1.01rem; }

/* RESPONSIVE DESIGN */
@media (max-width: 1024px) {
  .container { padding-left:10px; padding-right:10px; max-width:98vw; }
  .main-nav { gap: 16px; }
  .feature-grid, .content-grid, .faq-list { gap:15px; }
}
@media (max-width: 900px) {
  .hero, .workshops-hero { min-height: 200px; }
  .feature-item, .service-card, .article-preview {
    flex: 1 1 222px; min-width:180px;
  }
}
@media (max-width: 768px) {
  header .container { flex-direction: row; gap: 0; }
  .main-nav, .cta-button.primary { display: none !important; }
  .mobile-menu-toggle { display: block; float:right; }
  .feature-grid, .service-cards, .article-preview-grid, .card-container {
    flex-direction:column; gap:20px;
  }
  .feature-item, .service-card, .card, .article-preview {
    max-width:100%; min-width:0; margin-bottom: 0;
  }
  .footer-nav {
    flex-direction:column; gap:14px; margin-bottom:12px;
  }
  .about-snippet ul, .workshop-overview ul, .workshop-benefits ul, .blog-intro ul {
    gap: 8px;
  }
  .content-wrapper { gap:12px; }
  .text-image-section { flex-direction:column; gap:18px; align-items: flex-start; }
  .faq-list { flex-direction:column; gap:15px; }
  .section{ padding: 28px 8px; margin-bottom:36px; }
  .cta-end, .cta-section { padding:28px 0; }
  .thanks-section { padding:32px 6px; margin:38px 0; }
}
@media (max-width: 510px) {
  html { font-size:96%; }
  .header .container { padding:8px 4px; }
  .hero .content-wrapper,.workshops-hero .content-wrapper {
    padding-top:8px; padding-bottom:8px;
  }
}

/* SMOOTH MENU/COOKIE ANIMATIONS */
.mobile-menu { will-change:transform; }
.mobile-menu.open { animation: mobilemenu-in 0.30s cubic-bezier(.62,.14,.43,1.14); }
@keyframes mobilemenu-in {
  from { transform: translateX(105%); }
  to { transform: translateX(0); }
}

/* MICRO HOVER ANIMATION FOR LINKS & BUTTONS */
a, button, .cta-button {
  transition: color var(--transition), background var(--transition), box-shadow var(--transition), border-color var(--transition), transform var(--transition);
}
a:active, button:active, .cta-button:active {
  transform: scale(0.97);
}

/* FOCUS RINGS FOR ACCESSIBILITY */
a:focus, button:focus, .cta-button:focus, input:focus, textarea:focus, select:focus {
  outline: 2.5px solid var(--brand-green-light);
  outline-offset: 1.5px;
}

/* Z-INDEX SAFETY FOR OVERLAYS */
.mobile-menu, .cookie-banner, .cookie-modal { z-index: 1200; }

/* Util classes if needed */
.hide { display:none!important; }
.flex { display:flex!important; }

/* End of CSS */
