@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@600;700;800&display=swap');

[x-cloak] { display: none !important; }

body { -webkit-font-smoothing: antialiased; }

.product-card:hover img { transform: scale(1.05); }

.product-card img { transition: transform 0.5s; }

.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

.prose h2 { font-size: 1.5rem; font-weight: 700; margin: 1.5rem 0px 0.75rem; }

.prose h3 { font-size: 1.25rem; font-weight: 600; margin: 1.25rem 0px 0.5rem; }

.prose p { margin: 0.75rem 0px; line-height: 1.75; }

.prose ul { list-style: disc; padding-left: 1.25rem; margin: 0.75rem 0px; }

.prose a { color: rgb(225, 29, 72); text-decoration: underline; }

.hero-grad { background: radial-gradient(1200px 400px at 20% 0%, rgb(254, 205, 211) 0%, transparent 60%), radial-gradient(1000px 400px at 80% 0%, rgb(252, 231, 243) 0%, transparent 60%), rgb(255, 255, 255); }

@media (max-width: 767px) {
  .max-w-7xl.px-4, .max-w-6xl.px-4, .max-w-5xl.px-4, .max-w-4xl.px-4, .max-w-3xl.px-4, .max-w-2xl.px-4 { padding-left: 12px !important; padding-right: 12px !important; }
  .rounded-2xl.p-5, .rounded-2xl.p-6, .rounded-xl.p-5, .rounded-xl.p-6 { padding: 14px !important; }
  .rounded-2xl.p-8, .rounded-xl.p-8 { padding: 16px !important; }
  .py-8 { padding-top: 20px !important; padding-bottom: 20px !important; }
  .py-10 { padding-top: 24px !important; padding-bottom: 24px !important; }
  .py-12 { padding-top: 28px !important; padding-bottom: 28px !important; }
  .py-16 { padding-top: 32px !important; padding-bottom: 32px !important; }
  h1.text-3xl, h1.text-4xl { font-size: 1.5rem !important; line-height: 2rem !important; }
  h2.text-2xl, h2.text-3xl { font-size: 1.25rem !important; line-height: 1.75rem !important; }
  .product-card .p-4 { padding: 10px !important; }
  body { padding-bottom: env(safe-area-inset-bottom); }
  button, .btn, [role="button"] { min-height: 40px; }
  input, select, textarea { font-size: 16px !important; }
  table { min-width: 100%; }
  html, body { overflow-x: hidden; max-width: 100vw; }
}

@media (max-width: 380px) {
  .max-w-7xl.px-4, .max-w-6xl.px-4, .max-w-5xl.px-4, .max-w-4xl.px-4, .max-w-3xl.px-4, .max-w-2xl.px-4 { padding-left: 10px !important; padding-right: 10px !important; }
  .text-3xl { font-size: 1.25rem !important; }
  .grid.grid-cols-2 { gap: 8px; }
}

