* { box-sizing: border-box; }
:root {
  --pink: #f3c6d3;
  --pink-dark: #d991a9;
  --pink-soft: #fff5f7;
  --cream: #fffaf9;
  --text: #292226;
  --muted: #776d71;
  --line: #eadcdf;
  --white: #fff;
  --shadow: 0 25px 70px rgba(88, 47, 61, .12);
}
html { scroll-behavior: smooth; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in-view { opacity:1; transform:translateY(0); }
.benefits article.reveal:nth-child(2), .gallery-card.reveal:nth-child(2), .price-item.reveal:nth-child(2) { transition-delay:.1s; }
.benefits article.reveal:nth-child(3), .gallery-card.reveal:nth-child(3), .price-item.reveal:nth-child(3) { transition-delay:.2s; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity:1; transform:none; transition:none; }
}
@keyframes fadeInUp { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:translateY(0); } }
.hero-content { animation:fadeInUp .7s ease both; }
.hero-photo { animation:fadeInUp .7s ease .15s both; }
body {
  margin: 0;
  color: var(--text);
  background: var(--cream);
  font-family: "Manrope", sans-serif;
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.header {
  position: sticky;
  top: 0;
  z-index: 50;
  height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5vw;
  background: rgba(255,250,249,.88);
  border-bottom: 1px solid rgba(234,220,223,.7);
  backdrop-filter: blur(18px);
  transition: box-shadow .25s ease;
}
.header.scrolled { box-shadow: 0 8px 24px rgba(88,47,61,.08); }
.logo { display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:.16em; }
.logo-mark {
  width: 34px; height: 34px; display:grid; place-items:center;
  border-radius: 50%; background: var(--pink); font-family:"Playfair Display",serif;
  font-size: 19px; letter-spacing:0;
}
.logo-dot { color: var(--pink-dark); }
.nav { display:flex; gap:32px; font-size:13px; color:#665c60; }
.nav a { transition:color .2s ease; }
.nav a:hover { color:var(--pink-dark); }
.nav a.active { color:var(--pink-dark); font-weight:700; }
.header-button {
  padding: 11px 20px; border:1px solid #d8bdc5; border-radius:99px;
  font-size:13px; font-weight:600;
}
.header-actions { display:flex; align-items:center; gap:14px; }
.nav-toggle {
  display: none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; padding:0; border:0; background:none; cursor:pointer;
}
.nav-toggle span { width:22px; height:2px; background:var(--text); border-radius:2px; transition:.25s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.hero {
  min-height: calc(100vh - 78px);
  display:grid; grid-template-columns: 1fr 1fr; gap:7vw; align-items:center;
  padding: 70px 8vw 90px; overflow:hidden;
}
.eyebrow,.section-label { color:var(--pink-dark); font-size:11px; font-weight:700; letter-spacing:.2em; }
.hero h1, h2 {
  font-family:"Playfair Display",serif; font-weight:500; line-height:1.05;
}
.hero h1 { font-size:clamp(48px,6vw,82px); margin:20px 0 26px; letter-spacing:-.03em; }
em { color:var(--pink-dark); font-style:normal; }
.hero-content > p { max-width:560px; color:var(--muted); font-size:17px; }
.hero-actions { display:flex; gap:12px; margin:34px 0 24px; flex-wrap:wrap; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:0 24px; border-radius:99px; font-size:13px; font-weight:700; transition:.25s; }
.button:hover { transform:translateY(-2px); box-shadow:0 10px 25px rgba(75,42,54,.12); }
.button-dark { background:#30282b; color:white; }
.button-light { border:1px solid var(--line); background:white; }
.hero-note { color:#85777c; font-size:12px; }
.hero-note span { color:var(--pink-dark); margin-right:7px; }
.hero-photo { position:relative; max-width:560px; justify-self:center; }
.hero-photo-frame { width:min(100%,500px); aspect-ratio: .82; overflow:hidden; border-radius:260px 260px 24px 24px; box-shadow:var(--shadow); transform:rotate(2deg); }
.hero-photo img { width:100%; height:100%; object-fit:cover; }
.floating-card {
  position:absolute; left:-35px; bottom:40px; display:flex; align-items:center; gap:12px;
  padding:15px 18px; background:rgba(255,255,255,.94); border:1px solid #eee1e4;
  border-radius:18px; box-shadow:var(--shadow); max-width:245px;
}
.floating-icon { width:38px;height:38px;display:grid;place-items:center;background:var(--pink-soft);border-radius:50%;color:var(--pink-dark);font-size:20px; }
.floating-card strong,.floating-card small { display:block; }
.floating-card strong { font-size:12px; }
.floating-card small { color:var(--muted); font-size:10px; margin-top:2px; }
.intro,.works,.prices,.contacts { padding:110px 8vw; }
.intro { background:white; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:8vw; margin-top:22px; }
h2 { font-size:clamp(40px,5vw,66px); margin:12px 0 25px; letter-spacing:-.025em; }
.intro-text { color:var(--muted); font-size:15px; max-width:570px; }
.benefits { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:70px; }
.benefits article { border-top:1px solid var(--line); padding-top:18px; }
.benefits span,.price-number { color:var(--pink-dark); font-size:11px; font-weight:700; letter-spacing:.14em; }
.benefits h3 { font-family:"Playfair Display",serif; font-size:25px; margin:22px 0 8px; }
.benefits p { color:var(--muted); font-size:13px; margin:0; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:35px; }
.section-heading h2 { margin-bottom:0; }
.section-heading p { color:var(--muted); max-width:300px; font-size:13px; }
.gallery { display:grid; grid-template-columns:1.25fr .9fr .9fr; gap:18px; }
.gallery-card { position:relative; padding:0; border:0; background:none; height:480px; overflow:hidden; border-radius:22px; cursor:pointer; }
.gallery-card.tall { height:560px; }
.gallery-card img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.gallery-card:hover img { transform:scale(1.045); }
.gallery-caption { position:absolute; left:18px; bottom:18px; padding:8px 13px; border-radius:99px; background:rgba(255,255,255,.9); font-size:11px; font-weight:700; }
.prices { background:var(--pink-soft); }
.price-intro { text-align:center; max-width:640px; margin:0 auto 60px; }
.price-intro .section-label { display:block; margin-bottom:8px; }
.price-intro h2 { margin-bottom:14px; }
.price-intro p { color:var(--muted); font-size:15px; }
.price-list { display:flex; flex-direction:column; gap:26px; max-width:1100px; margin:0 auto; }
.price-item {
  display:grid; grid-template-columns:220px 1fr auto; align-items:center; gap:32px;
  background:var(--white); border-radius:24px; overflow:hidden;
  box-shadow:var(--shadow); position:relative;
}
.price-item.featured { background:linear-gradient(135deg,rgba(255,255,255,.9),var(--pink-soft)); }
.price-photo { height:100%; min-height:190px; align-self:stretch; }
.price-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.price-body { padding:10px 0; }
.price-item .price-number {
  display:block; font-family:"Playfair Display",serif; font-weight:600; font-size:34px;
  color:var(--pink-dark); letter-spacing:0; margin-bottom:6px;
}
.price-item h3 { margin:0 0 12px; font-size:19px; line-height:1.45; font-weight:700; }
.price-item h3 em { display:block; color:var(--pink-dark); font-style:normal; margin-top:2px; }
.price-item p { margin:0; color:var(--muted); font-size:13.5px; max-width:360px; line-height:1.6; }
.price-item > strong {
  white-space:nowrap; font-family:"Playfair Display",serif; font-weight:600; font-size:34px;
  color:var(--pink-dark); padding-right:34px;
}
.price-note {
  display:flex; align-items:center; justify-content:center; gap:10px;
  max-width:560px; margin:50px auto 0; padding:18px 26px; text-align:center;
  background:var(--white); border-radius:99px; box-shadow:var(--shadow);
  color:var(--muted); font-size:12.5px; line-height:1.6;
}
.price-note span { color:var(--pink-dark); font-size:15px; }
.diploma { padding:110px 8vw; background:#30282b; color:white; }
.diploma-grid { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:center; }
.diploma-text span { color:var(--pink); font-size:11px; letter-spacing:.2em; font-weight:700; }
.diploma-text h2 { font-size:clamp(36px,4.5vw,52px); margin:16px 0 20px; color:white; }
.diploma-text p { color:#cfc3c7; font-size:15px; max-width:460px; }
.diploma-photo { border-radius:24px; overflow:hidden; aspect-ratio:.82; box-shadow:0 25px 70px rgba(0,0,0,.35); }
.diploma-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.contacts { display:grid; grid-template-columns:1.2fr .8fr; gap:8vw; align-items:center; }
.contacts-main > p { max-width:500px; color:var(--muted); }
.contact-list { margin:35px 0; border-top:1px solid var(--line); max-width:600px; }
.contact-row { display:flex; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); font-size:14px; }
.contact-row span { color:#94868b; }
.qr-card { text-align:center; padding:38px; border-radius:28px; background:var(--pink-soft); }
.qr-placeholder { width:180px;height:180px;margin:0 auto 25px;background:white;display:grid;place-items:center;border-radius:18px; border:1px solid var(--line); }
.qr-inner { width:110px;height:110px;display:grid;place-items:center;border:7px dotted #322a2d;border-radius:8px;font-weight:800;letter-spacing:.15em; }
.qr-card h3 { font-family:"Playfair Display",serif; font-size:25px; margin:0 0 7px; }
.qr-card p { color:var(--muted); font-size:12px; margin:0; }
.footer { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:28px 8vw; border-top:1px solid var(--line); color:#8b7d82; font-size:11px; }
.footer-logo { color:var(--text); }
.social-links { display:flex; align-items:center; gap:14px; }
.social-links img { display:block; width:22px; height:22px; border-radius:6px; opacity:.85; transition:opacity .2s, transform .2s; }
.social-links a:hover img { opacity:1; transform:translateY(-2px); }
.lightbox {
  position:fixed; inset:0; z-index:100; display:grid; place-items:center;
  background:rgba(20,14,17,.9); padding:30px;
  opacity:0; pointer-events:none; transition:opacity .25s ease;
}
.lightbox.open { opacity:1; pointer-events:auto; }
.lightbox img {
  max-width:min(92vw,900px); max-height:90vh; object-fit:contain; border-radius:16px;
  transform:scale(.94); transition:transform .25s ease;
}
.lightbox.open img { transform:scale(1); }
.lightbox-close { position:absolute; top:20px; right:25px; border:0;background:none;color:white;font-size:42px;cursor:pointer; }
@media (max-width: 850px) {
  .nav-toggle { display:flex; }
  .nav {
    position:fixed; top:78px; left:0; right:0; z-index:49;
    flex-direction:column; gap:0; background:var(--cream);
    border-bottom:1px solid var(--line); box-shadow:var(--shadow);
    padding:8px 5vw 18px; opacity:0; pointer-events:none; transform:translateY(-8px);
    transition:.2s;
  }
  .nav.open { opacity:1; pointer-events:auto; transform:translateY(0); }
  .nav a { padding:14px 0; border-bottom:1px solid var(--line); }
  .header { padding:0 5vw; }
  .hero,.intro-grid,.contacts,.diploma-grid { grid-template-columns:1fr; }
  .diploma-grid { gap:36px; }
  .diploma-photo { order:-1; max-width:420px; margin:0 auto; }
  .price-item { grid-template-columns:180px 1fr auto; gap:22px; }
  .hero { padding-top:45px; }
  .hero-photo { order:-1; width:min(100%,500px); }
  .hero-photo-frame { margin:auto; }
  .floating-card { left:5px; }
  .benefits { grid-template-columns:1fr; gap:28px; }
  .gallery { grid-template-columns:1fr 1fr; }
  .gallery-card,.gallery-card.tall { height:390px; }
  .gallery-card:first-child { grid-column:1/-1; height:500px; }
  .section-heading { align-items:start; flex-direction:column; }
  .contacts { gap:50px; }
}
@media (max-width: 520px) {
  .header-button { display:none; }
  .hero,.intro,.works,.prices,.contacts,.diploma { padding-left:5vw; padding-right:5vw; }
  .hero h1 { font-size:48px; }
  .hero-photo-frame { border-radius:170px 170px 20px 20px; }
  .gallery { grid-template-columns:1fr; }
  .gallery-card,.gallery-card.tall,.gallery-card:first-child { height:480px; grid-column:auto; }
  .price-item { grid-template-columns:1fr; }
  .price-photo { min-height:180px; }
  .price-body { padding:0 18px; }
  .price-item > strong { padding:0 18px 18px; display:block; }
  .footer { flex-direction:column; align-items:flex-start; }
}
