/* ===============================
   FONT IMPORTS
================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500&family=Inter:wght@300;400&family=Caveat:wght@400&display=swap');

/* ===============================
   ROOT VARIABLES
================================ */
:root {
  --sand-light: #f6efe7;
  --sand-warm: #e9dccb;
  --sand: #F5F1EC;
  --linen: #FAF8F5;

  --sea-mist: #DDE6E3;
  --ocean: #6f9fa8;

  --driftwood: #8A8075;
  --ink-soft: #3E3A36;

  --accent-shell: #C9B8A5;
  --halo-gold: rgba(255, 220, 170, 0.35);
}

/* ===============================
   RESET & BASE
================================ */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Inter', system-ui, sans-serif;
  background:
    linear-gradient(rgba(255,255,255,0.92), rgba(255,255,255,0.92)),
    url("https://www.transparenttextures.com/patterns/paper-fibers.png");
  color: var(--ink-soft);
  line-height: 1.7;
  letter-spacing: 0.2px;
}

/* ===============================
   TYPOGRAPHY
================================ */
h1, h2, h3 {
  font-family: 'Playfair Display', serif;
  color: var(--driftwood);
}

.handwritten,
.coastal-quote,
.invitation,
#daily-line {
  font-family: 'Caveat', cursive;
  letter-spacing: 0.5px;
}

/* ===============================
   LAYOUT
================================ */
.container,
.content-section {
  max-width: 820px;
  margin: 0 auto;
  padding: 4rem 1.5rem;
}

section {
  margin-bottom: 4rem;
}

/* ===============================
   HERO
================================ */
.hero {
  position: relative;
  text-align: center;
  padding: 5rem 1.5rem 5rem;
}

.hero h2 {
  font-size: 2rem;
  margin-bottom: 1rem;
}

.hero-text {
  max-width: 520px;
  margin: 0 auto;
  color: var(--driftwood);
}

.hero-logo {
  position: absolute;
  left: 50%;
  bottom: -60px;
  transform: translateX(-50%);
} 

.hero + section {
  margin-top: 4rem;
}

/* ===============================
   HALO EFFECT
================================ */
.halo {
  position: relative;
}

.halo::before {
  content: "";
  position: absolute;
  inset: -30px;
  background: radial-gradient(circle, var(--halo-gold), transparent 70%);
  z-index: -1;
}

/* ===============================
   CARDS & SERVICES
================================ */
.card,
.service-card {
  background: rgba(255,255,255,0.75);
  border-radius: 20px;
  padding: 2rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.04);
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 2rem;
  margin-top: 3rem;
}

.service-tagline {
  font-style: italic;
  opacity: 0.85;
}

/* ===============================
   SERVICE IMAGES
================================ */
.service-image {
  width: 100%;
  height: 180px;
  border-radius: 22px;
  margin-bottom: 1.2rem;
  background-size: cover;
  background-position: center;
  box-shadow:
    inset 0 1px 2px rgba(255,255,255,0.6),
    0 10px 22px rgba(0,0,0,0.08);
}

/* Placeholder moods */
.service-image.backyard {
  background: linear-gradient(135deg, #ebf4f0, #d7e4de);
}
.service-image.horizons {
  background: linear-gradient(135deg, #e2ecf4, #d0e0ea);
}
.service-image.grace {
  background: linear-gradient(135deg, #f6f2ee, #eae2da);
}

/* ===============================
   BUTTONS
================================ */
.pillow-button {
  display: inline-block;
  padding: 0.9rem 1.8rem;
  border-radius: 999px;
  background: linear-gradient(180deg, #fff, #f5f0e8);
  color: var(--ink-soft);
  text-decoration: none;
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,0.8),
    inset 0 -2px 3px rgba(0,0,0,0.05),
    0 6px 14px rgba(0,0,0,0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pillow-button:hover {
  transform: translateY(-1px);
}

.back-button {
  background: none;
  border: none;
  opacity: 0.65;
  cursor: pointer;
  margin-top: 2rem;
}

/* ===============================
   FADE-IN (SCROLL)
================================ */
.fade-in {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 1.2s ease, transform 1.2s ease;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ===============================
   COASTAL MARKS
================================ */
.coastal-mark {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 48px;
  height: 48px;
  opacity: 0.06;
  background-size: contain;
  background-repeat: no-repeat;
}

/* ===============================
   FOOTER
================================ */
.site-footer,
.return-footer {
  text-align: center;
  padding: 3rem 1.5rem;
  opacity: 0.7;
  font-size: 0.95rem;
}

/* ===============================
   MOBILE TUNING
================================ */
@media (max-width: 768px) {
  h1 { font-size: 2rem; }
  h2 { font-size: 1.4rem; }

  .hero-logo {
    max-width: 120px;
    bottom: -50px;
  }
}

@media (max-width: 600px) {
  .content-section {
    padding: 3rem 1.2rem;
  }

  .service-image {
    height: 150px;
  }

  .pillow-button {
    font-size: 1rem;
  }
}
.site-header {
  display: flex;
  justify-content: center;
  padding: 2rem 1rem 1rem;
}

.site-logo {
  max-width: 130px;
  height: auto;
  opacity: 0.9;
  filter: drop-shadow(0 8px 20px rgba(180, 150, 110, 0.22));
}

.site-header.halo::before {
  inset: -20px;
}
