/* Sladkarnici Roza — theme component styles, ported 1:1 from the approved static prototype */

.section-tight{ padding:40px 0; }

.panel-rose, .panel-vanilla, .panel-ganache{ border-radius:var(--radius-lg); padding:32px; }
.panel-rose h1, .panel-rose h2, .panel-rose h3, .panel-rose h4,
.panel-ganache h1, .panel-ganache h2, .panel-ganache h3, .panel-ganache h4{ color:var(--vanilla-deep); }
.panel-rose p, .panel-rose li, .panel-rose span,
.panel-ganache p, .panel-ganache li, .panel-ganache span{ color:var(--vanilla-deep); }
.panel-rose{ background:var(--rose-dust-700); border:1px solid var(--gold-500); }
.panel-rose strong, .panel-rose .panel-highlight{ color:var(--gold-300); }
.panel-rose a:not(.btn){ color:var(--gold-300); }
.panel-vanilla{ background:var(--vanilla); border:var(--border-rose); color:var(--ganache-700); }
.panel-vanilla h1, .panel-vanilla h2, .panel-vanilla h3, .panel-vanilla h4{ color:var(--rose-900); }
.panel-vanilla p, .panel-vanilla li{ color:var(--ganache-700); }
.panel-vanilla strong, .panel-vanilla .panel-highlight{ color:var(--rose-dust-700); }
.panel-ganache{ background:var(--ganache-700); border:1px solid var(--gold-500); }
.panel-ganache strong, .panel-ganache .panel-highlight{ color:var(--gold-300); }
.panel-ganache a:not(.btn){ color:var(--gold-300); }

/* ---------- Topbar ---------- */
.topbar{ background:var(--rose-950); color:rgba(255,255,255,.72); font-size:.72rem; letter-spacing:.02em; overflow:hidden; }
.topbar-row{ display:flex; justify-content:space-between; align-items:center; padding-top:6px; padding-bottom:6px; gap:16px; }
.topbar a{ color:rgba(255,255,255,.72); }
.topbar a:hover{ color:var(--gold-300); }
.topbar-left{ display:flex; align-items:center; gap:14px; }
.topbar-left a, .topbar-left span{ display:inline-flex; align-items:center; gap:6px; }
.topbar-left svg, .topbar-right svg{ width:12px; height:12px; color:var(--gold-500); }
.topbar-sep{ width:1px; height:11px; background:rgba(255,255,255,.2); }
.topbar-right{ display:flex; align-items:center; gap:18px; justify-content:flex-end; }
.topbar-social{ display:flex; gap:10px; }
.topbar-social svg{ width:13px; height:13px; color:var(--gold-500); }
@media (max-width:640px){ .topbar-left span:not(:first-child), .topbar-sep{ display:none; } }

/* ---------- Header ---------- */
#site-header{ position:sticky; top:0; z-index:200; }
.site-header-bar{ background:var(--vanilla); border-bottom:1px solid rgba(150,57,79,.1); }
.header-row-v2{ display:flex; align-items:center; gap:28px; padding-top:14px; padding-bottom:14px; transition:padding .2s ease; position:relative; }
#site-header.scrolled .header-row-v2{ padding-top:9px; padding-bottom:9px; box-shadow:var(--shadow-sm); }
.logo-v2{ display:flex; flex-direction:column; align-items:center; gap:2px; flex:none; }
.logo-v2-img{ height:56px; width:auto; object-fit:contain; flex:none; transition:height .2s ease; }
#site-header.scrolled .logo-v2-img{ height:44px; }
.logo-v2-tag{ font-family:var(--font-serif); font-style:italic; font-size:.7rem; color:var(--gold-500); white-space:nowrap; }
#site-header.scrolled .logo-v2-tag{ display:none; }

.main-nav{ display:flex; align-items:center; flex:1; }
.main-nav > ul{ display:flex; gap:22px; width:100%; justify-content:center; }
.main-nav a{ font-size:.85rem; font-weight:400; letter-spacing:.01em; color:var(--ink-700); position:relative; padding:8px 0; display:inline-block; white-space:nowrap; }
.main-nav a::after{ content:""; position:absolute; left:0; right:0; bottom:2px; height:1px; background:var(--gold-500); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.main-nav a:hover{ color:var(--rose-700); }
.main-nav a:hover::after, .main-nav .active > a::after{ transform:scaleX(1); }
.main-nav .active > a{ color:var(--rose-700); font-weight:500; }
.main-nav li.has-drop{ position:relative; }

.mega{
  position:absolute; top:100%; left:0; right:auto; transform:translateY(8px); overflow:hidden;
  background:var(--vanilla); box-shadow:var(--shadow-lg); border-radius:var(--radius-card); border:var(--border-rose);
  opacity:0; visibility:hidden; transition:var(--transition-ui); z-index:50;
}
.main-nav li.has-drop:hover .mega, .main-nav li.has-drop:focus-within .mega{ opacity:1; visibility:visible; transform:translateY(0); }
.mega-narrow{ width:240px; padding:18px; }
.mega h4{ font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-500); margin-bottom:10px; font-family:var(--font-sans); font-weight:700; }
.mega ul li{ margin-bottom:5px; }
.mega ul a{ display:block; font-weight:400; font-size:.85rem; color:var(--ink-700); padding:6px 8px; border-radius:var(--radius-sm); }
.mega ul a:hover{ color:var(--rose-700); background:var(--vanilla-deep); }
.mega-narrow-cta{ display:inline-flex; margin-top:10px; padding-top:12px; border-top:var(--border-rose-soft); width:100%; font-size:.8rem; }
.mega-narrow-blurb{ font-size:.78rem; color:var(--ink-500); margin-bottom:12px; padding-bottom:12px; border-bottom:var(--border-rose-soft); }

.mega-wide .mega{ width:660px; }
.mega-v2-body{ display:flex; min-height:290px; }
.mega-v2-left{ width:210px; flex:none; padding:14px 0; border-right:var(--border-rose-soft); display:flex; flex-direction:column; }
.mega-fam{ display:flex; align-items:center; gap:11px; padding:10px 20px; background:none; border:none; text-align:left; font-size:.84rem; color:var(--ink-700); border-left:2px solid transparent; transition:var(--transition-ui); cursor:pointer; width:100%; }
.mega-fam svg{ width:17px; height:17px; color:var(--rose-dust-700); flex:none; transition:var(--transition-ui); }
.mega-fam.active, .mega-fam:hover{ background:var(--vanilla-deep); color:var(--rose-700); border-left-color:var(--rose-700); }
.mega-fam.active svg, .mega-fam:hover svg{ color:var(--rose-700); }
.mega-v2-right{ flex:1; padding:22px 26px; }
.mega-panel{ display:none; }
.mega-panel.active{ display:block; animation:megaFade .18s ease; }
@keyframes megaFade{ from{ opacity:0; transform:translateY(4px);} to{ opacity:1; transform:translateY(0);} }
.mega-panel h4{ color:var(--fam-accent, var(--rose-700)); margin-bottom:6px; }
.mega-panel-blurb{ font-size:.8rem; color:var(--ink-500); margin-bottom:16px; max-width:360px; }
.mega-panel ul{ display:grid; grid-template-columns:1fr 1fr; gap:2px 20px; }
.mega-panel-cta{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin-top:16px; padding-top:14px; border-top:var(--border-rose-soft); }
.mega-panel-cta .link-arrow{ font-size:.8rem; }
.mega-v2-footer{ border-top:var(--border-rose-soft); padding:12px 26px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.mega-v2-footer .link-arrow{ font-size:.8rem; }
.mega-v2-footer svg{ width:15px; height:15px; }

.mega-more .mega{ width:460px; left:50%; right:auto; transform:translate(-50%, 8px); }
.main-nav li.has-drop.mega-more:hover .mega, .main-nav li.has-drop.mega-more:focus-within .mega{ transform:translate(-50%, 0); }
.mega-more-body{ display:flex; }
.mega-more-list{ flex:1; min-width:0; display:grid; grid-template-columns:1fr 1fr; gap:2px 22px; padding:16px; align-content:start; }
.main-nav .mega-more-item{ display:flex; align-items:flex-start; gap:11px; padding:12px; border-radius:var(--radius-sm); border-left:2px solid transparent; transition:var(--transition-ui); min-width:0; white-space:normal; }
.mega-more-item:hover{ background:var(--vanilla-deep); border-left-color:var(--gold-500); }
.mega-more-ic{ flex:none; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--vanilla-deep); color:var(--rose-dust-700); }
.mega-more-item:hover .mega-more-ic{ background:var(--vanilla); color:var(--rose-700); }
.mega-more-ic svg{ width:15px; height:15px; }
.mega-more-txt{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.mega-more-txt strong{ font-family:var(--font-serif); font-size:.92rem; font-weight:600; color:var(--rose-900); }
.mega-more-txt small{ font-family:var(--font-sans); font-size:.74rem; color:var(--ink-500); line-height:1.4; }
@media (max-width:1080px){ .mega-more .mega{ width:400px; } }

.mega-locations-panel{ width:270px; box-shadow:var(--shadow-md); }
.mega-locations{ padding:20px 22px; }
.loc-group{ margin-bottom:18px; }
.loc-group:last-of-type{ margin-bottom:0; }
.loc-group-label{ display:block; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--rose-700); margin-bottom:8px; }
.loc-group ul{ display:flex; flex-direction:column; }
.loc-group li{ margin:0; }
.main-nav .loc-group a{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 4px; color:var(--ganache-700); font-size:.87rem; border-radius:var(--radius-sm); transition:var(--transition-ui); white-space:normal; }
.loc-arrow{ opacity:0; color:var(--gold-500); font-size:.8rem; transition:var(--transition-ui); flex:none; }
.main-nav .loc-group a:hover{ color:var(--rose-700); }
.main-nav .loc-group a:hover .loc-arrow{ opacity:1; }
.loc-divider{ height:1px; background:var(--border-color-default); margin:4px 22px 12px; }
.loc-actions{ display:flex; flex-direction:column; padding:0 22px 18px; }
.main-nav .loc-action{ display:block; font-size:.82rem; font-weight:600; color:var(--ganache-700); padding:6px 0; transition:var(--transition-ui); white-space:normal; }
.main-nav .loc-action:hover{ color:var(--gold-500); }
@media (max-width:1080px){ .mega-locations-panel{ width:250px; } }

