/* ------------------------------------------------------------
   FONT SETUP
   Lokale Fontdateien werden bewusst nicht mitgeliefert.
   Die Webfont wird in functions.php geladen.
------------------------------------------------------------ */

:root{
  --sw-violet:#c4a7e7;
  --sw-pink:#f7c6ce;
  --sw-charcoal:#1a1a1a;
  --sw-yellow:#fcd98b;
  --sw-offwhite:#f0f0f0;
  --sw-midnight:#4a4e69;
  --sw-white:#ffffff;
  --sw-radius:26px;
  --sw-radius-sm:18px;
  --sw-radius-xs:14px;
  --sw-shadow-soft:0 20px 60px rgba(26,26,26,.10);
  --sw-shadow-card:0 14px 40px rgba(26,26,26,.08);
  --sw-shadow-hover:0 20px 50px rgba(26,26,26,.16);
  --sw-border:1px solid rgba(26,26,26,.08);
  --sw-gradient-hero:linear-gradient(135deg,#c4a7e7 0%,#f7c6ce 58%,#fcd98b 100%);
  --sw-gradient-brand:linear-gradient(135deg,#f7c6ce 0%,#c4a7e7 50%,#fcd98b 100%);
  --sw-gradient-night:linear-gradient(145deg,#1a1a1a 0%,#23242d 45%,#4a4e69 100%);
  --sw-gradient-mist:
    radial-gradient(circle at 30% 30%, rgba(247,198,206,.94) 0%, rgba(247,198,206,.35) 17%, rgba(247,198,206,0) 44%),
    radial-gradient(circle at 83% 16%, rgba(252,217,139,.9) 0%, rgba(252,217,139,.28) 18%, rgba(252,217,139,0) 40%),
    radial-gradient(circle at 76% 79%, rgba(196,167,231,.9) 0%, rgba(196,167,231,.18) 18%, rgba(196,167,231,0) 46%),
    linear-gradient(135deg,#f7c6ce 0%,#f0f0f0 48%,#c4a7e7 100%);
}

html{
  scroll-behavior:smooth;
}

body,
button,
input,
select,
textarea{
  font-family:"Source Sans Variable","Source Sans 3",sans-serif;
  color:var(--sw-charcoal);
}

body{
  background:var(--sw-offwhite);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

h1,h2,h3,h4,h5,h6,
.entry-title,
.site-title{
  font-family:"Source Sans Variable","Source Sans 3",sans-serif;
  font-weight:600;
  letter-spacing:-.02em;
  color:var(--sw-charcoal);
}

p,
li,
blockquote{
  font-size:1.04rem;
}

a{
  text-decoration:none;
  transition:color .22s ease, opacity .22s ease, transform .22s ease;
}

a:hover{
  color:var(--sw-midnight);
}

img{
  border-radius:var(--sw-radius-xs);
}

/* ------------------------------------------------------------
   GLOBAL SURFACES / UTILITIES
------------------------------------------------------------ */
.sw-surface-light{
  background:var(--sw-offwhite);
  color:var(--sw-charcoal);
}

.sw-surface-white{
  background:var(--sw-white);
  color:var(--sw-charcoal);
}

.sw-surface-dark{
  background:var(--sw-charcoal);
  color:var(--sw-offwhite);
}

.sw-surface-dark :where(h1,h2,h3,h4,h5,h6,p,li,strong,a){
  color:var(--sw-offwhite);
}

.sw-surface-midnight{
  background:var(--sw-midnight);
  color:var(--sw-offwhite);
}

.sw-surface-gradient{
  background:var(--sw-gradient-mist);
  color:var(--sw-charcoal);
}

.sw-rounded{
  border-radius:var(--sw-radius);
  overflow:hidden;
}

.sw-shadow{
  box-shadow:var(--sw-shadow-soft);
}

.sw-card{
  background:rgba(255,255,255,.74);
  border:var(--sw-border);
  border-radius:var(--sw-radius);
  box-shadow:var(--sw-shadow-card);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  padding:clamp(1.2rem,2vw,2rem);
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.sw-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--sw-shadow-hover);
  border-color:rgba(74,78,105,.18);
}

.sw-card-dark{
  background:linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.02) 100%);
  border:1px solid rgba(240,240,240,.10);
  color:var(--sw-offwhite);
}

.sw-card-dark :where(h1,h2,h3,h4,h5,h6,p,li,strong,a){
  color:var(--sw-offwhite);
}

.sw-chip{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.5rem .95rem;
  border-radius:999px;
  background:rgba(255,255,255,.8);
  border:1px solid rgba(26,26,26,.08);
  font-size:.95rem;
  font-weight:600;
  line-height:1;
  box-shadow:0 6px 16px rgba(26,26,26,.05);
}

.sw-eyebrow{
  display:inline-block;
  margin-bottom:.8rem;
  font-size:.95rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--sw-midnight);
}

.sw-divider{
  width:86px;
  height:2px;
  border-radius:999px;
  background:var(--sw-gradient-brand);
  margin:1rem 0 1.3rem;
}

/* ------------------------------------------------------------
   BUTTONS
------------------------------------------------------------ */
.wp-block-button__link,
.button,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button{
  border-radius:999px;
  padding:.95rem 1.55rem;
  font-weight:700;
  line-height:1;
  border:1px solid transparent;
  box-shadow:none;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease, border-color .22s ease;
}

.wp-block-button__link:hover,
.button:hover,
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(26,26,26,.12);
}