/* FioreMarket responsive system */
:root {
  --fm-rose: #b84f69;
  --fm-rose-deep: #963c56;
  --fm-rose-pale: #fbf0f2;
  --fm-ink: #30272b;
  --fm-muted: #766c70;
  --fm-line: #eee2e5;
  --fm-paper: #fffdfb;
}
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', system-ui, sans-serif; color: var(--fm-ink); background: var(--fm-paper); }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid rgba(184,79,105,.28); outline-offset: 2px;
}
img { max-width: 100%; }
.prose { overflow-wrap: anywhere; }
.hero-grad { background: radial-gradient(900px 380px at 12% 0%, #f8dfe5 0%, transparent 65%), radial-gradient(800px 360px at 90% 5%, #f8edf0 0%, transparent 62%), #fffdfb; }

@media (max-width: 767px) {
  body { padding-bottom: env(safe-area-inset-bottom) !important; }
  .max-w-7xl.px-4, .max-w-6xl.px-4, .max-w-5xl.px-4, .max-w-4xl.px-4,
  .max-w-3xl.px-4, .max-w-2xl.px-4 { padding-left: 14px !important; padding-right: 14px !important; }
  .product-detail-shell > nav { display:flex; flex-wrap:wrap; gap:5px 7px; font-size:12px; line-height:1.45; margin-bottom:16px; }
  .product-detail-shell > nav > span:last-child { min-width:0; flex:1 1 100%; overflow-wrap:anywhere; font-weight:600; color:var(--fm-ink); }
  .product-detail-shell > nav > span:nth-child(2), .product-detail-shell > nav > span:nth-child(4) { display:none; }
  .product-detail-shell .grid.grid-cols-2 { gap:10px; }
  .product-detail-shell .flex.gap-3.mb-4.text-xs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .product-detail-shell .flex.gap-3.mb-4.text-xs > span { align-items:flex-start; line-height:1.35; }
  .product-detail-shell .grid.grid-cols-2.gap-3 { grid-template-columns:1fr; }
  .product-detail-shell #orderForm > div.flex.items-center.gap-3.pt-1 { align-items:stretch; flex-wrap:wrap; }
  .product-detail-shell #orderForm > div.flex.items-center.gap-3.pt-1 > button[type=submit] { flex-basis:100%; min-height:48px; }
  .product-detail-shell .order-field { min-height:44px; font-size:16px !important; }
  .product-detail-shell .aspect-square { border-radius:16px; }
  .product-detail-shell .trust-bottom, .product-detail-shell .grid.grid-cols-3.gap-3 { gap:8px; }
  .product-card { border-radius:14px; }
  .product-card > a { padding:10px !important; }
  .product-card > a > div:first-child { font-size:13px; min-height:2.5rem; }
  .product-card > a > div:last-child { align-items:flex-start; flex-direction:column; gap:6px; }
  .product-card .text-brand-600.font-extrabold { font-size:15px; }
  .product-card [class*="absolute right-2 bottom-2"] { gap:5px; }
  .product-card [class*="absolute right-2 bottom-2"] button { width:36px; height:36px; }
  .admin-tabs { overflow-x:auto; scrollbar-width:thin; }
  .admin-tabs .admin-tab { white-space:nowrap; flex:0 0 auto; }
  .admin-list-row, .admin-row { min-width:0; }
  nav.flex.items-center.gap-1.text-sm.text-gray-500 { flex-wrap:wrap; align-items:flex-start; line-height:1.45; row-gap:5px; }
  nav.flex.items-center.gap-1.text-sm.text-gray-500 > span:last-child { flex:1 1 100%; min-width:0; overflow-wrap:anywhere; }
  .max-w-4xl .flex.items-center.justify-between.pt-3.border-t { align-items:flex-start; flex-direction:column; }
  .max-w-4xl .flex.items-center.justify-between.pt-3.border-t > div { width:100%; justify-content:space-between; flex-wrap:wrap; }
  .max-w-3xl .flex.items-center.justify-center.gap-2.mb-8 { gap:5px; font-size:10px; }
  .max-w-3xl .flex.items-center.justify-center.gap-2.mb-8 > span:nth-child(2),
  .max-w-3xl .flex.items-center.justify-center.gap-2.mb-8 > span:nth-child(4) { width:clamp(10px,5vw,28px); }
  .fixed.bottom-0.left-0.right-0 { padding-bottom:env(safe-area-inset-bottom); }
}
@media(max-width:390px) {
  .product-detail-shell { padding-top:14px !important; }
  .product-detail-shell .text-3xl { font-size:1.65rem !important; line-height:1.2 !important; }
  .product-card .text-xs { font-size:10px; }
}
@media(max-width:340px) {
  .store-header-main { gap:8px !important; padding-left:10px !important; padding-right:10px !important; }
  .store-header-main > button { margin-left:0 !important; padding:6px !important; }
  .store-header-main > a { min-width:0; flex:1 1 auto; }
  .store-header-main > a img { height:46px !important; max-width:calc(100vw - 118px) !important; }
  .store-header-main > nav { flex:0 0 auto; }
  .store-header-main > nav > a { padding:6px !important; }
}
@media(max-width:767px) {
  /* Keep fixed utilities above the persistent bottom navigation. */
  body > a.fixed[title="WhatsApp"] { bottom:calc(82px + env(safe-area-inset-bottom)) !important; right:12px !important; width:48px !important; height:48px !important; }
  body .fixed.bottom-20.md\:bottom-4 { bottom:calc(86px + env(safe-area-inset-bottom)) !important; }
  body nav.fixed.bottom-0 { min-height:64px; z-index:35; padding-top:5px; background:rgba(255,253,251,.97); border-color:var(--fm-line); box-shadow:0 -6px 20px rgba(87,48,58,.07); }
  body nav.fixed.bottom-0 a { min-height:54px; padding:5px 2px; color:#71666a; font-size:10px; }
  body nav.fixed.bottom-0 a:active { color:var(--fm-rose); }
  body .fixed.bottom-20.md\:bottom-4.z-40 { left:10px !important; right:10px !important; bottom:calc(76px + env(safe-area-inset-bottom)) !important; padding:14px !important; max-height:min(44dvh,330px); overflow:auto; border-color:var(--fm-line); box-shadow:0 14px 45px rgba(58,35,42,.18); }
  body .fixed.bottom-20.md\:bottom-4.z-40 .grid.grid-cols-3 { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  body .fixed.bottom-20.md\:bottom-4.z-40 .grid.grid-cols-3 button { min-width:0; min-height:42px; padding:8px 3px !important; font-size:11px !important; white-space:nowrap; }
  body .fixed.bottom-20.md\:bottom-4.z-40 .grid.grid-cols-3 button:first-child { grid-column:auto; }
}
@media (max-width: 767px) {
  .product-detail-shell .grid.grid-cols-1.lg\:grid-cols-2 { gap:22px; }
  .product-detail-shell .rounded-xl.border.border-brand-200 > button { min-height:58px; }
  .product-detail-shell details > summary { min-height:48px; display:flex; align-items:center; }
  .product-detail-shell .flex.items-center.justify-between { gap:10px; }
  .product-detail-shell .grid.grid-cols-3 > div { overflow-wrap:anywhere; }
  .product-detail-shell .fixed.inset-0.z-\[100\] button { width:44px; height:44px; }
  .product-detail-shell .fixed.inset-0.z-\[100\] img { max-width:82vw; }
  .menu-toggle, .topbar button, .sidebar .nav-item { min-height:44px; }
  .max-w-2xl form.flex.gap-2 { flex-direction:column; }
  .max-w-2xl form.flex.gap-2 button { width:100%; }
  table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
}