:root{
  --background: 36 33% 97%;
  --foreground: 20 14% 12%;
  --card: 0 0% 100%;
  --muted: 35 25% 94%;
  --muted-foreground: 20 8% 42%;
  --primary: 350 65% 32%;
  --primary-foreground: 36 33% 97%;
  --primary-glow: 350 70% 45%;
  --secondary: 35 30% 92%;
  --accent: 36 45% 70%;
  --border: 35 20% 88%;
  --radius: 1rem;
  --gradient-luxe: linear-gradient(135deg, hsl(36 33% 97%) 0%, hsl(35 30% 92%) 100%);
  --gradient-primary: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(var(--primary-glow)) 100%);
  --gradient-overlay: linear-gradient(180deg, hsl(20 14% 8% / 0) 0%, hsl(20 14% 8% / 0.7) 100%);
  --shadow-soft: 0 4px 20px -8px hsl(20 14% 12% / 0.12);
  --shadow-elegant: 0 20px 50px -20px hsl(350 65% 32% / 0.25);
  --transition-smooth: cubic-bezier(0.22, 1, 0.36, 1);
}

*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:hsl(var(--background));
  color:hsl(var(--foreground));
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11";
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}

h1,h2,h3,h4,.font-serif{font-family:'Fraunces',serif;letter-spacing:-0.02em;margin:0}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

.container-luxe{max-width:80rem;margin:0 auto;width:100%;padding:0 1rem}
@media(min-width:640px){.container-luxe{padding:0 1.5rem}}
@media(min-width:1024px){.container-luxe{padding:0 2rem}}