.wp-block-button.is-style-outline .wp-block-button__link{
  border-color:rgba(26,26,26,.16);
  color:var(--sw-charcoal);
  background:transparent;
}

.sw-btn-primary .wp-block-button__link,
.sw-btn-primary{
  background:var(--sw-gradient-brand);
  color:var(--sw-charcoal);
  border-color:transparent;
}

.sw-btn-dark .wp-block-button__link,
.sw-btn-dark{
  background:var(--sw-charcoal);
  color:var(--sw-offwhite);
  border-color:rgba(240,240,240,.08);
}

.sw-btn-light .wp-block-button__link,
.sw-btn-light{
  background:rgba(255,255,255,.88);
  color:var(--sw-charcoal);
  border-color:rgba(26,26,26,.08);
}

/* ------------------------------------------------------------
   HEADER / NAVIGATION
------------------------------------------------------------ */
.site-header-row-container-inner,
.site-main-header-wrap,
.site-bottom-header-wrap{
  backdrop-filter:saturate(120%) blur(10px);
  -webkit-backdrop-filter:saturate(120%) blur(10px);
}

.site-header-row-container-inner{
  border-bottom:1px solid rgba(26,26,26,.06);
}

.header-navigation .header-menu-container > ul > li > a{
  font-weight:700;
  letter-spacing:.01em;
}

.header-button{
  border-radius:999px !important;
}

/* ------------------------------------------------------------
   HERO / LANDINGPAGE
------------------------------------------------------------ */
.sw-hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(4rem,8vw,7rem) min(6vw,4rem);
  border-radius:32px;
  background:var(--sw-gradient-mist);
  box-shadow:var(--sw-shadow-soft);
}

.sw-hero::before{
  content:"";
  position:absolute;
  inset:auto -120px -110px auto;
  width:320px;
  height:320px;
  background:radial-gradient(circle, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 68%);
  pointer-events:none;
  z-index:-1;
}

.sw-hero::after{
  content:"";
  position:absolute;
  left:-110px;
  top:-95px;
  width:260px;
  height:260px;
  background:radial-gradient(circle, rgba(196,167,231,.45) 0%, rgba(196,167,231,0) 70%);
  pointer-events:none;
  z-index:-1;
}

.sw-hero .wp-block-heading{
  max-width:11ch;
  font-size:clamp(2.9rem,6vw,5.6rem);
  line-height:.95;
  margin-bottom:1rem;
}

.sw-hero p{
  max-width:42rem;
  font-size:clamp(1.08rem,1.8vw,1.35rem);
}

.sw-hero-media img{
  width:100%;
  height:auto;
  object-fit:cover;
  border-radius:28px;
  box-shadow:0 28px 65px rgba(26,26,26,.16);
}

.sw-band{
  position:relative;
  overflow:hidden;
  border-radius:var(--sw-radius);
  padding:clamp(1.5rem,3vw,2.4rem);
  background:var(--sw-gradient-brand);
  color:var(--sw-charcoal);
  box-shadow:var(--sw-shadow-soft);
}

.sw-band::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,0));
  pointer-events:none;
}

.sw-process{
  counter-reset:sw-steps;
  display:grid;
  gap:1rem;
}

.sw-process > *{
  position:relative;
  padding:1.3rem 1.3rem 1.3rem 4.2rem;
  border-radius:var(--sw-radius-sm);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(26,26,26,.08);
  box-shadow:var(--sw-shadow-card);
}

.sw-process > *::before{
  counter-increment:sw-steps;
  content:counter(sw-steps, decimal-leading-zero);
  position:absolute;
  left:1rem;
  top:1rem;
  width:2.35rem;
  height:2.35rem;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--sw-charcoal);
  color:var(--sw-offwhite);
  font-size:.95rem;
  font-weight:800;
  line-height:1;
}

/* ------------------------------------------------------------
   CONTENT SECTIONS
------------------------------------------------------------ */
.sw-section{
  position:relative;
  padding-block:clamp(3rem,6vw,6rem);
}

.sw-feature-grid .wp-block-column,
.sw-grid-3 > *{
  height:100%;
}