.header-actions-v2{ display:flex; align-items:center; gap:8px; flex:none; }
.header-search{ position:relative; display:flex; align-items:center; }
.search-panel{ position:absolute; top:calc(100% + 12px); right:-6px; width:280px; z-index:60; background:var(--vanilla); border:var(--border-rose); border-radius:var(--radius-card); box-shadow:var(--shadow-lg); padding:16px; opacity:0; visibility:hidden; transform:translateY(6px); transition:var(--transition-ui); }
.header-search.open .search-panel{ opacity:1; visibility:visible; transform:translateY(0); }
.search-panel-label{ display:block; font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-500); font-weight:700; margin-bottom:10px; }
.search-panel form{ display:flex; align-items:center; gap:8px; border:var(--border-width) solid var(--border-color-default); border-radius:var(--radius-control); background:var(--vanilla-deep); transition:var(--transition-ui); padding:4px 4px 4px 14px; }
.search-panel form:focus-within{ border-color:var(--border-color-hover); }
.search-panel input{ flex:1; border:none; background:transparent; padding:8px 0; font-size:.86rem; color:var(--ink-900); min-width:0; }
.search-panel input:focus{ outline:none; }
.search-panel button{ width:34px; height:34px; border-radius:50%; border:none; background:var(--rose-700); color:var(--vanilla); display:flex; align-items:center; justify-content:center; flex:none; }
.search-panel button:hover{ background:var(--rose-800); }
.search-panel button svg{ width:15px; height:15px; }

.header-icon-btn{ width:36px; height:36px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:transparent; border:var(--border-width) solid var(--border-color-default); color:var(--ink-700); flex:none; transition:var(--transition-ui); }
.header-icon-btn svg{ width:17px; height:17px; }
.header-icon-btn:hover{ border-color:var(--border-color-hover); color:var(--gold-500); }
.cart-btn{ position:relative; }
.cart-count{ position:absolute; top:-4px; right:-4px; background:var(--rose-700); color:var(--vanilla); font-size:.6rem; font-weight:700; min-width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center; padding:0 4px; }
.burger{ display:none; width:38px; height:38px; border-radius:50%; border:var(--border-width) solid var(--border-color-default); background:transparent; align-items:center; justify-content:center; z-index:160; flex:none; transition:var(--transition-ui); }
.burger:hover{ border-color:var(--border-color-hover); }
.burger span, .burger span::before, .burger span::after{ content:""; display:block; width:15px; height:1px; background:var(--rose-700); position:relative; transition:var(--transition-ui); }
.burger span::before{ position:absolute; top:-5px; }
.burger span::after{ position:absolute; top:5px; }
.nav-overlay{ display:none; position:fixed; inset:0; background:rgba(30,15,18,.4); z-index:140; }
.nav-overlay.show{ display:block; }

@media (max-width:860px){
  .header-row-v2{ padding-top:10px; padding-bottom:10px; gap:10px; }
  .logo-v2-tag{ display:none; }
  .header-search{ display:none; }
  .main-nav{ position:fixed; inset:0 0 0 30%; background:var(--vanilla); flex-direction:column; align-items:flex-start; padding:90px 24px 24px; transform:translateX(100%); transition:.3s; z-index:150; overflow-y:auto; }
  .main-nav.open{ transform:translateX(0); box-shadow:var(--shadow-lg); }
  .main-nav > ul{ flex-direction:column; gap:4px; width:100%; justify-content:flex-start; }
  .main-nav > ul > li{ width:100%; border-bottom:var(--border-rose-soft); }
  .main-nav a{ display:block; padding:14px 4px; color:var(--ink-700); }
  .main-nav a:hover{ color:var(--rose-700); }
  .mega{ position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; border:none; width:auto !important; padding:0 0 10px 14px; display:none; }
  .main-nav li.has-drop.open .mega{ display:block; }
  .mega-v2-body{ flex-direction:column; min-height:auto; }
  .mega-v2-left{ width:100%; flex-direction:row; flex-wrap:wrap; border-right:none; padding:6px 0; }
  .mega-fam{ padding:8px 10px; border-left:none; border-radius:var(--radius-sm); }
  .mega-v2-right{ padding:10px 0; }
  .mega-panel ul{ grid-template-columns:1fr; }
  .mega-v2-footer{ padding:10px 0; border-top:none; }
  .mega-more .mega{ width:auto !important; }
  .mega-more-list{ grid-template-columns:1fr; padding:6px 0; }
  .burger{ display:flex; }
  .footer-grid-v2{ grid-template-columns:1fr 1fr; }
  .store-grid{ grid-template-columns:1fr !important; }
}
@media (max-width:600px){
  .footer-grid-v2{ grid-template-columns:1fr; }
  .footer-top{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* ---------- Footer ---------- */
.site-footer{ background:var(--rose-950); color:rgba(255,255,255,.75); padding:52px 0 0; border-top:4px solid var(--rose-dust-700); }
.footer-top{ display:flex; align-items:baseline; gap:24px; flex-wrap:wrap; padding-bottom:34px; margin-bottom:34px; border-bottom:1px solid rgba(255,255,255,.1); }
.logo{ display:flex; align-items:center; gap:12px; }
.logo-plate{ display:flex; align-items:center; justify-content:center; flex:none; background:var(--vanilla); border-radius:var(--radius-md); padding:8px 14px; box-shadow:var(--shadow-sm); }
.logo-img{ height:44px; width:auto; object-fit:contain; flex:none; }
.logo-text{ line-height:1.15; display:flex; flex-direction:column; }
.logo-text .slogan{ font-family:var(--font-serif); font-style:italic; font-size:.74rem; white-space:nowrap; color:rgba(255,255,255,.65); }
.footer-tagline{ color:rgba(255,255,255,.55); font-size:.85rem; max-width:440px; margin:0; }
.footer-grid-v2{ display:grid; grid-template-columns:.9fr 1.05fr 1.05fr 1.15fr 1.05fr; gap:28px; padding-bottom:40px; }
.footer-col h4{ color:var(--vanilla); font-size:.76rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:18px; font-family:var(--font-sans); font-weight:700; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.footer-col h4 .accordion-chevron{ display:none; width:14px; height:14px; flex:none; transition:transform .2s ease; }
.footer-col ul{ display:flex; flex-direction:column; gap:10px; }
.footer-col a{ font-size:.85rem; color:rgba(255,255,255,.6); }
.footer-col a:hover{ color:var(--gold-300); }
.footer-contact-list a{ display:inline-flex; align-items:center; gap:8px; }
.footer-contact-list svg{ width:13px; height:13px; flex:none; color:var(--gold-300); }
.social-row{ display:flex; gap:10px; margin-top:18px; }
.social-row a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.06); border:1px solid rgba(194,169,126,.35); color:var(--gold-500); display:flex; align-items:center; justify-content:center; }
.social-row a:hover{ background:var(--gold-500); border-color:var(--gold-500); color:var(--rose-950); }
.social-row svg{ width:15px; height:15px; }
@media (max-width:600px){
  .footer-col{ border-bottom:1px solid rgba(255,255,255,.1); }
  .footer-col h4{ cursor:pointer; padding:14px 0; margin-bottom:0; }
  .footer-col h4 .accordion-chevron{ display:block; }
  .footer-col.open h4 .accordion-chevron{ transform:rotate(180deg); }
  .footer-col ul{ max-height:0; overflow:hidden; gap:0; transition:max-height .25s ease; }
  .footer-col.open ul{ max-height:320px; padding-bottom:16px; }
  .footer-col ul li{ padding:5px 0; }
  .footer-contact-col .social-row{ max-height:0; overflow:hidden; margin-top:0; transition:max-height .25s ease, margin-top .25s ease; }
  .footer-contact-col.open .social-row{ max-height:60px; margin-top:14px; }
}
.credit-bar{ background:var(--vanilla); border-top:1px solid var(--surface-3); }
.credit-bar-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding:14px 24px; font-size:.76rem; color:var(--ganache-700); }
.credit-bar-inner a{ color:var(--ganache-700); font-weight:600; text-decoration:underline; text-decoration-color:transparent; transition:var(--transition-ui); }
.credit-bar-inner a:hover{ color:var(--gold-500); text-decoration-color:var(--gold-500); }
.credit-bar-legal{ display:flex; gap:16px; flex-wrap:wrap; }
.credit-bar-legal a{ font-weight:400; color:var(--ink-500); }
.credit-bar-legal a:hover{ color:var(--rose-700); text-decoration-color:var(--rose-700); }

/* ---------- Hero (homepage) ---------- */
.roza-hero{ position: relative; min-height: 88vh; display: flex; align-items: center; overflow: hidden; background: var(--accent-dark, #3a1c22); }
.roza-hero-slides{ position: absolute; inset: 0; z-index: 0; }
.roza-hero-slides::after{ content: ""; position: absolute; inset: 0; background: rgba(58,28,34,.5); z-index: 1; }
.roza-hero-slide{ position: absolute; inset: 0; background-size: cover; background-position: center center; opacity: 0; transition: opacity 1200ms ease; }
.roza-hero-slide.active{ opacity: 1; }
.roza-hero-inner{ position: relative; z-index: 2; }
.roza-hero-dots{ position: absolute; z-index: 3; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; gap: 9px; }
.roza-hero-dot{ width: 8px; height: 8px; border-radius: 50%; border: 1px solid var(--vanilla); background: rgba(253,250,243,.35); padding: 0; cursor: pointer; transition: var(--transition-ui); }
.roza-hero-dot:hover{ background: rgba(253,250,243,.6); }
.roza-hero-dot.active{ background: var(--gold-500); border-color: var(--gold-500); width: 22px; border-radius: 4px; }
.roza-hero-arrow{ position: absolute; z-index: 3; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(253,250,243,.6); background: rgba(58,28,34,.35); color: var(--vanilla); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: var(--transition-ui); }
.roza-hero-arrow svg{ width: 18px; height: 18px; }
.roza-hero-arrow:hover{ background: rgba(58,28,34,.6); border-color: var(--gold-500); color: var(--gold-500); }
.roza-hero-prev{ left: 20px; }
.roza-hero-next{ right: 20px; }
@media (max-width: 640px){ .roza-hero-arrow{ display: none; } }
.roza-hero-inner{ max-width: 640px; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding-top: 64px; padding-bottom: 64px; }
.roza-hero-eyebrow{ font-family: var(--font-sans); font-weight: 600; font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-300); }
.roza-hero-title{ font-size: 54px; color: var(--vanilla); }
.roza-hero-desc{ font-size: 17px; line-height: 1.6; color: rgba(253,250,243,.86); }
@media (max-width: 1024px){ .roza-hero-inner{ max-width: 78%; } .roza-hero-title{ font-size: 42px; } }
@media (max-width: 640px){ .roza-hero-inner{ max-width: 100%; padding: 40px 24px; } .roza-hero-title{ font-size: 32px; } }

/* ---------- Homepage sections (ported 1:1 from static prototype) ---------- */
.section{ padding:72px 0; }

.features{ background:var(--rose-dust-700); border-top:1px solid var(--gold-500); border-bottom:1px solid var(--gold-500); }
.features .container{ display:flex; justify-content:space-between; padding:34px 24px; gap:20px; flex-wrap:wrap; }
.feature{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; flex:1; min-width:130px; }
.feature svg{ width:20px; height:20px; color:var(--rose-dust-700); padding:11px; background:var(--vanilla); border-radius:50%; box-sizing:content-box; }
.feature span{ font-size:.8rem; font-weight:600; color:var(--vanilla-deep); line-height:1.3; }
@media (max-width:600px){ .features .container{ justify-content:center; } .feature{ min-width:44%; } }

.slider-section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:26px; flex-wrap:wrap; }
.slider-nav{ display:flex; gap:8px; }
.slider-arrow{ width:36px; height:36px; border-radius:var(--radius-control); display:flex; align-items:center; justify-content:center; background:transparent; border:var(--border-width) solid var(--border-color-default); color:var(--rose-dust-700); flex:none; transition:var(--transition-ui); }
.slider-arrow svg{ width:15px; height:15px; }
.slider-arrow:hover{ border-color:var(--border-color-hover); color:var(--gold-500); }