.glass{backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}
.text-balance{text-wrap:balance}
.text-primary{color:hsl(var(--primary))}
.text-muted{color:hsl(var(--muted-foreground))}
.bg-card{background:hsl(var(--card))}
.bg-secondary{background:hsl(var(--secondary))}
.bg-foreground{background:hsl(var(--foreground));color:hsl(var(--background))}
.bg-gradient-primary{background:var(--gradient-primary);color:hsl(var(--primary-foreground))}
.bg-gradient-luxe{background:var(--gradient-luxe)}
.shadow-soft{box-shadow:var(--shadow-soft)}
.shadow-elegant{box-shadow:var(--shadow-elegant)}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;padding:1.25rem 0;transition:padding .5s var(--transition-smooth)}
.site-header.scrolled{padding:.75rem 0}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.75rem 1.25rem;border-radius:9999px;
  backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6);
  transition:box-shadow .5s var(--transition-smooth);
}
.site-header.scrolled .header-inner{box-shadow:var(--shadow-soft)}
@media(min-width:640px){.header-inner{padding:.75rem 1.75rem}}
.brand{display:flex;align-items:center;gap:.5rem}
.brand-mark{width:2.25rem;height:2.25rem;border-radius:9999px;background:var(--gradient-primary);color:hsl(var(--primary-foreground));display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:700;font-size:1.125rem}
.brand-name{font-family:'Fraunces',serif;font-weight:600;font-size:1.125rem;line-height:1.1}
.brand-tag{font-size:10px;letter-spacing:.25em;color:hsl(var(--muted-foreground));margin-top:-2px}
.nav-desktop{display:none;align-items:center;gap:.25rem}
@media(min-width:768px){.nav-desktop{display:flex}}
.nav-item{position:relative}
.nav-link{padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:500;color:hsl(var(--foreground)/0.7);transition:.2s}
.nav-link:hover{color:hsl(var(--foreground));background:hsl(var(--foreground)/0.05)}
.nav-link.active{background:hsl(var(--primary)/0.1);color:hsl(var(--primary))}
.has-submenu::after{content:"";position:absolute;left:0;right:0;top:100%;height:1rem}
.nav-caret{display:inline-grid;place-items:center;margin-left:.25rem;transition:transform .25s var(--transition-smooth)}
.nav-caret svg{width:12px;height:12px}
.has-submenu:hover .nav-caret,.has-submenu:focus-within .nav-caret{transform:rotate(90deg)}
.nav-submenu{
  position:absolute;top:calc(100% + .75rem);left:50%;width:min(34rem,calc(100vw - 2rem));
  transform:translate(-50%,10px) scale(.98);transform-origin:top center;
  opacity:0;visibility:hidden;pointer-events:none;z-index:60;
  padding:.75rem;border-radius:1.25rem;background:hsl(var(--background)/.92);
  border:1px solid hsl(var(--border)/.85);box-shadow:var(--shadow-elegant);backdrop-filter:blur(24px);
  transition:opacity .2s var(--transition-smooth),transform .25s var(--transition-smooth),visibility .2s;
}
.has-submenu:hover .nav-submenu,.has-submenu:focus-within .nav-submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1)}
.submenu-all{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-radius:1rem;background:var(--gradient-luxe);border:1px solid hsl(var(--border));margin-bottom:.75rem}
.submenu-all span{font-size:1.1rem}
.submenu-all small{font-size:.75rem;color:hsl(var(--muted-foreground));text-align:right}
.submenu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.submenu-link{display:grid;grid-template-columns:3rem minmax(0,1fr);align-items:center;gap:.75rem;padding:.55rem;border-radius:.9rem;transition:background .2s,transform .2s}
.submenu-link:hover,.submenu-link:focus{background:hsl(var(--primary)/.08);transform:translateY(-1px);outline:none}
.submenu-link img{width:3rem;height:3rem;border-radius:.75rem;object-fit:cover;background:hsl(var(--secondary));box-shadow:var(--shadow-soft)}
.submenu-link strong{display:block;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.submenu-link small{display:block;font-size:.72rem;color:hsl(var(--muted-foreground));margin-top:.1rem}
.icon-btn{width:2.5rem;height:2.5rem;border-radius:9999px;display:grid;place-items:center;transition:.2s;position:relative}
.icon-btn:hover{background:hsl(var(--foreground)/0.05)}
.cart-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:9999px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:10px;font-weight:600;display:none;place-items:center}
.cart-badge.show{display:grid}
.cart-badge.pop{animation:badge-pop .4s ease-out}
.menu-btn{display:grid}
@media(min-width:768px){.menu-btn{display:none}}
.search-btn{display:none}
@media(min-width:640px){.search-btn{display:grid}}
.nav-mobile{display:none;margin-top:.5rem;padding:.5rem;border-radius:1.5rem;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}
.nav-mobile.open{display:block;animation:fade-up .5s var(--transition-smooth) both}
.nav-mobile a{display:block;padding:.75rem 1rem;border-radius:1rem;font-size:.875rem;font-weight:500;color:hsl(var(--foreground)/0.8)}
.nav-mobile a.active{background:hsl(var(--primary)/0.1);color:hsl(var(--primary))}
.mobile-category-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.25rem .5rem .75rem}
.nav-mobile .mobile-cat-link{padding:.55rem .75rem;background:hsl(var(--foreground)/.04);font-size:.8rem;color:hsl(var(--muted-foreground))}
.nav-mobile .mobile-cat-link:hover{background:hsl(var(--primary)/.08);color:hsl(var(--primary))}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.75rem;border-radius:9999px;font-weight:500;transition:.2s}
.btn-primary{background:hsl(var(--foreground));color:hsl(var(--background))}
.btn-primary:hover{background:hsl(var(--primary))}
.btn-ghost{border:1px solid hsl(var(--foreground)/0.2);backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:hsl(var(--foreground)/0.6)}
.btn-solid-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:var(--shadow-elegant)}
.btn-solid-primary:hover{background:hsl(var(--foreground))}
.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem 1rem;border-radius:9999px;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}

