:root{
  --bg:#fbf6f7;
  --bg-soft:#f5e9ec;
  --panel:#fffafb;
  --panel-strong:#ffffff;
  --text:#31292b;
  --muted:#77686c;
  --soft:#9c858b;
  --line:rgba(137,92,104,.16);
  --rose:#c88799;
  --rose-deep:#9b596d;
  --cream:#f6efe3;
  --gold:#b58a54;
  --shadow:0 22px 64px rgba(88,50,62,.14);
  --radius-xl:30px;
  --radius-lg:24px;
  --radius-md:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  min-width:320px;
  color:var(--text);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  line-height:1.5;
  background:
    radial-gradient(circle at 16% 0%,rgba(255,255,255,.98),rgba(255,255,255,0) 34%),
    radial-gradient(circle at 92% 18%,rgba(236,193,204,.34),rgba(236,193,204,0) 30%),
    linear-gradient(180deg,#fffdfd 0%,var(--bg) 34%,#f3e2e7 100%);
  overflow-x:hidden;
}
body::before,
body::after{
  content:"";
  position:fixed;
  pointer-events:none;
  z-index:0;
  border-radius:999px;
  filter:blur(.4px);
}
body::before{
  width:240px;
  height:240px;
  left:max(-120px,calc(50% - 420px));
  top:140px;
  background:rgba(221,165,178,.22);
}
body::after{
  width:180px;
  height:180px;
  right:max(-94px,calc(50% - 390px));
  bottom:105px;
  border:1px solid rgba(255,255,255,.72);
  background:rgba(255,255,255,.42);
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input{font:inherit}
.page-shell{
  position:relative;
  z-index:1;
  width:100%;
  min-height:100vh;
  padding:14px 12px 0;
}
.page{
  width:min(100%,480px);
  margin:0 auto;
}
.hero{
  overflow:hidden;
  border-radius:34px;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,248,250,.94));
  border:1px solid rgba(255,255,255,.92);
  box-shadow:var(--shadow);
}
.hero-visual{
  position:relative;
  min-height:470px;
  overflow:hidden;
  background:#fff;
}
.hero-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(42,30,34,.08) 0%,rgba(42,30,34,0) 38%,rgba(42,30,34,.52) 100%);
  pointer-events:none;
}
.hero-visual img{
  width:100%;
  height:470px;
  object-fit:cover;
  object-position:center;
}
.hero-title-panel{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  z-index:2;
  padding:17px 17px 18px;
  border-radius:25px;
  background:rgba(255,250,251,.84);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 18px 44px rgba(46,24,31,.18);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.hero-kicker,.section-kicker{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0 0 8px;
  color:var(--rose-deep);
  font-size:12px;
  line-height:1;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:800;
}
.hero-kicker::before,.section-kicker::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  opacity:.55;
}
h1,h2,h3,p{margin-top:0}
h1{
  margin:0;
  max-width:360px;
  font-size:34px;
  line-height:1.04;
  letter-spacing:-.045em;
  color:#342429;
}
.hero-body{
  padding:22px 18px 24px;
}
.lead{
  margin:0 0 18px;
  color:var(--muted);
  font-size:16px;
  line-height:1.64;
}
.price-row{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 17px;
}
.price-old{
  color:rgba(119,104,108,.56);
  font-size:24px;
  font-weight:800;
  text-decoration:line-through;
  text-decoration-thickness:2px;
}
.price-current{
  color:var(--rose-deep);
  font-size:24px;
  font-weight:850;
  letter-spacing:-.025em;
}
.discount{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(200,135,153,.13);
  color:var(--rose-deep);
  font-size:13px;
  font-weight:850;
}
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:56px;
  border:0;
  border-radius:999px;
  cursor:pointer;
  font-weight:800;
  letter-spacing:-.01em;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,opacity .18s ease;
}
.button-primary,.button-submit{
  color:#fff;
  background:linear-gradient(180deg,#c88799 0%,#9c5a6f 100%);
  box-shadow:0 16px 34px rgba(156,90,111,.25);
}
.button:hover{transform:translateY(-1px);filter:saturate(1.03)}
.button:active{transform:translateY(0)}
.button:disabled{opacity:.68;cursor:wait;transform:none}
.meta-note{
  margin:10px 0 0;
  color:var(--soft);
  font-size:13px;
  text-align:center;
}
.section{
  padding:32px 0 0;
}
.section-intro{
  padding:0 6px 14px;
  text-align:center;
}
.section-intro h2{
  margin:0;
  color:var(--text);
  font-size:27px;
  line-height:1.1;
  letter-spacing:-.036em;
}
.story-card{
  overflow:hidden;
  border-radius:var(--radius-xl);
  background:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(255,249,250,.94) 100%);
  border:1px solid rgba(255,255,255,.88);
  box-shadow:0 18px 54px rgba(88,50,62,.11);
}
.story-photo{
  width:100%;
  min-height:365px;
  height:365px;
  object-fit:cover;
  object-position:center;
  background:#f5dfe6;
}
.story-copy{
  padding:20px 18px 22px;
}
.story-copy p{
  margin:0 0 14px;
  color:var(--muted);
  font-size:15px;
  line-height:1.68;
}
.facts-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin:18px 0;
}
.fact-item{
  padding:15px 15px 14px;
  border-radius:20px;
  background:linear-gradient(180deg,rgba(247,231,235,.88),rgba(255,255,255,.78));
  border:1px solid rgba(137,92,104,.1);
}
.fact-item strong{
  display:block;
  margin:0 0 5px;
  color:var(--text);
  font-size:15px;
}
.fact-item p{margin:0;font-size:14px;line-height:1.55}
.mini-note{
  margin:18px 0 16px;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(135deg,rgba(156,90,111,.10),rgba(181,138,84,.10));
  border:1px solid rgba(156,90,111,.12);
}
.mini-note h3{
  margin:0 0 8px;
  font-size:18px;
  line-height:1.2;
  letter-spacing:-.02em;
}
.mini-note p{margin:0}
.detail-gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:12px;
}
.detail-gallery img{
  width:100%;
  height:218px;
  object-fit:cover;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.9);
  background:#fff;
}
.detail-gallery img:first-child{object-position:center 58%}
.detail-gallery img:nth-child(2){object-position:center}
.reviews-carousel{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-xl);
  background:rgba(255,255,255,.76);
  border:1px solid rgba(255,255,255,.84);
  box-shadow:0 18px 54px rgba(88,50,62,.10);
  padding:14px 12px 16px;
}
.carousel-viewport{
  overflow:hidden;
  border-radius:24px;
}
.carousel-track{
  display:flex;
  transition:transform .42s ease;
  will-change:transform;
}
.review-card{
  flex:0 0 100%;
  min-height:206px;
  padding:20px 18px 22px;
  border-radius:24px;
  background:linear-gradient(180deg,#fff 0%,#fff8fa 100%);
  border:1px solid rgba(137,92,104,.11);
}
.review-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:13px;
}
.review-avatar{
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  color:#fff;
  background:linear-gradient(180deg,#d59aad,#a56175);
  font-weight:850;
}
.review-meta h3{
  margin:0 0 2px;
  font-size:16px;
  line-height:1.2;
}
.review-meta span{
  color:var(--soft);
  font-size:13px;
}
.review-card p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.66;
}
.carousel-arrow{
  position:absolute;
  z-index:3;
  top:50%;
  width:36px;
  height:36px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.84);
  box-shadow:0 10px 28px rgba(88,50,62,.13);
  cursor:pointer;
  transform:translateY(-50%);
}
.carousel-arrow::before{
  content:"";
  position:absolute;
  width:9px;
  height:9px;
  top:50%;
  left:50%;
  border-top:2px solid var(--rose-deep);
  border-right:2px solid var(--rose-deep);
}
.carousel-arrow-prev{left:5px}
.carousel-arrow-next{right:5px}
.carousel-arrow-prev::before{transform:translate(-35%,-50%) rotate(-135deg)}
.carousel-arrow-next::before{transform:translate(-65%,-50%) rotate(45deg)}
.carousel-dots{
  display:flex;
  justify-content:center;
  gap:7px;
  padding-top:13px;
}
.carousel-dots button{
  width:7px;
  height:7px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(156,90,111,.24);
  cursor:pointer;
  transition:width .22s ease,background .22s ease;
}
.carousel-dots button.is-active{
  width:20px;
  border-radius:999px;
  background:var(--rose-deep);
}
.order-section{padding-bottom:30px}
.order-card{
  overflow:hidden;
  border-radius:34px;
  padding:24px 18px 20px;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,247,249,.94));
  border:1px solid rgba(255,255,255,.88);
  box-shadow:var(--shadow);
}
.order-intro{padding:0 4px 17px}
.order-intro p{
  margin:10px 0 0;
  color:var(--muted);
  font-size:15px;
  line-height:1.58;
}
.order-form{display:grid;gap:13px}
.field-group{position:relative}
.field-group label{
  display:block;
  margin:0 0 7px;
  color:var(--text);
  font-size:13px;
  font-weight:800;
  letter-spacing:.015em;
}
.field-group input{
  width:100%;
  height:54px;
  border-radius:18px;
  border:1px solid rgba(137,92,104,.18);
  background:rgba(255,255,255,.88);
  padding:0 15px;
  color:var(--text);
  outline:none;
  box-shadow:0 10px 24px rgba(88,50,62,.05);
  transition:border .18s ease,box-shadow .18s ease,background .18s ease;
}
.field-group input::placeholder{color:rgba(119,104,108,.52)}
.field-group input:focus{
  border-color:rgba(156,90,111,.52);
  box-shadow:0 0 0 4px rgba(200,135,153,.14);
  background:#fff;
}
.field-error{
  display:block;
  min-height:18px;
  margin:6px 2px 0;
  color:#b13c45;
  font-size:12px;
  line-height:1.35;
}
.field-group.has-error input{border-color:rgba(177,60,69,.55);box-shadow:0 0 0 4px rgba(177,60,69,.09)}
.form-privacy{
  margin:0;
  color:var(--soft);
  font-size:12px;
  line-height:1.5;
  text-align:center;
}
.form-privacy a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.form-success{
  margin:0;
  min-height:18px;
  color:var(--rose-deep);
  text-align:center;
  font-size:13px;
  line-height:1.45;
}
.form-success.is-error{color:#b13c45}
.footer{
  width:min(100%,480px);
  margin:0 auto;
  padding:0 0 18px;
}
.footer-inner{
  border-radius:30px 30px 0 0;
  padding:22px 18px 24px;
  color:rgba(255,255,255,.82);
  background:linear-gradient(180deg,#5b3a45,#39262d);
}
.footer h2{
  margin:0 0 12px;
  color:#fff;
  font-size:13px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.footer p{
  margin:0 0 7px;
  font-size:13px;
  line-height:1.48;
}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  margin:13px 0 12px;
}
.footer-links a{
  font-size:13px;
  color:#fff;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.registry-note{color:rgba(255,255,255,.68)!important}
@media (min-width:481px){
  .page-shell{padding-top:20px}
  .hero-visual,.hero-visual img{height:510px;min-height:510px}
  .story-photo{height:395px}
  .detail-gallery img{height:240px}
}
@media (max-width:360px){
  .page-shell{padding-left:8px;padding-right:8px}
  h1{font-size:30px}
  .section-intro h2{font-size:24px}
  .hero-visual,.hero-visual img{height:430px;min-height:430px}
  .price-old,.price-current{font-size:22px}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