.cat-slider-wrap{ position:relative; }
.cat-slider{ display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x proximity; padding:6px 4px 24px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.cat-slider::-webkit-scrollbar{ display:none; }
.ecard{ position:relative; flex:0 0 260px; height:400px; border-radius:var(--radius-card); overflow:hidden; scroll-snap-align:start; box-shadow:var(--shadow-sm); border:var(--border-width) solid var(--border-color-default); transition:var(--transition-ui); display:block; }
.ecard:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--ecard-accent, var(--border-color-hover)); }
.ecard-media{ position:absolute; inset:0; }
.ecard:hover .ecard-media .photo-cover{ transform:scale(1.06); }
.ecard::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,10,12,.94) 0%, rgba(20,10,12,.8) 32%, rgba(20,10,12,.22) 58%, transparent 80%); }
.ecard-body{ position:absolute; left:0; right:0; bottom:0; padding:22px; z-index:2; color:var(--vanilla-deep); }
.ecard-body h3{ color:var(--ecard-accent, var(--rose-dust-300)); font-size:1.1rem; margin-bottom:6px; }
.ecard-body p{ color:var(--vanilla-deep); opacity:.85; font-size:.78rem; margin-bottom:12px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ecard-cta{ display:inline-flex; align-items:center; gap:6px; font-size:.76rem; font-weight:600; color:var(--gold-300); text-transform:uppercase; letter-spacing:.06em; }
.ecard-cta svg{ width:13px; height:13px; transition:var(--transition-ui); }
.ecard:hover .ecard-cta svg{ transform:translateX(4px); }
.photo-cover{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
@media (max-width:900px){ .ecard{ flex-basis:300px; height:380px; } }
@media (max-width:600px){ .ecard{ flex-basis:232px; height:350px; } .cat-slider{ gap:16px; } }
@media (max-width:420px){ .ecard{ flex-basis:190px; height:320px; } }

.collections-teaser{ text-align:center; }
.collections-teaser .eyebrow::before{ display:none; }
.collections-teaser-list{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:22px; }
.collections-teaser-chip{ display:inline-flex; align-items:center; padding:11px 22px; border-radius:999px; border:1px solid var(--vanilla); color:var(--vanilla); font-size:.86rem; font-weight:600; }

.occasions{ background:var(--blush-100); }
.occ-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:34px; }
.occ-head h2{ font-size:clamp(1.6rem,3vw,2.2rem); }
.occ-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.occ-card{ background:var(--vanilla-deep); border-radius:var(--radius-card); border:var(--border-rose); padding:30px 22px; text-align:center; box-shadow:var(--shadow-sm); transition:var(--transition-ui); }
.occ-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--border-color-hover); }
.occ-card svg{ width:38px; height:38px; color:var(--rose-700); margin:0 auto 16px; transition:var(--transition-ui); }
.occ-card:hover svg{ color:var(--gold-500); }
.occ-card h4{ font-size:1rem; margin-bottom:6px; }
.occ-card p{ font-size:.82rem; margin:0; }
@media (max-width:860px){ .occ-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .occ-grid{ grid-template-columns:1fr 1fr; } }

.testimonials-section{ background:var(--vanilla); }
.testimonials-trust-line{ display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:.86rem; font-weight:600; color:var(--ink-700); transition:var(--transition-ui); }
.testimonials-trust-line:hover{ color:var(--rose-dust-700); }
.testimonials-trust-stars{ color:var(--gold-500); letter-spacing:1px; }
.testimonial-marquee{ overflow:hidden; margin-top:16px; -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.testimonial-track{ display:flex; gap:22px; width:max-content; animation:testimonialScroll 42s linear infinite; }
.testimonial-marquee:hover .testimonial-track{ animation-play-state:paused; }
@media (prefers-reduced-motion:reduce){ .testimonial-track{ animation:none; } }
@keyframes testimonialScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.testimonial-card{ flex:0 0 300px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:26px 24px; background:var(--vanilla); border:var(--border-rose); border-radius:var(--radius-card); box-shadow:var(--shadow-sm); transition:var(--transition-ui); }
.testimonial-card:hover{ border-color:var(--border-color-hover); box-shadow:var(--shadow-md); }
.testimonial-quote-ic{ color:var(--gold-500); }
.testimonial-quote-ic svg{ width:26px; height:26px; }
.testimonial-stars{ color:var(--gold-500); letter-spacing:2px; font-size:.85rem; }
.testimonial-card p{ font-size:.86rem; color:var(--ink-700); margin:0; }
.testimonial-author{ display:flex; flex-direction:column; margin-top:auto; padding-top:8px; }
.testimonial-author strong{ font-family:var(--font-serif); font-size:.92rem; color:var(--rose-900); }
.testimonial-author span{ font-size:.72rem; color:var(--ink-300); }
@media (max-width:600px){ .testimonial-card{ flex-basis:250px; } }

.news-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.news-card{ background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-sm); transition:var(--transition-ui); display:block; }
.news-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--border-color-hover); }
.news-media{ aspect-ratio:16/10; }
.news-body{ padding:20px 22px 24px; }
.news-meta{ font-size:.72rem; color:var(--gold-500); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; font-weight:700; }
.news-body h3{ font-size:1.05rem; margin-bottom:10px; }
.news-body p{ font-size:.85rem; }
@media (max-width:860px){ .news-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .news-grid{ grid-template-columns:1fr; } }

.custom-order-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.custom-order-card{ display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:36px 32px; background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-card); box-shadow:var(--shadow-sm); transition:var(--transition-ui); }
.custom-order-card:hover{ border-color:var(--border-color-hover); box-shadow:var(--shadow-md); transform:translateY(-3px); }
.custom-order-ic{ width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--vanilla); color:var(--rose-700); flex:none; margin-bottom:12px; transition:var(--transition-ui); }
.custom-order-ic svg{ width:22px; height:22px; }
.custom-order-card:hover .custom-order-ic{ color:var(--gold-500); }
.custom-order-card h3{ font-size:1.15rem; margin:0; }
.custom-order-card p{ font-size:.88rem; margin:0 0 10px; }
.custom-order-card .link-arrow{ margin-top:auto; }
@media (max-width:700px){ .custom-order-grid{ grid-template-columns:1fr; } }
/* ---------- Category / shop archive ---------- */
.page-hero{ padding:44px 0 30px; background:var(--blush-100); }
.breadcrumbs{ font-size:.78rem; color:var(--ink-500); margin-bottom:14px; }
.breadcrumbs a:hover{ color:var(--gold-500); }
.breadcrumbs span{ margin:0 6px; color:var(--ink-300); }
.page-hero h1{ font-size:clamp(1.8rem,3.4vw,2.6rem); margin-bottom:8px; }
.page-hero p{ max-width:640px; margin:0; }

.toolbar{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:8px; }
.result-count{ font-size:.85rem; color:var(--ink-500); }
.empty-note{ background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-md); padding:40px; text-align:center; color:var(--ink-500); box-shadow:var(--shadow-sm); }