/* Hero */
.hero{position:relative;padding:8rem 0 5rem}
@media(min-width:1024px){.hero{padding:10rem 0 7rem}}
.hero-grid{display:grid;gap:3rem;align-items:center}
@media(min-width:1024px){.hero-grid{grid-template-columns:1fr 1fr}}
.hero h1{font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.05;margin-top:1.5rem}
.hero p.lead{margin-top:1.5rem;font-size:1.125rem;color:hsl(var(--muted-foreground));max-width:36rem;line-height:1.6}
.hero-cta{margin-top:2rem;display:flex;flex-wrap:wrap;gap:.75rem}
.stats{margin-top:3rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
@media(min-width:640px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stat-num{font-family:'Fraunces',serif;font-size:1.5rem;color:hsl(var(--primary))}
.stat-label{font-size:.75rem;color:hsl(var(--muted-foreground));margin-top:.25rem}
.hero-image-wrap{position:relative}
.hero-image-wrap::before{content:"";position:absolute;inset:-1.5rem;background:var(--gradient-primary);opacity:.2;filter:blur(48px);border-radius:9999px}
.hero-image{position:relative;border-radius:2rem;overflow:hidden;box-shadow:var(--shadow-elegant);aspect-ratio:4/5}
.hero-image img{width:100%;height:100%;object-fit:cover}
.hero-image .overlay{position:absolute;inset:0;background:var(--gradient-overlay)}
.hero-image .featured{position:absolute;left:1.5rem;right:1.5rem;bottom:1.5rem;padding:1rem;border-radius:1rem;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}

/* Sections */
.section{padding:5rem 0}
.section{content-visibility:auto;contain-intrinsic-size:1px 720px}
.section-tight{padding:4rem 0}
.section-dark{background:hsl(var(--foreground));color:hsl(var(--background))}
.section-eyebrow{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:hsl(var(--primary))}
.section-title{font-family:'Fraunces',serif;font-size:clamp(2rem,4vw,3rem);margin-top:.5rem}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem}
.text-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;font-weight:600;color:hsl(var(--primary))}
.text-link svg{width:14px;height:14px}
.split-head{display:grid;gap:1.5rem;align-items:end;margin-bottom:2.5rem}
.split-head>p{max-width:34rem;line-height:1.7}
@media(min-width:900px){.split-head{grid-template-columns:1.2fr .8fr}}

