/*
 Theme Name:   Hestia Child - Golf Club Würzburg
 Template:     hestia
 Description:  Child theme for Golf Club Würzburg Schnupperkurs landing page
 Version:      2.0
*/

/* ==========================================
   SELF-HOSTED FONTS (GDPR compliant)
   ========================================== */

/* --- Playfair Display (Headings) --- */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/playfair-display-v40-latin-regular.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/playfair-display-v40-latin-italic.woff2') format('woff2');
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/playfair-display-v40-latin-700.woff2') format('woff2');
}

/* --- Source Sans Pro / Source Sans 3 (Body) --- */
@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('./fonts/source-sans-3-v19-latin-300.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/source-sans-3-v19-latin-regular.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Sans Pro';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/source-sans-3-v19-latin-italic.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('./fonts/source-sans-3-v19-latin-600.woff2') format('woff2');
}

@font-face {
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/source-sans-3-v19-latin-700.woff2') format('woff2');
}

/* ==========================================
   DESIGN TOKENS (CSS Custom Properties)
   Matched to golfclub-wuerzburg.de
   ========================================== */

:root {
  --brand-primary:       #A52336;
  --brand-primary-hover: #8B1D2E;
  --brand-dark:          #202020;
  --brand-light:         #E2E2E2;
  --brand-text:          #333333;
  --brand-text-muted:    #666666;
  --brand-white:         #FFFFFF;
  --brand-separator:     #E0DEDE;
  --brand-bg-light:      #F7F7F7;
  --brand-bg-warm:       #F5F0EE;
}

/* ==========================================
   GLOBAL OVERRIDES
   ========================================== */

body, p, li, td, span, div {
  font-family: 'Source Sans Pro', 'Source Sans 3', sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: 'Playfair Display', serif !important;
}

body {
  color: var(--brand-text) !important;
  font-size: 16px !important;
  line-height: 1.625 !important;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  color: var(--brand-dark) !important;
  font-weight: 400 !important;
}

/* ==========================================
   HEADING SIZES (matching GCW hierarchy)
   ========================================== */

h1.elementor-heading-title,
.elementor-widget-heading h1.elementor-heading-title {
  font-size: 52px !important;
  line-height: 1.05 !important;
  font-weight: 400 !important;
  letter-spacing: -0.5px !important;
}

h2.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title {
  font-size: 32px !important;
  line-height: 1.3 !important;
  font-weight: 400 !important;
}

h3.elementor-heading-title,
.elementor-widget-heading h3.elementor-heading-title {
  font-size: 26px !important;
  line-height: 1.35 !important;
  font-weight: 400 !important;
}

h4.elementor-heading-title,
.elementor-widget-heading h4.elementor-heading-title,
.elementor-icon-box-title {
  font-size: 22px !important;
  line-height: 1.4 !important;
  font-weight: 400 !important;
}

/* ==========================================
   PARAGRAPH / BODY TEXT
   ========================================== */

.elementor-text-editor p,
.elementor-widget-text-editor p {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--brand-text) !important;
  margin-bottom: 16px !important;
}

.elementor-text-editor em,
.elementor-widget-text-editor em {
  font-family: 'Playfair Display', serif !important;
  font-style: italic !important;
  color: var(--brand-text-muted) !important;
}

/* ==========================================
   SECTION SPACING
   ========================================== */

.elementor-section > .elementor-container {
  padding-top: 20px;
  padding-bottom: 20px;
}

.elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 1100px !important;
}

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

.elementor-button {
  background-color: var(--brand-primary) !important;
  border-radius: 0 !important;
  font-family: 'Source Sans Pro', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  padding: 15px 40px !important;
  transition: background-color 0.3s ease, box-shadow 0.3s ease !important;
  border: none !important;
}

.elementor-button:hover,
.elementor-button:focus {
  background-color: var(--brand-primary-hover) !important;
  box-shadow: 0 4px 12px rgba(165, 35, 54, 0.3) !important;
}

.elementor-section:first-child .elementor-button,
.elementor-widget-button .elementor-button[href="#anfrageformular"] {
  font-size: 16px !important;
  padding: 18px 50px !important;
}

/* ==========================================
   LINKS
   ========================================== */

a {
  color: var(--brand-primary);
  transition: color 0.2s ease;
}

a:hover,
a:focus {
  color: var(--brand-primary-hover);
}

/* ==========================================
   ACCORDION / FAQ
   ========================================== */

.elementor-accordion {
  border: none !important;
}

.elementor-accordion .elementor-accordion-item {
  border-bottom: 1px solid var(--brand-separator) !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
}

.elementor-accordion .elementor-accordion-item:first-child {
  border-top: 1px solid var(--brand-separator) !important;
}

.elementor-accordion .elementor-tab-title {
  font-family: 'Source Sans Pro', sans-serif !important;
  color: var(--brand-dark) !important;
  font-weight: 600 !important;
  font-size: 17px !important;
  padding: 18px 20px !important;
  border: none !important;
  transition: color 0.2s ease !important;
}

.elementor-accordion .elementor-tab-title a {
  font-family: 'Source Sans Pro', sans-serif !important;
  color: var(--brand-dark) !important;
}

.elementor-accordion .elementor-tab-title:hover,
.elementor-accordion .elementor-tab-title:hover a {
  color: var(--brand-primary) !important;
}

.elementor-accordion .elementor-active .elementor-tab-title,
.elementor-accordion .elementor-active .elementor-tab-title a {
  color: var(--brand-primary) !important;
}

.elementor-accordion .elementor-tab-content {
  font-family: 'Source Sans Pro', sans-serif !important;
  color: var(--brand-text) !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  padding: 10px 20px 20px 20px !important;
  border: none !important;
}

