:root{
  --navy:#102654;--plum:#481344;--rose:#d84f78;--rose-dark:#b93c67;
  --pink:#f2a4bb;--blush:#f9e2e9;--cream:#fffaf6;--sage:#68795d;
  --gold:#a87b3d;--ink:#202541;--muted:#6f6b76;--line:#ead8dd;
  --paper:#fffefd;--shadow:0 22px 60px rgba(72,19,68,.12)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--paper);line-height:1.6}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.container{width:min(1180px,calc(100% - 40px));margin:auto}
.topbar{background:var(--navy);color:white;font-size:.78rem;letter-spacing:.04em}
.topbar-inner{min-height:35px;display:flex;justify-content:center;gap:42px;align-items:center}
.header{position:sticky;top:0;z-index:30;background:rgba(255,254,253,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(216,79,120,.16)}
.nav{min-height:82px;display:flex;align-items:center;gap:28px}
.logo{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.logo-script{font-family:"Great Vibes",cursive;color:var(--navy);font-size:2.45rem;line-height:1}
.logo-sub{font-weight:800;color:var(--plum)}
nav{display:flex;gap:26px;margin-left:auto}
nav a{font-weight:700;font-size:.92rem}
nav a:hover{color:var(--rose)}
.menu-btn{display:none;margin-left:auto;border:0;background:transparent;font-size:1.6rem}
.cart-btn{border:0;border-radius:999px;padding:10px 15px;background:var(--blush);color:var(--plum);font-weight:800}
.cart-btn span{display:inline-grid;place-items:center;width:24px;height:24px;margin-left:5px;border-radius:50%;background:var(--rose);color:white}

.hero{position:relative;overflow:hidden;padding:86px 0 105px;background:radial-gradient(circle at 8% 5%,rgba(249,226,233,.95),transparent 34%),linear-gradient(135deg,#fff9fb,#fffefd 60%,#faf5ff)}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:.92fr 1.08fr;gap:62px;align-items:center}
.kicker{margin:0 0 12px;color:var(--rose);text-transform:uppercase;letter-spacing:.19em;font-size:.78rem;font-weight:900}
h1,h2{font-family:"Playfair Display",serif;color:var(--navy);line-height:1.1}
h1{font-size:clamp(3rem,5.3vw,5.45rem);margin:0}
.hero-lead{font-size:1.08rem;color:var(--muted);margin:24px 0 30px;max-width:650px}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 22px;border:1px solid transparent;font-weight:900;transition:.2s}
.button:hover{transform:translateY(-2px)}
.primary{background:linear-gradient(135deg,var(--rose),var(--rose-dark));color:white;box-shadow:0 13px 28px rgba(216,79,120,.24)}
.secondary{background:white;border-color:var(--navy);color:var(--navy)}
.full{width:100%;border:0}
.mini-proof{display:flex;gap:20px;flex-wrap:wrap;margin-top:28px;color:var(--sage);font-size:.9rem;font-weight:800}
.hero-visual{position:relative}
.image-frame{padding:12px;border:1px solid var(--line);border-radius:28px;background:white;box-shadow:var(--shadow);transform:rotate(1deg)}
.image-frame img{border-radius:19px}
.floating-card{position:absolute;right:-16px;bottom:-25px;max-width:285px;padding:17px 20px;background:white;border:1px solid var(--line);border-radius:17px;box-shadow:0 18px 40px rgba(16,38,84,.14)}
.floating-card strong,.floating-card span{display:block}
.floating-card strong{color:var(--plum)}
.floating-card span{color:var(--muted);font-size:.85rem;margin-top:3px}
.floral{position:absolute;width:270px;height:270px;border-radius:50%;filter:blur(3px);opacity:.4}
.floral-left{left:-120px;bottom:-80px;background:radial-gradient(circle,var(--pink),transparent 65%)}
.floral-right{right:-110px;top:-70px;background:radial-gradient(circle,#cbb0d8,transparent 65%)}

.quick-categories{position:relative;z-index:5;margin-top:-38px}
.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.category{display:flex;align-items:center;gap:17px;padding:25px;background:white;border:1px solid var(--line);border-radius:21px;box-shadow:0 14px 36px rgba(16,38,84,.08);transition:.2s}
.category:hover{transform:translateY(-4px);border-color:var(--pink)}
.cat-icon{flex:0 0 54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--plum);font-size:1.45rem}
.category strong,.category small{display:block}
.category strong{font-family:"Playfair Display",serif;color:var(--navy);font-size:1.25rem}
.category small{color:var(--muted)}

.shop,.custom,.gallery,.reviews,.about{padding:105px 0}
.section-title{text-align:center;max-width:720px;margin:0 auto 34px}
.section-title h2{font-size:clamp(2.3rem,4vw,3.7rem);margin:0 0 10px}
.section-title p:last-child{margin:0;color:var(--muted)}
.filters{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin-bottom:34px}
.filter{padding:9px 17px;border-radius:999px;border:1px solid var(--line);background:white;font-weight:800}
.filter.active,.filter:hover{background:var(--navy);color:white;border-color:var(--navy)}
.products{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.product{overflow:hidden;background:white;border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 34px rgba(16,38,84,.07);transition:.2s}
.product:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.product.hidden{display:none}
.product img{width:100%;aspect-ratio:1.32/1;object-fit:cover}
.product-body{padding:22px}
.badge{display:inline-block;margin-bottom:7px;color:var(--rose);text-transform:uppercase;font-size:.7rem;letter-spacing:.13em;font-weight:900}
.product h3{margin:0 0 7px;color:var(--navy);font-size:1.18rem}
.product p{min-height:68px;margin:0 0 17px;color:var(--muted);font-size:.91rem}
.product-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:16px}
.product-footer strong{color:var(--plum)}
.add,.quote-link{border:0;background:transparent;padding:0;color:var(--rose);font-weight:900}
.add:hover,.quote-link:hover{color:var(--plum)}

.custom{background:linear-gradient(135deg,#fff4f7,#faf7ff)}
.custom-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:70px;align-items:center}
.custom-copy h2{font-size:clamp(2.4rem,4vw,3.8rem);margin:0 0 17px}
.custom-copy>p:not(.kicker){color:var(--muted)}
.steps{margin-top:28px;display:grid;gap:17px}
.steps>div{display:flex;gap:14px;align-items:flex-start}
.steps span{flex:0 0 38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--plum);font-weight:900}
.steps strong,.steps small{display:block}
.steps strong{color:var(--navy)}
.steps small{color:var(--muted)}
.order-form{padding:31px;background:white;border:1px solid var(--line);border-radius:25px;box-shadow:var(--shadow)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}
label{display:block;margin-bottom:14px;color:var(--navy);font-weight:800;font-size:.9rem}
input,select,textarea{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #dfced4;border-radius:11px;background:#fffdfd;color:var(--ink);outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--rose);box-shadow:0 0 0 3px rgba(216,79,120,.11)}
textarea{resize:vertical}
.form-note{text-align:center;color:var(--muted);font-size:.77rem;margin:10px 0 0}

.gallery{background:var(--cream)}
.gallery-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:220px 220px;gap:18px}
.gallery-card{position:relative;overflow:hidden;border-radius:22px;box-shadow:0 13px 35px rgba(16,38,84,.09)}
.gallery-card.large{grid-row:1/3}
.gallery-card img{width:100%;height:100%;object-fit:cover;transition:.35s}
.gallery-card:hover img{transform:scale(1.04)}
.gallery-card span{position:absolute;left:16px;bottom:15px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--navy);font-weight:800;font-size:.83rem}

.reviews{padding-top:95px}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
blockquote{margin:0;padding:28px;border:1px solid var(--line);border-radius:20px;background:white;color:var(--ink);box-shadow:0 10px 28px rgba(16,38,84,.05)}
blockquote:before{content:"“";font-family:Georgia,serif;color:var(--rose);font-size:3.4rem;line-height:.5;display:block;margin-bottom:12px}
cite{display:block;margin-top:17px;color:var(--plum);font-style:normal;font-weight:800}

.about{background:linear-gradient(135deg,#fff,#fff7fa)}
.about-grid{display:grid;grid-template-columns:1fr .85fr;gap:48px;align-items:center}
.about-copy h2{font-size:clamp(2.4rem,4vw,3.8rem);margin:0 0 15px}
.about-copy>p:not(.kicker){color:var(--muted)}
.benefits{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:23px}
.benefits span{padding:13px 15px;border-radius:13px;background:white;border:1px solid var(--line);font-weight:800;color:var(--sage)}
.newsletter{padding:34px;border-radius:25px;background:var(--navy);color:white}
.newsletter h3{font-family:"Playfair Display",serif;font-size:2rem;line-height:1.2;margin:0 0 20px}
.newsletter form{display:flex;gap:9px}
.newsletter input{margin:0;background:white}
.newsletter small{display:block;margin-top:11px;color:#d7ddef}

.contact{padding:0 0 100px}
.contact-card{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;background:var(--plum);color:white;border-radius:28px;padding:44px}
.contact-card h2{color:white;font-size:2.5rem;margin:0 0 7px}
.contact-card p:not(.kicker){margin:0;color:#eedeea}
.contact-links{display:grid;gap:10px;justify-content:end}
.contact-links a{padding:11px 16px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16)}
.contact-links a:hover{background:rgba(255,255,255,.17)}

footer{padding:42px 0;background:#fff8fa;border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center}
.footer-logo{font-family:"Great Vibes",cursive;color:var(--plum);font-size:2.15rem}
.footer-grid p{margin:0;color:var(--muted)}
.footer-nav{display:flex;gap:20px;font-weight:800}
.copyright{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px;font-size:.84rem}

.cart-drawer{position:fixed;z-index:60;top:0;right:0;width:min(430px,100%);height:100%;background:white;box-shadow:-22px 0 70px rgba(16,38,84,.2);transform:translateX(105%);transition:.25s;display:flex;flex-direction:column}
.cart-drawer.open{transform:translateX(0)}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:22px;border-bottom:1px solid var(--line)}
.cart-head h2{margin:0}
.cart-head button{border:0;background:transparent;font-size:2rem;color:var(--muted)}
.cart-items{flex:1;overflow:auto;padding:20px}
.empty{color:var(--muted);text-align:center;margin-top:50px}
.cart-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.cart-item strong{display:block;color:var(--navy)}
.cart-item small{color:var(--muted)}
.remove{border:0;background:transparent;color:var(--rose);font-weight:900}
.cart-bottom{padding:20px;border-top:1px solid var(--line)}
.cart-total{display:flex;justify-content:space-between;margin-bottom:15px}
.cart-bottom p{font-size:.76rem;text-align:center;color:var(--muted);margin:10px 0 0}
.overlay{position:fixed;z-index:50;inset:0;background:rgba(9,14,34,.45);opacity:0;visibility:hidden;transition:.2s}
.overlay.show{opacity:1;visibility:visible}
.toast{position:fixed;z-index:80;left:50%;bottom:24px;transform:translate(-50%,30px);opacity:0;background:var(--navy);color:white;padding:11px 17px;border-radius:999px;font-weight:800;transition:.2s}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:920px){
  nav{position:absolute;left:20px;right:20px;top:82px;display:none;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--line);border-radius:16px;background:white;box-shadow:var(--shadow)}
  nav.open{display:flex}.menu-btn{display:block}
  .hero-grid,.custom-grid,.about-grid,.contact-card{grid-template-columns:1fr}
  .category-grid,.products{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:260px 220px 220px}
  .gallery-card.large{grid-column:1/3;grid-row:auto}
  .review-grid{grid-template-columns:1fr}
  .contact-links{justify-content:stretch}
  .contact-links a{text-align:center}
}
@media(max-width:620px){
  .container{width:min(100% - 26px,1180px)}
  .topbar-inner{gap:10px;justify-content:center;font-size:.67rem}
  .topbar-inner span:nth-child(2),.topbar-inner span:nth-child(3){display:none}
  .nav{min-height:72px}.logo-script{font-size:2rem}.logo-sub{display:none}nav{top:72px}
  .hero{padding:62px 0 82px}h1{font-size:2.8rem}
  .floating-card{position:static;margin:12px 0 0}
  .quick-categories{margin-top:-25px}.category-grid,.products,.two,.benefits{grid-template-columns:1fr}
  .shop,.custom,.gallery,.reviews,.about{padding:78px 0}
  .order-form,.newsletter,.contact-card{padding:24px}
  .gallery-grid{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,240px)}
  .gallery-card.large{grid-column:auto}
  .newsletter form{display:grid}
  .footer-grid{grid-template-columns:1fr;text-align:center}
  .footer-nav{justify-content:center;flex-wrap:wrap}.copyright{grid-column:auto}
}