.product-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.product-card{ background:var(--vanilla); border-radius:var(--radius-card); border:var(--border-width) solid var(--rose-700); overflow:hidden; box-shadow:var(--shadow-sm); transition:var(--transition-ui); display:flex; flex-direction:column; }
.product-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--border-color-hover); }
.product-card .thumb{ position:relative; aspect-ratio:4/3; background:var(--vanilla); overflow:hidden; }
.product-card .thumb > a{ display:block; width:100%; height:100%; }
.product-card .thumb .photo-cover{ object-fit:contain; width:100%; height:100%; }
.p-badges{ position:absolute; top:12px; left:12px; z-index:2; display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.p-badge{ background:rgba(253,250,243,.92); border:1px solid var(--gold-500); color:var(--gold-500); font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; font-weight:700; padding:4px 9px; border-radius:var(--radius-round); line-height:1.4; }
.p-badge--sale{ border-color:var(--gold-500); color:var(--gold-500); }
.fav-btn{ position:absolute; top:10px; right:10px; z-index:2; width:30px; height:30px; background:rgba(253,250,243,.88); border:var(--border-width) solid var(--border-color-default); box-shadow:none; transition:var(--transition-ui); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.fav-btn:hover{ border-color:var(--border-color-hover); }
.fav-btn svg{ width:15px; height:15px; stroke:var(--rose-700); stroke-width:1.6; transition:var(--transition-ui); }
.fav-btn:hover svg{ stroke:var(--gold-500); }
.product-card .quick-add{ position:absolute; right:10px; bottom:10px; opacity:0; transform:translateY(6px); transition:var(--transition-ui); z-index:2; width:34px; height:34px; background:rgba(253,250,243,.92); border:var(--border-width) solid var(--border-color-default); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.product-card .quick-add svg{ width:15px; height:15px; }
.product-card:hover .quick-add{ opacity:1; transform:translateY(0); }
.product-card:hover .thumb .photo-cover{ transform:scale(1.05); }
.product-card .info{ background:var(--vanilla-deep); color:var(--ganache-700); border-top:1px solid rgba(45,26,23,.16); padding:18px 18px 19px; display:flex; flex-direction:column; gap:6px; flex:1; }
.product-card .cat-label{ font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(45,26,23,.62); font-weight:600; font-family:var(--font-sans); }
.product-card h3{ font-family:var(--font-serif); font-size:1rem; line-height:1.32; margin:0; font-weight:600; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.product-card h3 a{ color:var(--rose-900); }
.product-card h3 a:hover{ color:var(--rose-dust-700); }
.product-card .meta{ font-size:.72rem; color:var(--ink-500); font-family:var(--font-sans); }
.product-card .price-row{ margin-top:auto; padding-top:10px; border-top:1px solid rgba(45,26,23,.16); display:flex; align-items:center; justify-content:space-between; }
.product-card .price{ font-family:var(--font-serif); color:var(--ganache-700); font-weight:700; font-size:1.1rem; }
.product-card .price ins{ text-decoration:none; }
.product-card .price del{ font-family:var(--font-sans); font-size:.74rem; color:var(--ink-500); margin-right:6px; }
.product-card .link-arrow{ color:var(--ganache-700); font-size:.76rem; }
.product-card .link-arrow:hover{ color:var(--rose-dust-700); }
@media (max-width:900px){ .product-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .product-grid{ grid-template-columns:repeat(2,1fr); gap:16px; } }

/* ---------- Product detail ---------- */
.product-detail{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:flex-start; }
.pd-gallery{ position:sticky; top:90px; }
.pd-main-img{ border-radius:var(--radius-lg); border:var(--border-rose); overflow:hidden; box-shadow:var(--shadow-md); aspect-ratio:1/1; margin-bottom:16px; background:var(--vanilla); }
.pd-main-img .photo-cover{ object-fit:contain; width:100%; height:100%; }
.pd-thumbs{ display:flex; gap:12px; }
.pd-thumbs .t{ width:70px; height:70px; border-radius:var(--radius-control); overflow:hidden; border:2px solid var(--surface-3); cursor:pointer; transition:var(--transition-ui); background:var(--vanilla); }
.pd-thumbs .t img{ object-fit:contain; width:100%; height:100%; }
.pd-thumbs .t.active{ border-color:var(--rose-700); }
.pd-info .cat-label{ font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-500); font-weight:700; }
.pd-info h1{ font-size:clamp(1.5rem,3vw,2rem); margin:8px 0 14px; }
.pd-ref{ font-size:.78rem; color:var(--ink-300); margin-bottom:16px; }
.pd-price{ font-family:var(--font-serif); font-size:2rem; color:var(--rose-700); font-weight:700; margin-bottom:6px; }
.pd-price ins{ text-decoration:none; }
.pd-price del{ font-family:var(--font-sans); font-size:1.1rem; font-weight:400; color:var(--ink-300); margin-right:8px; }
.pd-desc{ margin:18px 0 26px; }
.pd-actions{ display:flex; gap:14px; align-items:center; margin-top:26px; flex-wrap:wrap; }
.qty-box{ display:flex; align-items:center; border:var(--border-rose); border-radius:var(--radius-round); overflow:hidden; }
.qty-box button{ width:40px; height:48px; border:none; background:var(--vanilla-deep); font-size:1.1rem; color:var(--rose-700); cursor:pointer; }
.qty-box button:hover{ background:var(--surface-2); }
.qty-box input{ width:40px; text-align:center; border:none; background:var(--vanilla-deep); font-size:.95rem; color:var(--ink-900); -moz-appearance:textfield; }
.pd-note{ font-size:.78rem; color:var(--ink-300); margin-top:14px; }
.trust-row{ display:flex; gap:22px; margin-top:30px; padding-top:26px; border-top:var(--border-rose-soft); flex-wrap:wrap; }
.trust-row .t-item{ display:flex; gap:10px; align-items:flex-start; font-size:.78rem; color:var(--ink-500); max-width:200px; }
.trust-row svg{ width:22px; height:22px; color:var(--rose-700); flex:none; }
.pd-tabs{ margin-top:64px; }
.tab-heads{ display:flex; gap:10px; border-bottom:var(--border-rose-soft); margin-bottom:24px; }
.tab-heads button{ background:none; border:none; padding:12px 22px; font-weight:600; color:var(--rose-700); border-bottom:2px solid var(--rose-700); cursor:default; }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }
.related-strip{ margin-top:70px; }
@media (max-width:1080px){ .product-detail{ grid-template-columns:1fr; } .pd-gallery{ position:static; } }
/* ---------- About page ---------- */
.about-hero{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.about-media{ border-radius:var(--radius-card); border:var(--border-rose); overflow:hidden; box-shadow:var(--shadow-md); aspect-ratio:4/5; }
.stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center; margin-top:50px; }
.stat-row .num{ font-family:var(--font-serif); font-size:2.4rem; color:var(--rose-700); font-weight:700; }
.stat-row .lbl{ font-size:.8rem; color:var(--ink-500); }
.values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.value-card{ background:var(--vanilla-deep); border:var(--border-rose); padding:28px 22px; border-radius:var(--radius-md); box-shadow:var(--shadow-sm); min-width:0; overflow-wrap:break-word; }
.value-card svg{ width:32px; height:32px; color:var(--rose-700); margin-bottom:14px; }
.value-card h4{ font-size:1rem; }
.value-card p{ font-size:.85rem; margin:0; }
.values-grid .value-card:nth-child(even){ background:var(--rose-dust-700); border:1px solid var(--gold-500); }
.values-grid .value-card:nth-child(even) svg{ color:var(--vanilla-deep); }
.values-grid .value-card:nth-child(even) h4, .values-grid .value-card:nth-child(even) p{ color:var(--vanilla-deep); }

.craft{ position:relative; background:var(--rose-900); color:var(--vanilla); overflow:hidden; }
.craft-grid{ display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:50px; }
.craft-grid > *{ min-width:0; }
.craft-media{ border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-md); aspect-ratio:5/4; border:1px solid rgba(255,255,255,.12); }
.craft-copy .eyebrow{ color:var(--gold-300); }
.craft-copy .eyebrow::before{ background:var(--gold-300); }
.craft-copy h2{ color:var(--vanilla); }
.craft-copy p{ color:rgba(255,255,255,.72); max-width:460px; }

.divider-rose{ display:flex; align-items:center; justify-content:center; gap:14px; margin:0 0 20px; color:var(--gold-500); font-family:var(--font-serif); font-style:italic; font-size:.85rem; text-transform:uppercase; letter-spacing:.1em; }
.divider-rose::before, .divider-rose::after{ content:""; height:1px; width:60px; background:var(--border-color-default); }

@media (max-width:1080px){
  .about-hero{ grid-template-columns:1fr; }
  .craft-grid{ grid-template-columns:1fr; }
}
@media (max-width:860px){
  .values-grid{ grid-template-columns:repeat(2,1fr); }
  .stat-row{ grid-template-columns:repeat(2,1fr); gap:30px; }
}

/* ---------- Contact / generic forms ---------- */
.form-layout{ display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.info-card{ background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-md); padding:28px; box-shadow:var(--shadow-sm); margin-bottom:18px; }
.info-card h4{ font-size:.95rem; margin-bottom:12px; }
.info-card .row{ display:flex; gap:12px; align-items:flex-start; font-size:.87rem; color:var(--ink-500); margin-bottom:10px; }
.info-card svg{ width:18px; height:18px; color:var(--rose-700); flex:none; margin-top:2px; }
.contact-form{ background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-lg); padding:34px; box-shadow:var(--shadow-sm); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group{ margin-bottom:18px; }
.form-group label{ display:block; font-size:.78rem; font-weight:700; color:var(--ink-700); margin-bottom:8px; text-transform:uppercase; letter-spacing:.03em; }
.success-box{ display:none; background:var(--rose-dust-700); border:1px solid var(--gold-500); color:var(--vanilla-deep); padding:18px 22px; border-radius:var(--radius-md); margin-bottom:20px; font-size:.9rem; font-weight:600; }
.success-box.show{ display:block; }
@media (max-width:1080px){ .form-layout{ grid-template-columns:1fr; } }
@media (max-width:600px){ .form-row{ grid-template-columns:1fr; } }
/* ---------- Editorial split hero (Obekti / B2B) ---------- */
.locations-hero{ background:linear-gradient(135deg, var(--vanilla) 0%, var(--vanilla-deep) 100%); padding:52px 0; overflow:hidden; }
.locations-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; align-items:start; gap:52px; }
.locations-hero-copy h1{ font-size:clamp(1.9rem,3.2vw,2.6rem); margin-bottom:14px; }
.locations-hero-copy .eyebrow{ color:var(--rose-dust-700); }
.locations-hero-copy .eyebrow::before{ background:var(--rose-dust-500); }
.locations-hero-copy p{ max-width:440px; font-size:.98rem; }
.locations-hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:10px; }
.locations-hero-photo-wrap{ position:relative; width:100%; aspect-ratio:5/4; max-width:100%; }
.locations-hero-photo{ position:absolute; inset:0; z-index:1; border-radius:var(--radius-card); overflow:hidden; border:1px solid var(--rose-dust-500); box-shadow:var(--shadow-lg); }
@media (max-width:960px){
  .locations-hero-grid{ grid-template-columns:1fr; }
  .locations-hero-photo-wrap{ order:-1; max-width:440px; margin:0 auto; }
}