.elementor-accordion .elementor-accordion-icon {
  color: var(--brand-text-muted) !important;
}

.elementor-accordion .elementor-active .elementor-accordion-icon {
  color: var(--brand-primary) !important;
}

/* ==========================================
   ICON BOXES
   ========================================== */

.elementor-icon-box-icon .elementor-icon {
  color: var(--brand-primary) !important;
}

.elementor-icon-box-title {
  font-family: 'Playfair Display', serif !important;
  color: var(--brand-dark) !important;
  font-weight: 400 !important;
  font-size: 20px !important;
}

.elementor-icon-box-description {
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: var(--brand-text) !important;
}

/* ==========================================
   TESTIMONIALS
   ========================================== */

.elementor-text-editor p em,
.elementor-widget-text-editor p em {
  font-family: 'Playfair Display', serif !important;
  font-style: italic !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--brand-text-muted) !important;
}

.elementor-text-editor p strong,
.elementor-widget-text-editor p strong {
  font-family: 'Source Sans Pro', sans-serif !important;
  font-weight: 600 !important;
  color: var(--brand-dark) !important;
}

/* ==========================================
   FORM STYLING
   ========================================== */

.elementor-field-group .elementor-field,
.wpforms-field input,
.wpforms-field select,
.wpforms-field textarea {
  font-family: 'Source Sans Pro', sans-serif !important;
  font-size: 15px !important;
  color: var(--brand-text) !important;
  border: none !important;
  border-bottom: 1px solid var(--brand-separator) !important;
  border-radius: 0 !important;
  padding: 12px 4px !important;
  background: transparent !important;
  transition: border-color 0.2s ease !important;
}

.elementor-field-group .elementor-field:focus,
.wpforms-field input:focus,
.wpforms-field select:focus,
.wpforms-field textarea:focus {
  border-bottom-color: var(--brand-primary) !important;
  outline: none !important;
  box-shadow: none !important;
}

.wpforms-field-label,
.elementor-field-label {
  font-family: 'Source Sans Pro', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  color: var(--brand-dark) !important;
  margin-bottom: 4px !important;
}

.wpforms-field-sublabel,
.wpforms-field-description {
  font-size: 13px !important;
  color: var(--brand-text-muted) !important;
}

.elementor-button[type="submit"],
.elementor-form .elementor-button,
.wpforms-submit,
button.wpforms-submit {
  background-color: var(--brand-primary) !important;
  border-radius: 0 !important;
  font-family: 'Source Sans Pro', sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  padding: 15px 40px !important;
  color: var(--brand-white) !important;
  border: none !important;
  cursor: pointer !important;
}

.elementor-button[type="submit"]:hover,
.elementor-form .elementor-button:hover,
.wpforms-submit:hover {
  background-color: var(--brand-primary-hover) !important;
}

/* ==========================================
   DIVIDERS / SEPARATORS
   ========================================== */

.elementor-divider-separator {
  border-color: var(--brand-separator) !important;
}

/* ==========================================
   PAIN POINTS SECTION
   ========================================== */

.elementor-icon-list-text {
  font-size: 16px !important;
  line-height: 1.6 !important;
}

/* ==========================================
   HERO SECTION REFINEMENTS
   ========================================== */

.elementor-section:first-of-type h2.elementor-heading-title {
  font-style: italic !important;
  font-weight: 400 !important;
  font-size: 24px !important;
  line-height: 1.4 !important;
  color: var(--brand-dark) !important;
}

.elementor-section:first-of-type .elementor-text-editor p {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--brand-text) !important;
}

/* ==========================================
   SMOOTH SCROLL BEHAVIOR
   ========================================== */

html {
  scroll-behavior: smooth;
}

/* ==========================================
   RESPONSIVE ADJUSTMENTS
   ========================================== */

@media (max-width: 1024px) {
  h1.elementor-heading-title,
  .elementor-widget-heading h1.elementor-heading-title {
    font-size: 40px !important;
  }
  h2.elementor-heading-title,
  .elementor-widget-heading h2.elementor-heading-title {
    font-size: 28px !important;
  }
  .elementor-section:first-of-type h2.elementor-heading-title {
    font-size: 22px !important;
  }
}

@media (max-width: 768px) {
  h1.elementor-heading-title,
  .elementor-widget-heading h1.elementor-heading-title {
    font-size: 32px !important;
    line-height: 1.15 !important;
  }
  h2.elementor-heading-title,
  .elementor-widget-heading h2.elementor-heading-title {
    font-size: 24px !important;
  }
  h3.elementor-heading-title,
  .elementor-widget-heading h3.elementor-heading-title {
    font-size: 22px !important;
  }
  .elementor-section:first-of-type h2.elementor-heading-title {
    font-size: 18px !important;
  }
  .elementor-button {
    padding: 12px 30px !important;
    font-size: 14px !important;
  }
  .elementor-text-editor p,
  .elementor-widget-text-editor p {
    font-size: 15px !important;
  }
}

@media (max-width: 480px) {
  h1.elementor-heading-title,
  .elementor-widget-heading h1.elementor-heading-title {
    font-size: 28px !important;
  }
  h2.elementor-heading-title,
  .elementor-widget-heading h2.elementor-heading-title {
    font-size: 22px !important;
  }
}

/* ==========================================
   HESTIA THEME SPECIFIC OVERRIDES
   ========================================== */

.card {
  box-shadow: none !important;
}

.btn,
.btn-primary {
  box-shadow: none !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
}

/* ==========================================
   PRINT STYLES
   ========================================== */

@media print {
  .elementor-button,
  .wpforms-container,
  nav,
  .admin-bar #wpadminbar {
    display: none !important;
  }
  body {
    font-size: 12pt !important;
    color: #000 !important;
  }
}

/* Ensure no Google Fonts are loaded externally */