
:root{
  --bg:#fffdfd;
  --fg:#2a1f2b;
  --muted:#6b5a6b;
  --primary:#ff7eb9;   /* pink */
  --accent:#ffd166;    /* soft yellow */
  --rose:#ffe9f2;      /* light rose */
  --shadow: 0 10px 30px rgba(0,0,0,.08);
  --radius: 16px;
}
*{box-sizing:border-box}
html:focus-within{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html:focus-within{scroll-behavior:auto}
  .hero, .card, .btn, .logo-text, .nav-menu{transition:none !important}
}
body{
  margin:0;
  font-family: Poppins, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--fg);
  background:var(--bg);
  line-height:1.6;
}
.container{width:min(1100px, 92%); margin-inline:auto}
.center{text-align:center}
.small{font-size:.9rem; color:var(--muted)}

.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#000;color:#fff;padding:.5rem 1rem;border-radius:8px;z-index:9999}

.site-header{position:sticky; top:0; z-index:999; background:rgba(255,255,255,.7); backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid #ffe3f0}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0}
.logo{display:flex;gap:.6rem;align-items:center;text-decoration:none}
.logo-text{font-family:"Playfair Display", serif; font-weight:600; color:var(--fg); font-size:1.25rem; letter-spacing:.2px}
.nav-toggle{display:none}
.nav-menu{display:flex;gap:1rem; list-style:none; margin:0;padding:0}
.nav-menu a{display:block; padding:.55rem .8rem; border-radius:999px; text-decoration:none; color:var(--fg); transition:transform .2s ease, background .2s ease}
.nav-menu a:hover{background:var(--rose); transform:translateY(-1px)}

@media (max-width: 820px){
  .nav-toggle{display:inline-block; background:transparent; border:1px solid #f6cddd; padding:.4rem .7rem; border-radius:999px}
  .nav-menu{position:absolute; right:4%; top:64px; background:#fff; border:1px solid #ffe3f0; border-radius:14px; padding:.6rem; box-shadow:var(--shadow); display:none; flex-direction:column; min-width:200px}
  .nav-menu.open{display:flex}
}

.hero{position:relative; padding:5rem 0 3rem; background:linear-gradient(180deg, var(--rose), #fff 55%)}
.hero .lead{color:#5a4c5a; max-width:60ch}
.gradient{font-family:"Playfair Display", serif; font-weight:600; font-size:clamp(2rem, 6vw, 3rem); background:linear-gradient(90deg, var(--fg), #b15a80, var(--primary)); -webkit-background-clip:text; background-clip:text; color:transparent}
.cta-row{display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1rem}
.btn{background:var(--primary); border:none; color:#fff; padding:.7rem 1rem; border-radius:999px; cursor:pointer; box-shadow:var(--shadow); transition:transform .2s ease, box-shadow .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn-lg{padding:.9rem 1.2rem; font-weight:600}
.btn-outline{background:transparent; color:var(--fg); border:1px solid #ffd2e7}
.btn-secondary{background:var(--accent); color:#4a3a1d}

.grid.two{display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:start}
@media (max-width: 820px){ .grid.two{grid-template-columns:1fr} }

.cards.three{display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem}
@media (max-width: 1020px){ .cards.three{grid-template-columns:repeat(2, 1fr)} }
@media (max-width: 680px){ .cards.three{grid-template-columns:1fr} }

.card{padding:1.2rem; border:1px solid #ffe3f0; border-radius:var(--radius); background:#fff; box-shadow:var(--shadow)}
.card .price{font-weight:600; color:#9b2b5a}

.alt{background:#fff8fb; border:1px solid #ffe3f0; border-left:none; border-right:none; padding:2rem; border-radius:0}

.checklist{list-style:none; padding:0; margin:0}
.checklist li{padding-left:1.6rem; position:relative; margin:.6rem 0}
.checklist li::before{content:"✔"; position:absolute; left:0; top:.1rem; color:#7bb661}

.facts{display:grid; grid-template-columns:auto 1fr; gap:.2rem .8rem}
.facts dt{font-weight:600}
.facts dd{margin:0}

.services .service-list{list-style:none; padding:0; border:1px dashed #ffd2e7; border-radius:14px}
.services .service-list li{display:flex; justify-content:space-between; padding:.7rem 1rem; border-bottom:1px dashed #ffe6f1}
.services .service-list li:last-child{border-bottom:0}

.pricing-table{width:100%; border-collapse:separate; border-spacing:0; overflow:hidden; border-radius:14px; border:1px solid #ffe3f0}
.pricing-table th, .pricing-table td{padding:.8rem 1rem; text-align:left}
.pricing-table thead{background:#fff2f7}
.pricing-table tbody tr:nth-child(odd){background:#fff}

.form{display:grid; gap:.8rem}
.form label{display:grid; gap:.3rem; font-weight:500}
.form input, .form select, .form textarea{border:1px solid #ffd2e7; border-radius:12px; padding:.7rem; font:inherit; background:#fff}
.form input:focus, .form select:focus, .form textarea:focus{outline:3px solid #ffe9f2}

.site-footer{margin-top:3rem; border-top:1px solid #ffe3f0; background:linear-gradient(180deg, #fff, #fff8fb)}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr; gap:1.5rem; padding:2rem 0}
.footer-links, .hours{list-style:none; padding:0; margin:0}
.footer-links a{color:var(--fg); text-decoration:none}
.footer-bottom{display:flex; justify-content:space-between; border-top:1px dashed #ffe3f0; padding:1rem 0}
@media (max-width: 820px){
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column; gap:.5rem}
}

.cookie-banner{position:fixed; z-index:1000; inset:auto 1rem 1rem 1rem; background:#fff; border:1px solid #ffe3f0; border-radius:14px; box-shadow:var(--shadow); padding:1rem; display:none}
.cookie-banner.show{display:block}
.cookie-actions{display:flex; gap:.5rem; margin-top:.5rem}

.flowers{position:absolute; inset:0; pointer-events:none; background:
  radial-gradient(circle at 10% 30%, rgba(255,214,102,.25) 0 120px, transparent 121px),
  radial-gradient(circle at 85% 20%, rgba(255,126,185,.18) 0 140px, transparent 141px),
  radial-gradient(circle at 80% 80%, rgba(255,214,102,.18) 0 160px, transparent 161px),
  radial-gradient(circle at 20% 80%, rgba(255,126,185,.12) 0 180px, transparent 181px);
}

.note{background:#fff8fb; border:1px dashed #ffd2e7; padding:.8rem 1rem; border-radius:12px}

.link{color:#9b2b5a}

.quote{max-width:70ch; margin:1rem auto; font-style:italic; background:#fff; border-left:6px solid var(--primary); padding:1rem; border-radius:12px}