/* Trust and service sections */
.trust-strip{position:relative;z-index:2;margin-top:-2.5rem;padding:0 0 2rem}
.trust-grid{display:grid;gap:.75rem;grid-template-columns:1fr}
@media(min-width:640px){.trust-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.trust-grid{grid-template-columns:repeat(4,1fr)}}
.trust-item{display:flex;align-items:center;gap:.85rem;padding:1rem;border-radius:1rem;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow-soft)}
.trust-item>span{width:2.75rem;height:2.75rem;border-radius:.9rem;background:hsl(var(--primary)/.09);color:hsl(var(--primary));display:grid;place-items:center;flex-shrink:0}
.trust-item strong{display:block;font-size:.9rem}
.trust-item small{display:block;color:hsl(var(--muted-foreground));font-size:.78rem;margin-top:.15rem}
.service-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:768px){.service-grid{grid-template-columns:repeat(3,1fr)}}
.service-card{padding:1.5rem;border-radius:1.25rem;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow-soft);transition:.25s}
.service-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-elegant)}
.service-icon{width:3rem;height:3rem;border-radius:1rem;background:hsl(var(--primary)/.1);color:hsl(var(--primary));display:grid;place-items:center;margin-bottom:1rem}
.service-card h3{font-size:1.25rem}
.service-card p{font-size:.9rem;color:hsl(var(--muted-foreground));line-height:1.65;margin-top:.5rem}
.process-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:768px){.process-grid{grid-template-columns:repeat(4,1fr)}}
.process-item{padding:1.5rem;border-radius:1.25rem;border:1px solid hsl(var(--background)/.12);background:hsl(var(--background)/.04)}
.process-step{font-family:'Fraunces',serif;font-size:2rem;color:hsl(var(--primary-glow));margin-bottom:1rem}
.process-item h3{font-size:1.2rem}
.process-item p{font-size:.875rem;opacity:.72;line-height:1.65;margin-top:.55rem}
.proof-layout{display:grid;gap:3rem;align-items:start}
@media(min-width:900px){.proof-layout{grid-template-columns:1fr 1fr}}
.testimonial-list,.faq-list{display:grid;gap:.9rem;margin-top:1.75rem}
.testimonial-card{margin:0;padding:1.25rem;border-radius:1.25rem;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow-soft)}
.testimonial-card blockquote{margin:0;color:hsl(var(--muted-foreground));line-height:1.65}
.testimonial-card figcaption{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;font-size:.875rem}
.testimonial-card figcaption span{color:hsl(var(--muted-foreground))}
.faq-item{border-radius:1rem;background:hsl(var(--card));border:1px solid hsl(var(--border));padding:1rem 1.15rem;box-shadow:var(--shadow-soft)}
.faq-item summary{cursor:pointer;font-weight:700;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";float:right;color:hsl(var(--primary));font-weight:700}
.faq-item[open] summary::after{content:"-"}
.faq-item p{color:hsl(var(--muted-foreground));line-height:1.6;margin-top:.75rem;font-size:.9rem}

/* Categories */
.cat-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:640px){.cat-grid{gap:1.5rem}}
@media(min-width:768px){.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1024px){.cat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.cat-card{position:relative;aspect-ratio:1/1;border-radius:1.5rem;overflow:hidden;box-shadow:var(--shadow-soft);transition:.3s;cursor:pointer}
.cat-card:hover{box-shadow:var(--shadow-elegant)}
.cat-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.cat-card:hover img{transform:scale(1.1)}
.cat-card .overlay{position:absolute;inset:0;background:linear-gradient(to top,hsl(var(--foreground)/.8),hsl(var(--foreground)/.1) 50%,transparent)}
.cat-card .label{position:absolute;left:1rem;right:1rem;bottom:1rem;font-family:'Fraunces',serif;font-size:1.125rem;color:hsl(var(--background))}
.cat-card .more{font-size:.75rem;color:hsl(var(--background)/.7);margin-top:.25rem;opacity:0;transition:opacity .2s}
.cat-card:hover .more{opacity:1}
.cat-all{border-radius:1.5rem;border:1px dashed hsl(var(--foreground)/0.2);display:grid;place-items:center;text-align:center;padding:1.5rem;transition:.2s;cursor:pointer}
.cat-all:hover{border-color:hsl(var(--primary));background:hsl(var(--card))}

/* Products grid */
.product-grid{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media(min-width:640px){.product-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.product-grid{grid-template-columns:repeat(4,1fr)}}
.product-grid.cols-3{grid-template-columns:1fr}
@media(min-width:640px){.product-grid.cols-3{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.product-grid.cols-3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1280px){.product-grid.cols-3{grid-template-columns:repeat(4,1fr)}}

.product-card{position:relative;display:block;border-radius:1.5rem;overflow:hidden;background:hsl(var(--card));box-shadow:var(--shadow-soft);transition:.5s;color:inherit}
.product-card:hover{box-shadow:var(--shadow-elegant)}
.product-image{position:relative;aspect-ratio:4/5;overflow:hidden;background:hsl(var(--secondary))}
.product-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.product-card:hover .product-image img{transform:scale(1.05)}
.product-image .pcat{position:absolute;top:.75rem;left:.75rem;font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:.25rem .75rem;border-radius:9999px;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}
.product-image .add{position:absolute;bottom:.75rem;right:.75rem;width:2.75rem;height:2.75rem;border-radius:9999px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:grid;place-items:center;box-shadow:var(--shadow-elegant);transition:transform .2s;overflow:visible}
.product-image .add:hover{transform:scale(1.1)}
.product-image .add .float{position:absolute;inset:0;display:grid;place-items:center;color:hsl(var(--primary-foreground));pointer-events:none;animation:float-in .9s ease-out forwards}
.product-body{padding:1.25rem}
.product-name{font-family:'Fraunces',serif;font-size:1.125rem;line-height:1.3}
.product-desc{font-size:.875rem;color:hsl(var(--muted-foreground));margin-top:.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-row{margin-top:.75rem;display:flex;align-items:center;justify-content:space-between}
.product-price{font-family:'Fraunces',serif;font-size:1.25rem}
.product-view{font-size:.75rem;color:hsl(var(--primary));font-weight:500;transition:transform .2s}
.product-card:hover .product-view{transform:translateX(4px)}

/* Features dark */
.feat-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:640px){.feat-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.feat-grid{grid-template-columns:repeat(4,1fr)}}
.feat-card{border-radius:1.5rem;border:1px solid hsl(var(--background)/0.1);padding:1.5rem;transition:.2s}
.feat-card:hover{background:hsl(var(--background)/0.05)}
.feat-icon{width:3rem;height:3rem;border-radius:1rem;background:hsl(var(--primary)/0.2);display:grid;place-items:center;color:hsl(var(--primary-glow));margin-bottom:1rem}

/* CTA */
.cta-card{position:relative;border-radius:2.5rem;overflow:hidden;background:var(--gradient-primary);color:hsl(var(--primary-foreground));padding:2.5rem}
@media(min-width:640px){.cta-card{padding:4rem}}
.cta-card::before{content:"";position:absolute;inset:0;opacity:.2;background:radial-gradient(circle at 30% 20%,white 0,transparent 40%)}
.cta-card>*{position:relative}
.cta-btn{margin-top:1.5rem;display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.75rem;border-radius:9999px;background:hsl(var(--background));color:hsl(var(--foreground));font-weight:500}

/* Footer */
.site-footer{margin-top:6rem;background:hsl(var(--foreground));color:hsl(var(--background))}
.footer-grid{display:grid;gap:3rem;padding:4rem 0}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(4,1fr)}}
.footer h4{font-family:'Fraunces',serif;margin-bottom:1rem}
.footer-links li{margin:.5rem 0;font-size:.875rem;opacity:.8}
.footer-links a:hover{opacity:1}
.footer-meta{font-size:.875rem;opacity:.7;line-height:1.6}
.footer-contact li{display:flex;gap:.75rem;font-size:.875rem;opacity:.8;margin:.75rem 0}
.footer-contact .ico{width:1rem;height:1rem;color:hsl(var(--primary-glow));margin-top:2px;flex-shrink:0}
.footer-bottom{border-top:1px solid hsl(var(--background)/0.1);padding:1.25rem 0;font-size:.75rem;opacity:.6;display:flex;flex-direction:column;gap:.5rem;justify-content:space-between}
@media(min-width:640px){.footer-bottom{flex-direction:row}}
.social-row{display:flex;gap:.5rem;margin-top:1.25rem}
.social-row a{width:2.25rem;height:2.25rem;border-radius:9999px;border:1px solid hsl(var(--background)/0.2);display:grid;place-items:center}
.social-row a:hover{background:hsl(var(--background)/0.1)}

/* Products page filters */
.search-bar{margin-top:2.5rem;padding:.5rem;border-radius:9999px;display:flex;align-items:center;gap:.5rem;max-width:42rem;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}
.search-bar input{flex:1;background:transparent;border:none;outline:none;padding:.5rem;font-size:.875rem}
.search-bar input::placeholder{color:hsl(var(--muted-foreground))}
.chip-row{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem}
.chip-row::-webkit-scrollbar{display:none}
.filter-chip{flex-shrink:0;padding:.625rem 1.25rem;border-radius:9999px;font-size:.875rem;font-weight:500;border:1px solid transparent;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6)}
.filter-chip:hover{background:hsl(var(--foreground)/0.05)}
.filter-chip.active{background:hsl(var(--foreground));color:hsl(var(--background));border-color:hsl(var(--foreground))}
.cat-visual-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:640px){.cat-visual-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.cat-visual-grid{grid-template-columns:repeat(6,1fr)}}
.cat-visual{position:relative;aspect-ratio:1/1;border-radius:1.5rem;overflow:hidden;box-shadow:var(--shadow-soft)}
.cat-visual.active{box-shadow:0 0 0 3px hsl(var(--primary)), var(--shadow-elegant)}
.cat-visual img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.cat-visual:hover img{transform:scale(1.1)}
.cat-visual .overlay{position:absolute;inset:0;background:var(--gradient-overlay)}
.cat-visual .label{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;color:hsl(var(--background));font-family:'Fraunces',serif;font-size:.875rem}
@media(min-width:640px){.cat-visual .label{font-size:1rem}}

