/* ===== Hero ===== */
.hero{padding:56px 24px 40px;position:relative}
.hero-glow{position:absolute;top:-40px;right:-60px;width:320px;height:320px;border-radius:50%;background:oklch(91% 0.035 300);filter:blur(20px);z-index:0;animation:glow 6s ease-in-out infinite}
.hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;align-items:center;position:relative;z-index:1}
.hero-copy{animation:fadeUp .8s ease both;min-width:0}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--tint);color:var(--plum);padding:8px 16px;border-radius:100px;font-size:13px;font-weight:600;letter-spacing:.04em;margin-bottom:20px}
.hero-title{font-weight:600;font-size:clamp(36px,5vw,58px);line-height:1.08;margin:0 0 22px}
.hero-title em{font-style:italic;color:var(--plum)}
.hero-lede{font-size:18px;line-height:1.6;color:var(--muted);max-width:520px;margin:0 0 32px}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.hero-media{position:relative;animation:fadeUp 1s ease .1s both;min-width:0}
.hero-media img{width:100%;height:480px;object-fit:cover;border-radius:28px;box-shadow:0 30px 60px oklch(30% 0.03 300 / 0.18)}
.hero-next{position:absolute;left:16px;bottom:16px;background:var(--card);border-radius:20px;box-shadow:0 20px 40px oklch(30% 0.03 300 / 0.18);padding:20px 22px;width:min(220px,60%);border:1px solid var(--line)}
.hero-next-label{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.03em;margin-bottom:6px}
.hero-next-time{font-family:'Playfair Display',serif;font-size:20px;font-weight:600;margin-bottom:12px}
.hero-next-cta{text-decoration:none;display:block;text-align:center;background:var(--accent);color:var(--on-plum);padding:10px;border-radius:100px;font-size:14px;font-weight:600}
.hero-family{position:absolute;top:16px;right:16px;background:var(--card);border-radius:16px;box-shadow:0 16px 32px oklch(30% 0.03 300 / 0.15);padding:14px 18px;display:flex;align-items:center;gap:10px;border:1px solid var(--line)}
.hero-family span{font-size:13px;font-weight:600}

/* ===== Benefit cards ===== */
.benefit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.benefit-card{padding:28px 22px}
.benefit-icon{width:48px;height:48px;border-radius:14px;background:var(--tint);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.benefit-card h3{font-size:19px;font-weight:600;margin:0 0 8px}
.benefit-card p{font-size:14.5px;line-height:1.55;color:var(--muted)}

/* ===== Services ===== */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.service-card{border-radius:24px;overflow:hidden;border:1px solid var(--line);transition:transform .3s ease,box-shadow .3s ease}
.service-card:hover{transform:translateY(-6px);box-shadow:0 20px 36px oklch(30% 0.03 300 / 0.14)}
.service-card img{width:100%;height:190px;object-fit:cover}
.service-body{padding:24px}
.service-body h3{font-size:20px;font-weight:600;margin:0 0 8px}
.service-body p{font-size:14.5px;color:var(--muted);line-height:1.55}

/* ===== About panel ===== */
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;align-items:center;position:relative;z-index:1}
.about-media{position:relative;min-width:0}
.about-media img{width:100%;height:420px;object-fit:cover;border-radius:26px;box-shadow:0 24px 48px oklch(20% 0.05 300 / 0.35)}
.about-quote{position:absolute;bottom:16px;right:16px;background:var(--card);color:var(--plum-dark);padding:18px 22px;border-radius:18px;font-family:'Playfair Display',serif;font-size:15px;line-height:1.4;max-width:min(190px,55%);box-shadow:0 16px 30px oklch(20% 0.05 300 / 0.3)}
.about-copy{min-width:0}
.about-copy .kicker{color:oklch(85% 0.04 300)}
.about-copy h2{font-weight:600;font-size:clamp(26px,3.4vw,36px);line-height:1.2;margin:0 0 20px;color:var(--on-plum)}
.about-copy p{font-size:16.5px;line-height:1.7;color:var(--on-plum-muted);margin:0 0 18px}
.about-copy a{color:var(--on-plum);font-weight:600;font-size:15.5px;border-bottom:1.5px solid oklch(98% 0.005 90 / .5);padding-bottom:2px}
.about-copy a:hover{border-color:var(--on-plum)}

/* ===== Process ===== */
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px;position:relative}
.process-line{position:absolute;top:26px;left:12%;right:12%;height:1px;background:var(--line);z-index:0}
.process-step{position:relative;z-index:1;text-align:center}
.process-num{width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--on-plum);display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:20px;font-weight:600;margin:0 auto 18px}
.process-step h3{font-size:16.5px;font-weight:600;margin:0 0 8px}
.process-step p{font-size:14px;color:var(--muted);line-height:1.5}

/* ===== Testimonials ===== */
.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.testi-card{background:var(--card);border-radius:22px;padding:30px;transition:transform .25s ease}
.testi-card:hover{transform:translateY(-5px)}
.testi-mark{font-family:'Playfair Display',serif;font-size:34px;color:var(--accent);line-height:.5;margin-bottom:16px}
.testi-quote{font-size:15.5px;line-height:1.6;margin:0 0 18px;color:var(--text)}
.testi-name{font-weight:600;font-size:14px;color:var(--muted)}