/* ---------- Gallery ---------- */
.gallery-cta-band{ display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; background:var(--ganache-700); border:1px solid var(--gold-500); border-radius:var(--radius-card); padding:26px 30px; margin-bottom:44px; }
.gallery-cta-band-text{ min-width:0; }
.gallery-cta-band-text h3{ font-size:1.15rem; margin-bottom:4px; color:var(--vanilla-deep); }
.gallery-cta-band-text p{ margin:0; font-size:.86rem; color:var(--vanilla-deep); opacity:.85; }
.gallery-cta-band-actions{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; flex:none; }
.moment-gift-badge{ display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:var(--radius-round); background:var(--surface); border:1px solid var(--gold-500); color:var(--ganache-700); font-size:.8rem; font-weight:600; }
.moment-gift-badge svg{ width:16px; height:16px; color:var(--gold-500); flex:none; }
.moment-gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.moment-gallery-card{ aspect-ratio:4/5; border-radius:var(--radius-card); overflow:hidden; border:var(--border-rose); box-shadow:var(--shadow-sm); transition:var(--transition-ui); }
.moment-gallery-card:hover{ border-color:var(--border-color-hover); box-shadow:var(--shadow-md); transform:translateY(-3px); }
.moment-gallery-card img{ width:100%; height:100%; object-fit:cover; }
.moment-gallery-note{ text-align:center; font-size:.85rem; color:var(--ink-500); margin-top:22px; }
@media (max-width:1080px){ .moment-gallery-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px){
  .gallery-cta-band{ flex-direction:column; align-items:flex-start; flex-wrap:nowrap; }
  .gallery-cta-band-text, .gallery-cta-band-actions{ width:100%; }
  .moment-gallery-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
}

/* ---------- Catalog cards ---------- */
.catalog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.catalog-card{ background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-sm); transition:var(--transition-ui); }
.catalog-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--border-color-hover); }
.catalog-cover{ position:relative; display:block; aspect-ratio:3/4; overflow:hidden; }
.catalog-cover-title{ position:absolute; left:0; right:0; bottom:0; padding:20px; background:linear-gradient(to top, rgba(20,10,12,.85), transparent); color:var(--vanilla); }
.catalog-cover-title h3{ color:var(--vanilla); font-size:1.15rem; }
.catalog-meta{ padding:18px 20px 20px; }
.catalog-meta p{ font-size:.85rem; margin-bottom:10px; }
.catalog-meta .meta{ display:block; font-size:.76rem; color:var(--ink-300); margin-bottom:14px; }
@media (max-width:900px){ .catalog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .catalog-grid{ grid-template-columns:1fr; } }
/* ---------- Subcat chips (event/category quick filters) ---------- */
.subcat-strip{ display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; margin-bottom:8px; flex-wrap:wrap; }
.subcat-chip{ flex:none; display:flex; align-items:center; gap:10px; background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-control); padding:8px 18px; box-shadow:var(--shadow-sm); font-size:.82rem; font-weight:600; color:var(--ink-700); transition:var(--transition-ui); }
.subcat-chip:hover{ border-color:var(--border-color-hover); }
.subcat-chip.active{ background:var(--rose-700); color:var(--vanilla); border-color:var(--rose-800); }

/* ---------- News article (single event) ---------- */
.news-article-media{ border-radius:var(--radius-lg); border:var(--border-rose); overflow:hidden; box-shadow:var(--shadow-md); aspect-ratio:16/8; margin:0 0 34px; }
.news-article-body{ max-width:760px; margin:0 auto; }
.news-article-body p{ font-size:1.02rem; color:var(--ink-700); margin-bottom:1em; }

/* ---------- Survey / feedback pages ---------- */
.survey-hero{ background:linear-gradient(135deg, var(--vanilla) 0%, var(--surface) 100%); padding:52px 0; text-align:center; }
.survey-hero .breadcrumbs{ justify-content:center; }
.survey-hero h1{ font-size:clamp(1.9rem,3.2vw,2.6rem); margin:10px 0; }
.survey-hero p{ max-width:500px; margin:0 auto; }
.moment-confirm{ text-align:center; padding:40px 20px; }
.moment-confirm-icon{ width:64px; height:64px; border-radius:50%; background:var(--rose-100); color:var(--rose-700); display:flex; align-items:center; justify-content:center; margin:0 auto 22px; padding:14px; }
.moment-confirm-icon svg{ width:100%; height:100%; }
.moment-confirm h3{ font-size:1.4rem; margin-bottom:10px; }

/* ---------- Share-a-moment hero ---------- */
.moment-hero{ background:linear-gradient(135deg, var(--vanilla) 0%, var(--surface) 100%); padding:60px 0 68px; overflow:hidden; }
.moment-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
.moment-hero-copy h1{ font-size:clamp(2rem,3.6vw,2.9rem); line-height:1.16; margin-bottom:16px; }
.moment-hero-tagline{ font-family:var(--font-serif); font-style:italic; color:var(--rose-dust-700); font-size:1.15rem; margin-bottom:18px; }
.moment-hero-copy p:not(.moment-hero-tagline){ font-size:1rem; max-width:480px; }
.moment-cta-row{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:8px; }
.moment-hero-photo-wrap{ position:relative; width:100%; aspect-ratio:4/5; }
.moment-hero-photo{ position:relative; z-index:1; aspect-ratio:4/5; border-radius:var(--radius-card); overflow:hidden; border:var(--border-rose); box-shadow:var(--shadow-lg); }
.moment-steps-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.moment-consent{ display:flex; align-items:flex-start; gap:10px; font-size:.8rem; color:var(--ink-700); line-height:1.55; margin:16px 0; }
.moment-consent input[type="checkbox"]{ accent-color:var(--rose-700); width:17px; height:17px; flex:none; margin-top:2px; }
@media (max-width:1080px){ .moment-hero-grid{ grid-template-columns:1fr; } .moment-hero-photo-wrap{ order:-1; max-width:420px; margin:0 auto; } }
@media (max-width:760px){ .moment-steps-grid{ grid-template-columns:1fr; } }
/* ---------- Subcategory discovery grid (category hub pages) ---------- */
.cat-hub-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.cat-hub-grid .ecard{ height:220px; }
@media (max-width:1080px){ .cat-hub-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:768px){ .cat-hub-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .cat-hub-grid{ grid-template-columns:1fr; } }

/* ---------- Sort control ---------- */
.toolbar{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.sort-select{ padding:10px 16px; border-radius:var(--radius-control); border:var(--border-rose); background:var(--vanilla-deep); font-size:.82rem; color:var(--ink-700); cursor:pointer; }
/* ---------- Hero top-right CTA (matches static prototype's .hero-top-actions) ---------- */
.roza-hero-top-actions{ position: absolute; top: 26px; right: 30px; z-index: 5; }
.roza-btn-hero-order{
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 30px; border-radius: var(--radius-control);
  font-family: var(--font-sans); font-weight: 600; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase;
  background: transparent; color: var(--vanilla); border: 1px solid var(--vanilla);
  transition: var(--transition-ui); white-space: nowrap;
}
.roza-btn-hero-order:hover{ background: var(--vanilla); color: var(--rose-900, #5c2530); transform: translateY(-2px); box-shadow: var(--shadow-sm); }
@media (max-width: 860px){
  .roza-hero-top-actions{ top: 16px; right: 16px; }
  .roza-btn-hero-order{ padding: 10px 18px; font-size: .76rem; }
}
/* WooCommerce's own plugin stylesheet ships a global
   `.woocommerce img, .woocommerce-page img { height:auto; max-width:100% }`
   reset. On any WooCommerce-flagged page (shop/category/product/cart) that
   outranks our plain single-class image rules below (one class+element beats
   one class alone), so the header logo and every photo-cover image lost their
   intended sizing there. Re-scoping with an extra class wins on specificity
   without needing !important. */
.woocommerce-page .logo-v2-img, .woocommerce .logo-v2-img{ height:56px !important; width:auto; }
.woocommerce-page #site-header.scrolled .logo-v2-img, .woocommerce #site-header.scrolled .logo-v2-img{ height:44px !important; }
.woocommerce-page .logo-img, .woocommerce .logo-img{ height:44px !important; width:auto; }
.woocommerce-page .photo-cover, .woocommerce .photo-cover{ height:100% !important; width:100%; }
/* ---------- Store cards (Обекти) — with mini-gallery hover, ported 1:1 ---------- */
.store-card{ background:var(--vanilla); border:var(--border-rose); border-radius:var(--radius-card); overflow:hidden; box-shadow:var(--shadow-sm); transition:var(--transition-ui); }
.store-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--rose-dust-500); }
.store-media{ aspect-ratio:16/9; position:relative; overflow:hidden; }
.store-media-strip{ display:flex; width:100%; height:100%; }
.store-media-strip img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 500ms ease; }
.store-media-strip img:first-child{ opacity:1; }
.store-card:hover .store-media-strip img:first-child{ opacity:0; }
.store-card:hover .store-media-strip img:nth-child(2){ opacity:1; }
.store-body{ padding:22px 24px 24px; }
.store-body h3{ font-size:1.06rem; letter-spacing:-.005em; margin-bottom:3px; }
.store-type{ font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--gold-500); margin-bottom:16px; }
.store-body ul{ display:flex; flex-direction:column; gap:9px; margin:0 0 20px; padding-top:14px; border-top:1px solid rgba(74,50,34,.1); }
.store-body li{ font-size:.82rem; color:var(--ink-500); display:flex; gap:9px; align-items:flex-start; }
.store-body ul svg{ width:13px; height:13px; color:var(--ink-500); flex:none; margin-top:2px; opacity:.85; }
.store-card .link-arrow{ font-size:.74rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--ganache-700); }
.store-card .link-arrow:hover{ color:var(--gold-500); }
.store-card .link-arrow svg{ width:12px; height:12px; }
/* ---------- Filter bar (price + sort + search) on category/shop pages ---------- */
.filter-bar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:24px; padding:14px 16px; background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-md); }
.filter-field{ display:flex; }
.filter-field .sort-select{ min-width:150px; }
.filter-search{ display:flex; gap:8px; margin-left:auto; }
.filter-search input[type=text]{ padding:10px 14px; border-radius:var(--radius-control); border:var(--border-rose); background:var(--vanilla); font-size:.82rem; color:var(--ink-700); min-width:200px; }
.filter-search button{ display:flex; align-items:center; gap:6px; padding:10px 16px; border-radius:var(--radius-control); border:var(--border-rose); background:var(--rose-700); color:var(--vanilla); font-size:.82rem; cursor:pointer; white-space:nowrap; }
.filter-search button svg{ width:15px; height:15px; }
@media (max-width:720px){
  .filter-bar{ flex-direction:column; align-items:stretch; }
  .filter-search{ margin-left:0; }
  .filter-search input[type=text]{ flex:1; min-width:0; }
}