/* Product detail */
.pd-grid{display:grid;gap:2.5rem}
@media(min-width:1024px){.pd-grid{grid-template-columns:1fr 1fr;gap:4rem}}
.pd-image{position:relative;border-radius:2rem;overflow:hidden;background:hsl(var(--secondary));aspect-ratio:1/1;box-shadow:var(--shadow-elegant)}
.pd-image img{width:100%;height:100%;object-fit:cover}
.pd-image .pcat{position:absolute;top:1.25rem;left:1.25rem;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;padding:.375rem .75rem;border-radius:9999px;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}
.pd-rating{margin-top:1rem;display:flex;align-items:center;gap:.75rem}
.pd-stars{color:hsl(var(--accent));display:flex;gap:2px}
.pd-price-row{margin-top:1.5rem;display:flex;align-items:baseline;gap:.75rem}
.pd-price{font-family:'Fraunces',serif;font-size:2.25rem}
.pd-old{color:hsl(var(--muted-foreground));text-decoration:line-through;font-size:.875rem}
.pd-save{font-size:.75rem;padding:.125rem .5rem;border-radius:9999px;background:hsl(var(--primary)/0.1);color:hsl(var(--primary));font-weight:500}
.size-row{display:flex;flex-wrap:wrap;gap:.5rem}
.size-btn{padding:.625rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:500;border:1px solid hsl(var(--border));backdrop-filter:blur(8px);transition:.2s}
.size-btn:hover{border-color:hsl(var(--foreground)/0.5)}
.size-btn.active{background:hsl(var(--foreground));color:hsl(var(--background));border-color:hsl(var(--foreground))}
.qty-box{display:inline-flex;align-items:center;border:1px solid hsl(var(--border));border-radius:9999px}
.qty-box button{width:2.5rem;height:2.5rem;display:grid;place-items:center}
.qty-box button:hover{background:hsl(var(--muted))}
.qty-box button:disabled{opacity:.35;cursor:not-allowed}
.qty-box button:disabled:hover{background:transparent}
.qty-box button:first-child{border-radius:9999px 0 0 9999px}
.qty-box button:last-child{border-radius:0 9999px 9999px 0}
.qty-box span{width:2.5rem;text-align:center;font-weight:500}
.cta-row{margin-top:2rem;display:grid;gap:.75rem}
@media(min-width:640px){.cta-row{grid-template-columns:1fr 1fr}}
.btn-block{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;border-radius:9999px;font-weight:500;transition:.2s}
.btn-add{margin-top:.75rem;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:9999px;background:hsl(var(--secondary));font-size:.875rem;font-weight:500}
.btn-add:hover{background:hsl(var(--muted))}
.trust-row{margin-top:2rem;display:grid;grid-template-columns:1fr 1fr;gap:.75rem;font-size:.875rem;color:hsl(var(--muted-foreground))}
.about-grid{margin-top:5rem;display:grid;gap:2rem}
@media(min-width:1024px){.about-grid{grid-template-columns:2fr 1fr}}
.about-card{border-radius:1.5rem;background:hsl(var(--card));padding:2rem;box-shadow:var(--shadow-soft)}
.about-side{border-radius:1.5rem;background:var(--gradient-luxe);padding:2rem}
.feature-li{display:flex;align-items:flex-start;gap:.75rem;font-size:.875rem;margin:.75rem 0}
.feature-li .check{width:1.25rem;height:1.25rem;margin-top:2px;border-radius:9999px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));display:grid;place-items:center;flex-shrink:0}

