/* ===== Hero ===== */
.hero{padding:56px 24px 40px;position:relative;overflow:hidden}
.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:0.8125rem;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:1.125rem;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-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:0.8125rem;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:1.1875rem;font-weight:600;margin:0 0 8px}
.benefit-card p{font-size:0.9063rem;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:1.25rem;font-weight:600;margin:0 0 8px}
.service-body p{font-size:0.9063rem;color:var(--muted);line-height:1.55}

/* ===== About panel ===== */
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),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:0.9375rem;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:1.0313rem;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:0.9688rem;border-bottom:1.5px solid oklch(98% 0.005 90 / .5);padding-bottom:2px;display:inline-flex;align-items:center;gap:6px;transition:letter-spacing .25s ease,color .25s ease}
.about-copy a:hover{border-color:var(--on-plum)}
.about-cta .arrow{display:inline-block;transition:transform .3s ease}
.about-cta:hover{letter-spacing:.4px}
.about-cta:hover .arrow{transform:translateX(6px)}

/* ===== 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:1.25rem;font-weight:600;margin:0 auto 18px}
.process-step h3{font-size:1.0313rem;font-weight:600;margin:0 0 8px}
.process-step p{font-size:0.875rem;color:var(--muted);line-height:1.5}

/* ===== Testimonials marquee ===== */
.testi-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.testi-track{display:flex;gap:24px;width:max-content;animation:testi-scroll 38s linear infinite}
.testi-marquee:hover .testi-track{animation-play-state:paused}
.testi-card{flex:0 0 320px;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:2.125rem;color:var(--accent);line-height:.5;margin-bottom:16px}
.testi-quote{font-size:0.9688rem;line-height:1.6;margin:0 0 18px;color:var(--text)}
.testi-name{font-weight:600;font-size:0.875rem;color:var(--muted)}
@keyframes testi-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.testi-track{animation:none}}
@media (max-width:640px){.testi-card{flex:0 0 260px}}