.sw-testimonial{
  border-left:4px solid var(--sw-violet);
  padding:1.1rem 1.2rem;
  background:rgba(255,255,255,.68);
  border-radius:0 var(--sw-radius-sm) var(--sw-radius-sm) 0;
}

.sw-kicker-list{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  margin:1rem 0 0;
  padding:0;
  list-style:none;
}

/* ------------------------------------------------------------
   FORMS
------------------------------------------------------------ */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
textarea,
select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea{
  width:100%;
  border-radius:18px;
  border:1px solid rgba(26,26,26,.10);
  background:rgba(255,255,255,.82);
  color:var(--sw-charcoal);
  padding:.95rem 1rem;
  transition:border-color .22s ease, box-shadow .22s ease, background .22s ease;
  box-shadow:none;
}

input:focus,
textarea:focus,
select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{
  outline:none;
  border-color:rgba(74,78,105,.42);
  box-shadow:0 0 0 4px rgba(196,167,231,.22);
  background:#fff;
}

label{
  font-weight:700;
}

/* ------------------------------------------------------------
   WOOCOMMERCE
------------------------------------------------------------ */
.woocommerce ul.products{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:1.4rem;
  margin:0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after{
  display:none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.sw-product-card{
  float:none !important;
  width:auto !important;
  margin:0 !important;
  padding:1rem;
  border-radius:var(--sw-radius);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(26,26,26,.08);
  box-shadow:var(--sw-shadow-card);
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover{
  transform:translateY(-4px);
  box-shadow:var(--sw-shadow-hover);
  border-color:rgba(196,167,231,.34);
}

.woocommerce ul.products li.product a img{
  border-radius:22px;
  margin-bottom:1rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size:1.18rem;
  line-height:1.15;
  margin-bottom:.5rem;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--sw-midnight);
  font-weight:800;
  font-size:1.12rem;
}

.woocommerce span.onsale{
  min-height:auto;
  min-width:auto;
  line-height:1;
  padding:.55rem .8rem;
  border-radius:999px;
  background:var(--sw-charcoal);
  color:var(--sw-offwhite);
  font-weight:700;
  box-shadow:0 10px 24px rgba(26,26,26,.16);
}

.woocommerce div.product{
  gap:2rem;
}

.woocommerce div.product .product_title{
  font-size:clamp(2rem,4vw,3.4rem);
  margin-bottom:.65rem;
}

.woocommerce-product-gallery{
  padding:1rem;
  border-radius:var(--sw-radius);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(26,26,26,.08);
  box-shadow:var(--sw-shadow-card);
}

.woocommerce .quantity .qty{
  min-height:48px;
  border-radius:999px;
  padding:.6rem .9rem;
}

.woocommerce-tabs,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout-review-order,
.woocommerce form.checkout,
.woocommerce-account .woocommerce{
  padding:1.3rem;
  border-radius:var(--sw-radius);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(26,26,26,.08);
  box-shadow:var(--sw-shadow-card);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  border-top:none;
  border-radius:18px;
  padding:1rem 1rem 1rem 3rem;
  background:rgba(255,255,255,.82);
  box-shadow:var(--sw-shadow-card);
}

.woocommerce .checkout_coupon,
.woocommerce .login,
.woocommerce .register{
  border-radius:var(--sw-radius);
  border:1px solid rgba(26,26,26,.08);
  background:rgba(255,255,255,.72);
}

.woocommerce table.shop_table{
  border-radius:var(--sw-radius-sm);
  overflow:hidden;
  border:1px solid rgba(26,26,26,.08);
  background:#fff;
}

.woocommerce table.shop_table th{
  background:rgba(196,167,231,.18);
}

.woocommerce-checkout #payment{
  background:linear-gradient(180deg, rgba(255,255,255,.88) 0%, rgba(247,198,206,.44) 100%);
  border-radius:var(--sw-radius-sm);
}

/* ------------------------------------------------------------
   FOOTER
------------------------------------------------------------ */
.site-footer-wrap{
  background:var(--sw-charcoal);
  color:var(--sw-offwhite);
}

.site-footer-wrap :where(h1,h2,h3,h4,h5,h6,p,a,li,span){
  color:var(--sw-offwhite);
}

.site-footer-wrap a:hover{
  color:var(--sw-yellow);
}

/* ------------------------------------------------------------
   MOBILE
------------------------------------------------------------ */
@media (max-width: 1024px){
  .sw-hero{
    padding:clamp(2rem,7vw,4rem) min(5vw,2rem);
  }

  .sw-hero .wp-block-heading{
    max-width:none;
  }
}

@media (max-width: 767px){
  p,
  li,
  blockquote{
    font-size:1rem;
  }

  .sw-card{
    padding:1.15rem;
  }

  .sw-band{
    padding:1.15rem;
  }

  .sw-process > *{
    padding:1.15rem 1rem 1rem 3.7rem;
  }

  .woocommerce ul.products{
    gap:1rem;
  }
}