/* ---------- Homepage quick filter (compact, links to shop) ---------- */
.home-quick-filter{ background:var(--vanilla-deep); border:var(--border-rose); border-radius:var(--radius-md); padding:20px 24px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.home-quick-filter-label{ font-size:.85rem; color:var(--ink-500); white-space:nowrap; }
.mega-panel-extra{ margin-top:10px; padding-top:10px; border-top:1px dashed var(--rose-300, #e8c9cf); }

/* =========================================================
   Анкета "Вашето мнение" — пълен wizard движок (портнато от
   статичния прототип).
   ========================================================= */
.survey-hero{ padding:56px 0 28px; text-align:center; }
.survey-hero .eyebrow{ justify-content:center; }
.survey-hero .eyebrow::before{ display:none; }
.survey-hero h1{ font-size:clamp(1.9rem,3.4vw,2.6rem); margin-bottom:14px; }
.survey-hero p{ max-width:560px; margin:0 auto; color:var(--ink-700); line-height:1.7; }
.survey-hero p + p{ margin-top:10px; }

.survey-shell{
  max-width:620px; margin:0 auto 72px; background:var(--vanilla); border:var(--border-rose);
  border-radius:var(--radius-lg); padding:40px 44px; box-shadow:var(--shadow-sm);
}
.survey-intro-card{ text-align:center; }
.survey-intro-card .survey-icon{ width:56px; height:56px; margin:0 auto 20px; color:var(--rose-dust-700); }
.survey-intro-card .btn{ margin-top:22px; }

.survey-progress{ height:4px; border-radius:2px; background:var(--vanilla-deep); overflow:hidden; margin-bottom:10px; }
.survey-progress-bar{ height:100%; background:var(--rose-dust-700); border-radius:2px; transition:width .35s ease; }
.survey-step-count{ font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-500); margin-bottom:28px; }
.survey-question h2{ font-size:clamp(1.25rem,2.4vw,1.55rem); line-height:1.35; margin-bottom:8px; }
.survey-hint{ font-size:.82rem; color:var(--ink-500); font-style:italic; margin-bottom:20px; }
.survey-answer{ margin-top:22px; }

.survey-pills{ display:flex; flex-wrap:wrap; gap:10px; }
.survey-pill{
  padding:13px 20px; border-radius:var(--radius-control); border:var(--border-rose); background:var(--vanilla-deep);
  font-size:.86rem; color:var(--ink-700); transition:var(--transition-ui); cursor:pointer;
}
.survey-pill:hover{ border-color:var(--border-color-hover); }
.survey-pill.selected{ background:var(--rose-dust-700); border:var(--border-width) solid var(--rose-dust-700); color:var(--vanilla); }
.survey-pill--wide{ display:block; width:100%; text-align:center; margin-top:14px; }
input.survey-other{ margin-top:14px; }

.survey-scale{ display:flex; flex-wrap:wrap; gap:10px; }
.survey-scale-btn{
  width:48px; height:48px; border-radius:50%; border:var(--border-rose); background:var(--vanilla-deep);
  font-size:.92rem; font-weight:700; color:var(--ink-700); transition:var(--transition-ui); cursor:pointer; flex:none;
}
.survey-scale-btn:hover{ border-color:var(--border-color-hover); }
.survey-scale-btn.selected{ background:var(--rose-dust-700); border-color:var(--rose-dust-700); color:var(--vanilla); }
.survey-scale--nps .survey-scale-btn{ width:42px; height:42px; font-size:.82rem; }
.survey-scale-labels{ display:flex; justify-content:space-between; font-size:.72rem; color:var(--ink-500); margin-top:8px; }

.survey-secondary-label{ display:block; font-size:.78rem; font-weight:700; color:var(--ink-700); margin:18px 0 8px; text-transform:uppercase; letter-spacing:.03em; }
.survey-error{ min-height:1.2em; font-size:.8rem; color:var(--rose-700); margin-top:16px; }
.survey-nav{ display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:8px; }

@media (max-width:640px){
  .survey-shell{ padding:28px 22px; border-radius:var(--radius-md); margin:0 16px 48px; }
  .survey-nav{ flex-direction:column-reverse; align-items:stretch; }
  .survey-nav .btn{ width:100%; }
  .survey-scale-btn{ width:42px; height:42px; }
}
/* ---------- Roza role dashboard shell (/tablo/) ---------- */
.roza-dash{ background:var(--vanilla); min-height:70vh; }
.roza-dash-shell{ display:grid; grid-template-columns:260px 1fr; min-height:70vh; }
.roza-dash-nav{ background:var(--ganache-700); color:var(--vanilla); padding:32px 0; }
.roza-dash-user{ padding:0 24px 24px; border-bottom:1px solid rgba(255,255,255,.12); margin-bottom:16px; display:flex; flex-direction:column; gap:4px; }
.roza-dash-user strong{ font-family:var(--font-serif); font-size:1.05rem; }
.roza-dash-user span{ font-size:.75rem; color:var(--gold-300); text-transform:uppercase; letter-spacing:.05em; }
.roza-dash-nav ul{ list-style:none; margin:0; padding:0; }
.roza-dash-nav li a{
  display:flex; align-items:center; gap:12px; padding:13px 24px; color:rgba(253,250,243,.8);
  font-size:.88rem; font-weight:500; transition:var(--transition-ui), background .15s;
}
.roza-dash-nav li a .icon{ width:18px; height:18px; }
.roza-dash-nav li a:hover{ background:rgba(255,255,255,.06); color:var(--vanilla); }
.roza-dash-nav li.active a{ background:var(--rose-dust-700); color:var(--vanilla); }
.roza-dash-workspace{ padding:40px 44px; }
.roza-dash-workspace h1{ font-size:1.6rem; margin-bottom:8px; }
.roza-dash-sub{ color:var(--ink-500); margin-bottom:28px; }
.roza-dash-table{ width:100%; border-collapse:collapse; background:var(--white); border:var(--border-rose); border-radius:var(--radius-md); overflow:hidden; }
.roza-dash-table th, .roza-dash-table td{ padding:12px 16px; text-align:left; font-size:.82rem; border-bottom:1px solid var(--rose-100); }
.roza-dash-table th{ background:var(--vanilla-deep); color:var(--ink-700); text-transform:uppercase; font-size:.72rem; letter-spacing:.04em; }
.roza-dash-table tr:last-child td{ border-bottom:none; }

@media (max-width:900px){
  .roza-dash-shell{ grid-template-columns:1fr; }
  .roza-dash-nav{ padding:16px 0; }
  .roza-dash-nav ul{ display:flex; overflow-x:auto; gap:4px; padding:0 12px; }
  .roza-dash-user{ display:none; }
  .roza-dash-nav li a{ padding:10px 16px; white-space:nowrap; }
  .roza-dash-workspace{ padding:28px 20px; }
  .roza-dash-table{ display:block; overflow-x:auto; }
}
/* ---------- Order Staff dashboard extras ---------- */
.roza-bucket-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:8px; }
.roza-bucket{ background:var(--white); border:var(--border-rose); border-radius:var(--radius-md); padding:16px 18px; display:flex; flex-direction:column; gap:4px; }
.roza-bucket .num{ font-family:var(--font-serif); font-size:1.7rem; color:var(--ink-900); }
.roza-bucket .lbl{ font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-500); }
.roza-bucket.warn{ border-color:var(--gold-500); }
.roza-bucket.warn .num{ color:var(--gold-600); }
.roza-bucket.alert{ border-color:var(--rose-700); }
.roza-bucket.alert .num{ color:var(--rose-700); }
@media (max-width:900px){ .roza-bucket-grid{ grid-template-columns:repeat(2,1fr); } }

.roza-tabs{ display:flex; gap:4px; margin-bottom:18px; flex-wrap:wrap; border-bottom:1px solid var(--rose-100); }
.roza-tab{ padding:9px 16px; font-size:.82rem; color:var(--ink-500); border-bottom:2px solid transparent; }
.roza-tab.active{ color:var(--rose-700); border-color:var(--rose-700); font-weight:600; }

.roza-search-form{ display:flex; gap:8px; margin-bottom:18px; }
.roza-search-form input[type=text]{ padding:9px 14px; border-radius:var(--radius-control); border:var(--border-rose); background:var(--vanilla-deep); font-size:.82rem; min-width:240px; }
.roza-search-form button{ padding:9px 18px; border-radius:var(--radius-control); border:none; background:var(--rose-dust-700); color:var(--vanilla); font-size:.82rem; }

.roza-status-pill{ display:inline-block; padding:4px 10px; border-radius:20px; background:var(--vanilla-deep); border:1px solid var(--rose-200); font-size:.72rem; color:var(--ink-700); white-space:nowrap; }