/* About page */
.values-grid{margin-top:3rem;display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:640px){.values-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.values-grid{grid-template-columns:repeat(4,1fr)}}
.value-card{padding:1.5rem;border-radius:1.5rem;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6);transition:.2s}
.value-card:hover{box-shadow:var(--shadow-soft)}
.value-icon{width:3rem;height:3rem;border-radius:1rem;background:hsl(var(--primary)/0.1);color:hsl(var(--primary));display:grid;place-items:center}
.timeline-grid{display:grid;gap:3rem}
@media(min-width:1024px){.timeline-grid{grid-template-columns:1fr 2fr}}
.tl-item{padding:1.5rem;border-radius:1.5rem;display:flex;gap:1.5rem;align-items:flex-start;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6);margin-bottom:1rem}
.tl-year{font-family:'Fraunces',serif;font-size:1.875rem;color:hsl(var(--primary));width:5rem;flex-shrink:0}

/* Contact */
.channels{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:640px){.channels{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.channels{grid-template-columns:repeat(4,1fr)}}
.channel{padding:1.5rem;border-radius:1.5rem;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6);transition:.2s;display:block}
.channel:hover{box-shadow:var(--shadow-soft);transform:translateY(-2px)}
.channel-ico{width:2.75rem;height:2.75rem;border-radius:1rem;background:hsl(var(--primary)/0.1);color:hsl(var(--primary));display:grid;place-items:center}
.contact-grid{display:grid;gap:1.5rem}
@media(min-width:1024px){.contact-grid{grid-template-columns:3fr 2fr}}
.form-card{padding:2rem;border-radius:2rem;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6);display:flex;flex-direction:column;gap:1.25rem}
@media(min-width:1024px){.form-card{padding:2.5rem}}
.field label{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:hsl(var(--muted-foreground))}
.field input,.field select,.field textarea{width:100%;background:transparent;outline:none;padding:.75rem 1rem;border-radius:1rem;border:1px solid hsl(var(--border));margin-top:.5rem;transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:hsl(var(--primary))}
.fields-2{display:grid;gap:1rem}
@media(min-width:640px){.fields-2{grid-template-columns:1fr 1fr}}
.aside-card{padding:2rem;border-radius:2rem;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}

