/* Shared site styles — "Serene Earth" / The Knot Whisperer */

body {
  font-family: 'Manrope', sans-serif;
  background-color: #faf9f7;
}

/* Brand display font — geometric sans matching the Unknotted logo wordmark.
   (Class name kept as .font-playfair to avoid churn across pages.) */
.font-playfair { font-family: 'Jost', sans-serif; }

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Organic, river-stone shapes */
.organic-mask-1 { clip-path: ellipse(45% 50% at 50% 50%); }
.organic-mask-2 {
  clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
  border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
}
.organic-mask-3 { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }
.organic-blob { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }

/* Glass + parallax helpers */
.parallax-bg {
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.glass-panel { backdrop-filter: blur(12px); background: rgba(255, 255, 255, 0.6); }
.glass-nav {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Soft, ambient elevation (no harsh dropshadows) */
.service-card-shadow { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); }
.service-card-shadow:hover { box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08); }
.ambient-card-shadow:hover { box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); }

/* Floating, light divider */
.custom-divider {
  margin: 0 10%;
  height: 1px;
  background-color: #C4C4C4;
}

/* Subtle natural-paper grain */
.grain-overlay {
  background-image: url("https://www.transparenttextures.com/patterns/natural-paper.png");
  opacity: 0.03;
  pointer-events: none;
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease-out;
}
.reveal.active {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered grid (About) */
.staggered-grid-item:nth-child(even) { transform: translateY(40px); }
@media (max-width: 768px) {
  .staggered-grid-item:nth-child(even) { transform: translateY(0); }
}

.mask-gradient { mask-image: linear-gradient(to bottom, black 80%, transparent 100%); }

/* Hero text legibility over imagery */
.hero-text-shadow { text-shadow: 0 2px 18px rgba(0,0,0,0.45), 0 1px 4px rgba(0,0,0,0.40); }