.roza-flash{ padding:12px 18px; border-radius:var(--radius-md); margin-bottom:20px; font-size:.86rem; }
.roza-flash-ok{ background:#e8f3ec; color:#2e6b46; border:1px solid #bfe2cc; }
.roza-flash-error{ background:#fbe9e9; color:#96394f; border:1px solid #f0c6c6; }

.roza-btn-mini{ padding:6px 12px; border-radius:var(--radius-control); border:1px solid var(--rose-dust-700); background:transparent; color:var(--rose-dust-700); font-size:.74rem; cursor:pointer; white-space:nowrap; }
.roza-btn-mini:hover{ background:var(--rose-dust-700); color:var(--vanilla); }

.roza-back-link{ display:inline-block; margin-bottom:14px; font-size:.82rem; color:var(--ink-500); }

.roza-order-detail-grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:40px; margin-top:24px; }
.roza-order-detail-grid h3{ font-size:.9rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ink-700); margin:20px 0 8px; }
.roza-order-detail-grid h3:first-child{ margin-top:0; }
.roza-quick-actions{ margin-bottom:24px; }
@media (max-width:900px){ .roza-order-detail-grid{ grid-template-columns:1fr; } }
.roza-test-badge{ display:inline-block; padding:2px 8px; border-radius:3px; background:var(--gold-500); color:#fff; font-size:.66rem; font-weight:700; letter-spacing:.04em; vertical-align:middle; }
/* ---------- Roza Portal auth (login / reset password) ---------- */
.roza-auth-body{ margin:0; background:var(--vanilla-deep); font-family:var(--font-sans); min-height:100vh; }
.roza-auth-shell{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.roza-auth-card{ background:var(--white); border:var(--border-rose); border-radius:var(--radius-md); box-shadow:var(--shadow-md); padding:44px 40px; width:100%; max-width:380px; text-align:center; }
.roza-auth-logo{ height:44px; width:auto; margin:0 auto 20px; }
.roza-auth-card h1{ font-size:1.5rem; margin-bottom:6px; }
.roza-auth-sub{ font-size:.86rem; color:var(--ink-500); margin-bottom:24px; }
.roza-auth-form{ display:flex; flex-direction:column; gap:16px; text-align:left; }
.roza-auth-form label{ font-size:.78rem; font-weight:600; color:var(--ink-700); display:flex; flex-direction:column; gap:6px; text-transform:uppercase; letter-spacing:.03em; }
.roza-auth-form input[type=text], .roza-auth-form input[type=password]{ font-weight:400; text-transform:none; letter-spacing:normal; padding:12px 14px; border-radius:var(--radius-control); border:var(--border-rose); background:var(--vanilla-deep); font-size:.92rem; color:var(--ink-900); }
.roza-pw-wrap{ position:relative; display:flex; }
.roza-pw-wrap input{ flex:1; }
.roza-pw-toggle{ position:absolute; right:10px; top:50%; transform:translateY(-50%); background:none; border:none; font-size:.72rem; color:var(--rose-dust-700); font-weight:600; }
.roza-auth-submit{ width:100%; margin-top:6px; }
.roza-auth-link{ display:block; margin-top:20px; font-size:.82rem; color:var(--ink-500); }
.roza-auth-error{ background:#fbe9e9; color:#96394f; border:1px solid #f0c6c6; border-radius:var(--radius-control); padding:10px 14px; font-size:.82rem; margin-bottom:16px; text-align:left; }
.roza-auth-success{ background:#e8f3ec; color:#2e6b46; border:1px solid #bfe2cc; border-radius:var(--radius-control); padding:10px 14px; font-size:.82rem; margin-bottom:4px; text-align:left; }
/* ============================================================
   ROZA PORTAL — SaaS shell (topbar + collapsible sidebar + bottom nav)
   ============================================================ */
.roza-portal{ background:var(--vanilla-deep); min-height:100vh; }

.roza-topbar{
  display:flex; align-items:center; gap:16px; height:60px; padding:0 20px;
  background:var(--white); border-bottom:1px solid var(--rose-100); position:sticky; top:0; z-index:50;
}
.roza-sidebar-toggle{ background:none; border:none; font-size:1.2rem; color:var(--ink-700); cursor:pointer; padding:6px; }
.roza-topbar-brand{ font-family:var(--font-serif); font-weight:600; font-size:1.05rem; color:var(--rose-700); white-space:nowrap; }
.roza-topbar-search{ flex:1; max-width:420px; display:flex; align-items:center; gap:8px; background:var(--vanilla-deep); border:1px solid var(--rose-100); border-radius:var(--radius-control); padding:8px 14px; }
.roza-topbar-search .icon{ width:16px; height:16px; color:var(--ink-500); flex:none; }
.roza-topbar-search input{ border:none; background:none; outline:none; font-size:.84rem; width:100%; color:var(--ink-900); }
.roza-topbar-actions{ margin-left:auto; display:flex; align-items:center; gap:16px; }
.roza-topbar-profile{ display:flex; align-items:center; gap:10px; font-size:.84rem; color:var(--ink-700); }
.roza-topbar-logout{ font-size:.76rem; color:var(--rose-dust-700); border:1px solid var(--rose-dust-700); padding:5px 12px; border-radius:var(--radius-control); }

.roza-portal-body{ display:grid; grid-template-columns:220px 1fr; min-height:calc(100vh - 60px); transition:grid-template-columns .2s ease; }
.roza-portal-body.roza-sidebar-collapsed{ grid-template-columns:64px 1fr; }
.roza-portal-body.roza-sidebar-collapsed .roza-sidebar li a span{ display:none; }

.roza-sidebar{ background:var(--ganache-700); overflow:hidden; }
.roza-sidebar nav ul{ list-style:none; margin:0; padding:16px 0; }
.roza-sidebar li a{
  display:flex; align-items:center; gap:14px; padding:12px 22px; color:rgba(253,250,243,.78);
  font-size:.86rem; font-weight:500; white-space:nowrap; transition:background .15s, color .15s;
}
.roza-sidebar li a .icon{ width:18px; height:18px; flex:none; }
.roza-sidebar li a:hover{ background:rgba(255,255,255,.06); color:var(--vanilla); }
.roza-sidebar li.active a{ background:var(--rose-dust-700); color:var(--vanilla); }

.roza-bottom-nav{ display:none; }

.roza-workspace{ padding:36px 40px; max-width:1200px; }
.roza-workspace h1{ font-size:1.55rem; margin-bottom:6px; }
.roza-workspace h2{ font-size:1.1rem; }
.roza-workspace h3{ font-size:.88rem; text-transform:uppercase; letter-spacing:.03em; color:var(--ink-700); margin:20px 0 8px; }
.roza-workspace h3:first-child{ margin-top:0; }

.roza-card{ background:var(--white); border:1px solid var(--rose-100); border-radius:var(--radius-md); box-shadow:0 1px 3px rgba(74,50,34,.04); padding:20px 24px; }
.roza-card h3{ margin-top:0; }

.roza-quick-actions-row{ display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }
.roza-quick-action{ display:flex; align-items:center; gap:8px; padding:12px 18px; background:var(--white); border:1px solid var(--rose-100); border-radius:var(--radius-control); font-size:.84rem; color:var(--ink-700); font-weight:500; }
.roza-quick-action:hover{ border-color:var(--gold-500); color:var(--rose-700); }
.roza-quick-action .icon{ width:16px; height:16px; color:var(--rose-dust-700); }

.roza-order-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:8px; flex-wrap:wrap; }
.roza-order-head h1{ margin-bottom:8px; }
.roza-order-head-actions{ display:flex; align-items:center; gap:10px; }
.roza-status-pill-lg{ font-size:.8rem; padding:6px 14px; }
.roza-status-pill .icon{ width:12px; height:12px; }

.roza-more-menu{ position:relative; }
.roza-more-menu-btn{ width:40px; height:40px; border:1px solid var(--rose-100); border-radius:var(--radius-control); background:var(--white); font-size:1rem; letter-spacing:2px; color:var(--ink-700); }
.roza-more-menu-list{ display:none; position:absolute; right:0; top:calc(100% + 6px); background:var(--white); border:1px solid var(--rose-100); border-radius:var(--radius-control); box-shadow:0 6px 20px rgba(74,50,34,.1); min-width:160px; z-index:20; }
.roza-more-menu.open .roza-more-menu-list{ display:block; }
.roza-more-menu-list button{ width:100%; text-align:left; padding:10px 16px; background:none; border:none; font-size:.82rem; color:var(--rose-700); }
.roza-more-menu-list button:hover{ background:var(--vanilla-deep); }

.roza-contact-actions{ display:flex; gap:10px; margin-bottom:8px; }

.roza-invite-form{ display:flex; gap:14px; flex-wrap:wrap; align-items:flex-end; background:var(--white); border:1px solid var(--rose-100); border-radius:var(--radius-md); padding:20px; }
.roza-invite-form label{ display:flex; flex-direction:column; gap:6px; font-size:.76rem; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--ink-700); }
.roza-invite-form input, .roza-invite-form select{ padding:9px 12px; border-radius:var(--radius-control); border:var(--border-rose); background:var(--vanilla-deep); font-size:.85rem; font-weight:400; text-transform:none; letter-spacing:normal; }

.roza-b2b-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px; }
.roza-b2b-card{ background:var(--white); border:1px solid var(--rose-100); border-radius:var(--radius-md); padding:16px; display:flex; flex-direction:column; gap:8px; }
.roza-b2b-thumb{ aspect-ratio:1/1; overflow:hidden; border-radius:var(--radius-control); }
.roza-b2b-info h4{ font-size:.9rem; margin:0; }
.roza-b2b-price{ font-weight:600; color:var(--rose-700); }
.roza-b2b-add{ display:flex; gap:8px; }
.roza-qty-stepper{ width:56px; padding:8px; border-radius:var(--radius-control); border:var(--border-rose); text-align:center; }

.roza-order-cards{ display:flex; flex-direction:column; gap:10px; }
.roza-order-card{ display:flex; justify-content:space-between; align-items:center; background:var(--white); border:1px solid var(--rose-100); border-radius:var(--radius-md); padding:16px 20px; }
.roza-order-card-info{ display:flex; flex-direction:column; gap:4px; font-size:.84rem; }
.roza-order-card-total{ font-weight:600; color:var(--rose-700); }

.roza-simple-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.roza-simple-list li{ background:var(--white); border:1px solid var(--rose-100); border-radius:var(--radius-control); padding:10px 16px; font-size:.86rem; }
.roza-pagination{ display:flex; gap:16px; margin-top:16px; font-size:.84rem; }

@media (max-width:900px){
  .roza-portal-body{ grid-template-columns:1fr; padding-bottom:64px; }
  .roza-sidebar{ display:none; }
  .roza-sidebar-toggle{ display:none; }
  .roza-topbar-search{ display:none; }
  .roza-workspace{ padding:20px; }
  .roza-bottom-nav{
    display:flex; position:fixed; bottom:0; left:0; right:0; background:var(--white);
    border-top:1px solid var(--rose-100); z-index:50; padding:6px 4px;
  }
  .roza-bottom-nav a{ flex:1; display:flex; flex-direction:column; align-items:center; gap:2px; padding:6px 2px; font-size:.62rem; color:var(--ink-500); }
  .roza-bottom-nav a .icon{ width:20px; height:20px; }
  .roza-bottom-nav a.active{ color:var(--rose-700); }
  .roza-order-detail-grid{ grid-template-columns:1fr; }
  .roza-order-head{ flex-direction:column; align-items:stretch; }
}
.roza-profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:10px;}
.roza-profile-grid label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--ganache-700,#4a3428);}
@media (max-width:640px){.roza-profile-grid{grid-template-columns:1fr;}}


/* ---------- Roza Portal v2: Bienvenido-inspired compact nav + Locations ---------- */
:root{
  --bordeaux-700:#7c2233;
  --bordeaux-100:#f7e3e6;
}

.roza-sidebar-mark{
  width:34px; height:34px; margin:16px auto 4px; border-radius:var(--radius-control);
  background:var(--gold-500); color:var(--ganache-700); font-family:var(--font-serif); font-weight:700;
  display:flex; align-items:center; justify-content:center; font-size:1rem;
}
.roza-portal-body.roza-sidebar-collapsed .roza-sidebar-mark{ margin-left:auto; margin-right:auto; }