/* Toast */
.toast-host{position:fixed;bottom:1rem;right:1rem;z-index:200;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}
.toast{pointer-events:auto;min-width:260px;max-width:360px;padding:1rem 1.25rem;border-radius:1rem;background:hsl(var(--card));box-shadow:var(--shadow-elegant);border:1px solid hsl(var(--border));animation:fade-up .4s var(--transition-smooth)}
.toast .t{font-weight:600;font-size:.875rem}
.toast .d{font-size:.8rem;color:hsl(var(--muted-foreground));margin-top:.25rem}
@media(max-width:640px){
  .toast-host{left:1rem;right:1rem;bottom:1rem}
  .toast{width:100%;max-width:none;min-width:0}
}

/* Popup */
.popup-root{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:1rem}
.popup-root.open{display:grid;animation:fade-up .5s var(--transition-smooth)}
.popup-back{position:absolute;inset:0;background:hsl(var(--foreground)/.6);backdrop-filter:blur(4px)}
.popup-card{position:relative;width:100%;max-width:56rem;border-radius:2rem;overflow:hidden;background:hsl(var(--card));box-shadow:var(--shadow-elegant);display:grid;grid-template-columns:1fr}
@media(min-width:768px){.popup-card{grid-template-columns:1fr 1fr}}
.popup-close{position:absolute;top:1rem;right:1rem;z-index:10;width:2.5rem;height:2.5rem;border-radius:9999px;display:grid;place-items:center;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}
.popup-img{aspect-ratio:1/1}
@media(min-width:768px){.popup-img{aspect-ratio:auto;min-height:480px}}
.popup-img img{width:100%;height:100%;object-fit:cover}
.popup-body{padding:2rem;display:flex;flex-direction:column;justify-content:center}
@media(min-width:640px){.popup-body{padding:2.5rem}}

/* Cart drawer */
.cart-root{position:fixed;inset:0;z-index:90;display:none}
.cart-root.open{display:block}
.cart-back{position:absolute;inset:0;background:hsl(var(--foreground)/.5);backdrop-filter:blur(4px)}
.cart-panel{position:absolute;top:0;right:0;bottom:0;width:100%;max-width:420px;background:hsl(var(--card));box-shadow:var(--shadow-elegant);display:flex;flex-direction:column;animation:slide-in .35s var(--transition-smooth)}
.cart-head{padding:1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid hsl(var(--border))}
.cart-items{flex:1;overflow-y:auto;padding:1rem 1.5rem}
.cart-empty{text-align:center;padding:3rem 1rem;color:hsl(var(--muted-foreground))}
.cart-item{display:flex;gap:.75rem;padding:.75rem 0;border-bottom:1px solid hsl(var(--border))}
.cart-item img{width:64px;height:64px;border-radius:.75rem;object-fit:cover}
.cart-item .meta{flex:1;font-size:.875rem}
.cart-item .meta .n{font-weight:500}
.cart-item .meta .s{color:hsl(var(--muted-foreground));font-size:.75rem;margin-top:2px}
.cart-item .rm{color:hsl(var(--muted-foreground));font-size:.75rem;margin-top:.25rem}
.cart-item .rm:hover{color:hsl(var(--primary))}
.cart-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.cart-item-bottom{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.75rem}
.drawer-qty{display:inline-flex;align-items:center;border:1px solid hsl(var(--border));border-radius:9999px;overflow:hidden;background:hsl(var(--background)/.55)}
.drawer-qty button{width:2rem;height:2rem;display:grid;place-items:center;color:hsl(var(--muted-foreground));transition:.2s}
.drawer-qty button:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}
.drawer-qty button:disabled{opacity:.35;cursor:not-allowed}
.drawer-qty button:disabled:hover{background:transparent;color:hsl(var(--muted-foreground))}
.drawer-qty span{min-width:2rem;text-align:center;font-weight:600;font-size:.82rem}
.cart-remove-btn{width:2rem;height:2rem;border-radius:9999px;display:grid;place-items:center;flex-shrink:0;color:hsl(var(--muted-foreground));background:hsl(var(--background)/.4);border:1px solid hsl(var(--border)/.7);transition:.2s}
.cart-remove-btn:hover{color:hsl(var(--primary));background:hsl(var(--primary)/.08);border-color:hsl(var(--primary)/.25)}
.cart-remove-btn svg{width:14px;height:14px}
.cart-foot{padding:1.5rem;border-top:1px solid hsl(var(--border));display:flex;flex-direction:column;gap:.75rem}
.cart-total{display:flex;justify-content:space-between;font-family:'Fraunces',serif;font-size:1.25rem}

