/*
Theme Name: Natalia Lankau Astra Child
Theme URI: https://example.com/
Description: Ruhiges Premium-Design für Elementor Pro auf Basis von Astra.
Author: OpenAI
Template: astra
Version: 1.0.0
Text Domain: natalia-astra-child
*/

:root {
  --nl-bg: #FAF8F5;
  --nl-surface: #FFFFFF;
  --nl-soft: #EEF1EC;
  --nl-sage: #819184;
  --nl-sage-dark: #56675F;
  --nl-forest: #24312D;
  --nl-sand: #C8AA8A;
  --nl-text: #4E5652;
  --nl-heading: #25302C;
  --nl-border: rgba(37,48,44,.13);
  --nl-radius: 22px;
  --nl-shadow: 0 18px 55px rgba(36,49,45,.10);
}

html { scroll-behavior: smooth; }
body {
  background: var(--nl-bg);
  color: var(--nl-text);
  font-family: "Manrope", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.75;
}
h1,h2,h3,h4,h5,h6,
.elementor-heading-title {
  color: var(--nl-heading);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.025em;
}
h1,.nl-hero-title .elementor-heading-title { font-size: clamp(48px, 5.4vw, 82px); }
h2,.nl-section-title .elementor-heading-title { font-size: clamp(38px, 4vw, 58px); }
h3 { font-size: clamp(28px, 2.5vw, 38px); }
a { color: var(--nl-sage-dark); }
a:hover { color: var(--nl-sand); }

.nl-eyebrow {
  margin: 0 0 18px;
  color: var(--nl-sage-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
}
.nl-hero { position: relative; overflow: hidden; }
.nl-hero:before {
  content:"";
  position:absolute;
  width:520px;
  height:520px;
  border-radius:50%;
  right:-180px;
  top:-220px;
  background:rgba(200,170,138,.16);
  pointer-events:none;
}
.nl-hero-lead { max-width: 650px; font-size: clamp(18px,1.8vw,22px); }
.nl-button .elementor-button {
  background: var(--nl-forest);
  color:#fff;
  border:1px solid var(--nl-forest);
  border-radius:999px;
  padding:15px 26px;
  font-weight:700;
  box-shadow:none;
  transition:.25s ease;
}
.nl-button .elementor-button:hover {
  transform:translateY(-2px);
  background:var(--nl-sage-dark);
  border-color:var(--nl-sage-dark);
  box-shadow:0 10px 25px rgba(36,49,45,.16);
}
.nl-button-secondary .elementor-button {
  background:transparent;
  color:var(--nl-forest);
}
.nl-button-light .elementor-button {
  background:#fff;
  color:var(--nl-forest);
  border-color:#fff;
}
.nl-photo-placeholder {
  min-height:430px;
  border-radius:var(--nl-radius);
  background:
    linear-gradient(135deg,rgba(129,145,132,.82),rgba(200,170,138,.72)),
    var(--nl-soft);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  box-shadow:var(--nl-shadow);
  overflow:hidden;
}
.nl-photo-tall { min-height:560px; }
.nl-placeholder-label .elementor-heading-title,
.nl-placeholder-text { color:#fff !important; }
.nl-floating-card {
  width:230px;
  margin:-82px 0 0 -42px;
  padding:22px 24px;
  background:#fff;
  border-radius:18px;
  box-shadow:var(--nl-shadow);
  position:relative;
  z-index:3;
}
.nl-card-kicker,.nl-card-number,.nl-step-number {
  color:var(--nl-sand);
  font-size:12px;
  font-weight:800;
  letter-spacing:.15em;
}
.nl-quote-section { text-align:center; }
.nl-quote .elementor-heading-title {
  font-size:clamp(34px,4.2vw,58px);
  font-style:italic;
  text-align:center;
}
.nl-quote-author { text-align:center; }
.nl-soft-section { background:var(--nl-soft); }
.nl-list .elementor-icon-list-item { margin-bottom:12px; }
.nl-list .elementor-icon-list-icon { color:var(--nl-sage); }
.nl-section-intro { max-width:720px; margin-bottom:40px; }
.nl-service-card,.nl-service-wide,.nl-step {
  background:#fff;
  border:1px solid var(--nl-border);
  border-radius:var(--nl-radius);
  padding:34px;
  transition:.25s ease;
}
.nl-service-card:hover,.nl-service-wide:hover {
  transform:translateY(-5px);
  box-shadow:var(--nl-shadow);
}
.nl-service-wide { padding:46px; }
.nl-price { color:var(--nl-heading); font-weight:800; margin-top:22px; }
.nl-note {
  margin-top:28px;
  padding:18px 22px;
  border-left:3px solid var(--nl-sand);
  background:rgba(200,170,138,.10);
  font-size:14px;
}
.nl-step { background:rgba(255,255,255,.65); }
.nl-contact-card {
  padding:54px;
  background:var(--nl-forest);
  color:rgba(255,255,255,.84);
  border-radius:calc(var(--nl-radius) + 6px);
  box-shadow:var(--nl-shadow);
}
.nl-contact-card h1,.nl-contact-card h2,.nl-contact-card h3,
.nl-contact-card .elementor-heading-title { color:#fff; }
.nl-contact-card .nl-eyebrow { color:var(--nl-sand); }
.nl-contact-details {
  padding:28px;
  border-left:1px solid rgba(255,255,255,.18);
}
.nl-header-inner {
  background:rgba(255,255,255,.93);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--nl-border);
}
.nl-logo .elementor-heading-title { font-size:30px; }
.nl-nav .elementor-nav-menu a {
  color:var(--nl-heading);
  font-weight:650;
}
.nl-footer,.nl-footer-bottom { color:rgba(255,255,255,.74); }
.nl-footer .elementor-heading-title { color:#fff; }
.nl-footer a { color:rgba(255,255,255,.82); }
.nl-footer a:hover { color:#fff; }
.nl-footer-bottom { border-top:1px solid rgba(255,255,255,.12); }
.nl-footer-copy { font-size:13px; }
.nl-page-hero { text-align:center; }
.nl-page-hero .nl-hero-lead { margin-inline:auto; }
.nl-404 { text-align:center; }

@media (max-width: 1024px) {
  .nl-header-cta { display:none; }
  .nl-contact-card { padding:38px; }
}
@media (max-width: 767px) {
  body { font-size:16px; }
  .nl-hero { min-height:auto !important; }
  .nl-floating-card { width:auto; margin:-45px 18px 0; }
  .nl-photo-placeholder,.nl-photo-tall { min-height:390px; }
  .nl-service-card,.nl-step { width:100% !important; }
  .nl-contact-card { padding:30px 22px; }
  .nl-contact-details { border-left:0; border-top:1px solid rgba(255,255,255,.18); padding:25px 0 0; }
}