.roza-nav-divider{ height:1px; background:rgba(253,250,243,.14); margin:10px 18px; list-style:none; }
.roza-portal-body.roza-sidebar-collapsed .roza-nav-divider{ margin:10px 14px; }

.roza-sidebar-cta{
  display:block; margin:14px 18px; text-align:center; padding:10px 14px; font-size:.82rem;
}
.roza-portal-body.roza-sidebar-collapsed .roza-sidebar-cta{ display:none; }

@media (min-width:901px){ .roza-sidebar{ display:flex; flex-direction:column; } .roza-sidebar nav{ flex:1; } }
.roza-sidebar-bottom{
  border-top:1px solid rgba(253,250,243,.14); padding:12px 0 16px;
  display:flex; flex-direction:column; gap:2px;
}
.roza-sidebar-util{
  display:flex; align-items:center; gap:14px; padding:10px 22px; color:rgba(253,250,243,.72);
  font-size:.8rem; text-decoration:none; position:relative;
}
.roza-sidebar-util:hover{ color:var(--gold-300); }
.roza-notif-badge{
  position:absolute; left:34px; top:6px; background:var(--gold-500); color:var(--ganache-700);
  font-size:.62rem; font-weight:700; border-radius:20px; padding:1px 6px; line-height:1.3;
}
.roza-sidebar-user{ padding:10px 22px; display:flex; flex-direction:column; gap:2px; }
.roza-sidebar-user span{ color:var(--vanilla); font-size:.8rem; font-weight:600; }
.roza-sidebar-user a{ color:rgba(253,250,243,.6); font-size:.74rem; }
.roza-sidebar-user a:hover{ color:var(--gold-300); }
.roza-portal-body.roza-sidebar-collapsed .roza-sidebar-util span:not(.roza-notif-badge),
.roza-portal-body.roza-sidebar-collapsed .roza-sidebar-user{ display:none; }

.roza-mobile-cta{
  position:fixed; right:16px; bottom:76px; z-index:60; padding:12px 18px; font-size:.8rem;
  box-shadow:var(--shadow-md); display:none;
}
@media (max-width:900px){ .roza-mobile-cta{ display:inline-block; } }

.roza-loc-head h1{ margin-bottom:2px; }

/* Status pills — restrained palette per spec: neutral default, gold = in progress, mint = ready/positive, bordeaux = cancelled/failed */
.roza-status-pill.roza-pill-neutral{ background:var(--vanilla-deep); border-color:var(--rose-200); color:var(--ink-700); }
.roza-status-pill.roza-pill-gold{ background:var(--gold-100); border-color:var(--gold-500); color:var(--gold-600); }
.roza-status-pill.roza-pill-mint{ background:var(--mint-100); border-color:var(--mint-600); color:#3f6b5a; }
.roza-status-pill.roza-pill-bordeaux{ background:var(--bordeaux-100); border-color:var(--bordeaux-700); color:var(--bordeaux-700); }

.roza-simple-row{
  background:var(--white); border:1px solid var(--rose-100); border-radius:var(--radius-control);
  padding:10px 16px; font-size:.86rem; display:flex; justify-content:space-between; align-items:center; gap:12px;
}

.roza-timeline{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0; }
.roza-timeline li{
  position:relative; padding:8px 0 8px 26px; font-size:.84rem; color:var(--ink-500); border-left:2px solid var(--rose-200);
}
.roza-timeline li:last-child{ border-left-color:transparent; }
.roza-timeline li::before{
  content:''; position:absolute; left:-6px; top:12px; width:10px; height:10px; border-radius:50%;
  background:var(--vanilla); border:2px solid var(--rose-200);
}
.roza-timeline li.done{ color:var(--ganache-700); font-weight:600; }
.roza-timeline li.done::before{ background:var(--gold-500); border-color:var(--gold-500); }
.roza-timeline li .roza-dash-sub{ font-weight:400; display:block; margin-top:2px; }

/* Compact sidebar per Bienvenido reference: slightly narrower than the original */
@media (min-width:901px){ .roza-portal-body{ grid-template-columns:204px 1fr; } }

/* ---------- Simple Order Wizard ---------- */
.pd-simple-panel{ margin-top:18px; }
.pd-simple-panel .pd-note{ margin-top:10px; }

.roza-wizard-overlay{
  position:fixed; inset:0; z-index:900; background:rgba(74,50,34,.45);
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.roza-wizard-overlay[hidden]{ display:none; }
.roza-wizard-modal{
  background:var(--vanilla); width:100%; max-width:560px; max-height:90vh;
  border-radius:var(--radius-md); border:1px solid var(--rose-200); box-shadow:var(--shadow-lg);
  display:flex; flex-direction:column; overflow:hidden;
}
.roza-wizard-head{
  display:flex; align-items:center; justify-content:space-between; padding:14px 18px;
  border-bottom:1px solid var(--rose-100);
}
.roza-wizard-back, .roza-wizard-close{
  background:none; border:none; font-size:1.1rem; color:var(--ganache-700); cursor:pointer; padding:4px 8px;
}
.roza-wizard-back:hover, .roza-wizard-close:hover{ color:var(--rose-dust-700); }
.roza-wizard-step-label{ font-size:.74rem; letter-spacing:.06em; color:var(--ink-500); font-weight:600; }
.roza-wizard-progress{ height:3px; background:var(--rose-100); }
.roza-wizard-progress-bar{ height:100%; background:var(--gold-500); transition:width .25s ease; }
.roza-wizard-body{ padding:22px 20px; overflow-y:auto; flex:1; }
.roza-wizard-title{ font-family:var(--font-serif); font-size:1.25rem; color:var(--rose-900); margin:0 0 16px; }
.roza-wizard-loading, .roza-wizard-error{ text-align:center; color:var(--ink-500); }
.roza-wizard-error{ color:var(--bordeaux-700); }

.roza-wizard-footer{
  display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 20px;
  border-top:1px solid var(--rose-100); background:var(--vanilla-deep);
}
.roza-wizard-total{ display:flex; flex-direction:column; line-height:1.2; }
.roza-wizard-total-label{ font-size:.66rem; letter-spacing:.08em; color:var(--ink-500); }
.roza-wizard-total-value{ font-family:var(--font-serif); font-size:1.3rem; color:var(--rose-900); font-weight:700; }
.roza-wizard-continue{ min-width:160px; }
.roza-wizard-continue:disabled{ opacity:.45; cursor:not-allowed; }

.roza-wizard-cards{ display:grid; grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:12px; }
.roza-wizard-cards--wide{ grid-template-columns:1fr; }
.roza-wizard-card{
  display:flex; flex-direction:column; align-items:center; gap:4px; padding:16px 10px; text-align:center;
  background:var(--white); border:1px solid var(--rose-200); border-radius:var(--radius-control);
  cursor:pointer; transition:border-color var(--transition-ui), background var(--transition-ui);
}
.roza-wizard-card:hover{ border-color:var(--gold-500); }
.roza-wizard-card.selected{ border-color:var(--rose-dust-700); background:var(--rose-100); }
.roza-wizard-card strong{ font-size:.92rem; color:var(--ganache-700); }
.roza-wizard-card span{ font-size:.8rem; color:var(--rose-dust-700); font-weight:600; }
.roza-wizard-card small{ font-size:.7rem; color:var(--ink-500); }
.roza-wizard-card--wide{ flex-direction:row; justify-content:flex-start; text-align:left; padding:16px; font-weight:600; color:var(--ganache-700); }
.roza-wizard-card--slot{ padding:14px 8px; }

.roza-wizard-sublist{ margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.roza-wizard-subrow{
  display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px;
  border:1px solid var(--rose-200); border-radius:var(--radius-control); cursor:pointer; font-size:.84rem;
}
.roza-wizard-subrow.selected, .roza-wizard-subrow:has(input:checked){ border-color:var(--rose-dust-700); background:var(--rose-100); }
.roza-wizard-subrow input{ margin-right:10px; }

.roza-wizard-field{ margin-bottom:20px; }
.roza-wizard-toggle{ display:flex; gap:10px; margin:8px 0; }
.roza-wizard-chip{
  padding:8px 20px; border:1px solid var(--rose-200); border-radius:20px; background:var(--white);
  cursor:pointer; font-size:.82rem; color:var(--ganache-700);
}
.roza-wizard-chip.selected{ border-color:var(--rose-dust-700); background:var(--rose-100); color:var(--rose-900); font-weight:600; }
.roza-wizard-charcount{ display:block; text-align:right; color:var(--ink-500); font-size:.7rem; margin-top:2px; }

.roza-wizard-review-table{ width:100%; border-collapse:collapse; margin-bottom:14px; }
.roza-wizard-review-table td{ padding:6px 0; font-size:.86rem; border-bottom:1px solid var(--rose-100); }
.roza-wizard-review-table td:first-child{ color:var(--ink-500); width:45%; }
.roza-wizard-review-table td:last-child{ text-align:right; color:var(--ganache-700); font-weight:600; }
.roza-wizard-review-total{ text-align:right; font-family:var(--font-serif); font-size:1.15rem; color:var(--rose-900); margin-bottom:16px; }
.roza-wizard-edit-links{ display:flex; flex-wrap:wrap; gap:8px; }
.roza-wizard-success{ text-align:center; padding:20px 0; }

@media (max-width:640px){
  .roza-wizard-overlay{ padding:0; }
  .roza-wizard-modal{ max-width:none; width:100%; height:100%; max-height:none; border-radius:0; }
}

/* ---------- Social login ---------- */
.roza-social-login{ display:flex; flex-direction:column; gap:10px; align-items:center; margin-bottom:16px; }
.roza-social-btn{ width:100%; max-width:320px; text-align:center; }
.roza-social-btn[disabled]{ opacity:.45; cursor:not-allowed; }
.roza-auth-divider{ display:flex; align-items:center; gap:12px; margin:18px 0; color:var(--ink-500); font-size:.78rem; }
.roza-auth-divider::before, .roza-auth-divider::after{ content:''; flex:1; height:1px; background:var(--rose-100); }

.roza-connected-row{ display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--rose-100); font-size:.86rem; }
.roza-connected-row:last-child{ border-bottom:none; }
.roza-connected-status{ font-weight:600; }
.roza-connected-status.connected{ color:#2a7a3b; }
.roza-connected-status.not-connected{ color:var(--ink-500); }