/* Cart page */
.cart-page-section{padding:0 0 6rem}
.cart-page-grid{display:grid;gap:1.5rem;align-items:start}
@media(min-width:1024px){.cart-page-grid{grid-template-columns:minmax(0,1fr) 360px}}
.cart-page-list{display:grid;gap:1rem}
.cart-page-item{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem;padding:1rem;border-radius:1.25rem;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow-soft)}
@media(min-width:640px){.cart-page-item{grid-template-columns:128px minmax(0,1fr);padding:1.25rem}}
.cart-page-image{display:block;aspect-ratio:1/1;border-radius:1rem;overflow:hidden;background:hsl(var(--secondary))}
.cart-page-image img{width:100%;height:100%;object-fit:cover}
.cart-page-meta{min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:1rem}
.cart-page-top{display:grid;gap:.75rem}
@media(min-width:640px){.cart-page-top{grid-template-columns:minmax(0,1fr) auto;align-items:start}}
.cart-page-name{font-size:1.2rem;line-height:1.25}
.cart-page-sub{font-size:.85rem;color:hsl(var(--muted-foreground));margin-top:.25rem}
.cart-page-price{font-family:'Fraunces',serif;font-size:1.25rem;white-space:nowrap;color:hsl(var(--primary))}
.cart-page-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.mini-remove{font-size:.85rem;font-weight:600;color:hsl(var(--primary));padding:.5rem .75rem;border-radius:9999px;background:hsl(var(--primary)/.08)}
.mini-remove:hover{background:hsl(var(--primary)/.14)}
.cart-summary-card{position:sticky;top:7rem;display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border-radius:1.25rem;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow-soft)}
.summary-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid hsl(var(--border));font-size:.9rem}
.summary-row.total{font-family:'Fraunces',serif;font-size:1.35rem;border-bottom:0;color:hsl(var(--foreground))}
.cart-empty-page{min-height:320px;display:grid;place-items:center}
.cart-summary-card .btn:disabled{opacity:.45;cursor:not-allowed}

/* Animations */
@keyframes fade-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes float-in{0%{opacity:0;transform:scale(.5) translateY(0)}50%{opacity:1;transform:scale(1.1) translateY(-30px)}100%{opacity:0;transform:scale(.8) translateY(-80px)}}
@keyframes badge-pop{0%{transform:scale(1)}50%{transform:scale(1.4)}100%{transform:scale(1)}}
@keyframes slide-in{from{transform:translateX(100%)}to{transform:translateX(0)}}
.animate-fade-up{animation:fade-up .7s var(--transition-smooth) both}

.iframe-map{width:100%;border:0;aspect-ratio:4/3;border-radius:2rem;overflow:hidden;box-shadow:var(--shadow-soft)}

.empty-state{padding:4rem 1rem;text-align:center;border-radius:1.5rem;backdrop-filter:blur(24px);background:hsl(var(--background)/0.6);border:1px solid hsl(var(--border)/0.6)}
