/* Public boutique theme. The management interface keeps its own presentation.
   System fonts avoid extra font requests. */
.boutique-public {
  --paper: #ffffff;
  --soft: #f7f5f6;
  --rose: #f9edf2;
  --ink: #333136;
  --muted: #6e6870;
  --wine: #95506d;
  --line: #e9e3e7;
  background: var(--paper);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

.boutique-public .site-header {
  max-width: 1440px;
  padding: 26px 5% 24px;
  border-bottom: 0;
}
.boutique-public .site-header .brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--ink);
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  font-weight: 400;
  font-size: clamp(2rem, 3vw, 2.65rem);
  letter-spacing: -.035em;
  line-height: 1.1;
}
.boutique-public .site-header nav { gap: 32px; font-size: .875rem; }
.boutique-public .site-header nav a[aria-current="page"] { color: var(--wine); border-color: var(--wine); }
.boutique-public .catalog-sections {
  padding: 0 max(5%, calc((100vw - 1296px) / 2));
  gap: 36px;
  justify-content: flex-start;
  align-items: stretch;
  background: #fcf5f8;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: .875rem;
}
.boutique-public .catalog-sections a { padding: 17px 0 14px; border-bottom-width: 2px; }
.boutique-public .catalog-sections a:last-child { margin-left: auto; color: var(--ink); }
.boutique-public .catalog-sections a[aria-current="true"] { color: var(--ink); border-bottom-color: #d794af; }
.boutique-public .catalog { max-width: 1440px; padding: 34px 5% 64px; }
.boutique-public .intro {
  position: relative;
  padding: 0 0 25px;
  margin-bottom: 26px;
  border-bottom: 1px solid var(--line);
}
.boutique-public .intro h1 {
  font-size: clamp(2.3rem, 4.3vw, 3.65rem);
  font-style: italic;
  letter-spacing: -.045em;
  line-height: 1.12;
  color: var(--ink);
}
.boutique-public .intro > p { font-size: .9rem; line-height: 1.6; margin-top: 12px; max-width: 760px; }
.boutique-public .catalog-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 36px; }
.boutique-public .sidebar { padding-top: 0; }
.boutique-public .sidebar h2 {
  font: 600 .875rem/1.4 Arial, Helvetica, sans-serif;
  color: var(--ink);
  margin: 0 0 15px;
}
.boutique-public .catalog-filter { padding: 14px 0; }
.boutique-public .category-filter { border-top: 0; padding-top: 0; }
.boutique-public .category-tabs { gap: 16px; }
.boutique-public .category-tabs button { flex: 1; font-size: .8rem; min-height: 40px; padding: 8px 0; }
.boutique-public .category-tabs button[aria-selected="true"] { color: var(--ink); border-color: #d794af; }
.boutique-public .categories { gap: 2px; }
.boutique-public .category {
  padding: 10px 11px;
  font-size: .85rem;
  border-radius: 0;
  min-height: 40px;
  transition: background-color .15s;
}
.boutique-public .category.active { background: var(--rose); color: var(--ink); box-shadow: inset 3px 0 #d794af; }
.boutique-public .category:hover { background: #fcf5f8; }
.boutique-public .category small { color: var(--muted); font-weight: 400; font-size: .72rem; }
.boutique-public .catalog-filter summary { font-size: .85rem; }
.boutique-public .toolbar { gap: 22px; align-items: center; }
.boutique-public .search { border: 0; border-bottom: 1px solid #c8bec5; padding: 0 0 0 4px; min-height: 44px; }
.boutique-public .search span { font-size: 1.6rem; color: var(--ink); }
.boutique-public .search input { font-size: .875rem; padding: 10px 0; }
.boutique-public input::placeholder { color: var(--muted); opacity: 1; }
.boutique-public select { border-radius: 0; font-size: .8125rem; }
.boutique-public .sort { font-size: .75rem; }
.boutique-public .results-heading { min-height: 46px; font-size: .75rem; }
.boutique-public .product-grid { gap: 30px 22px; }
.boutique-public .product-image { padding: 0; background: var(--soft); border: 0; }
.boutique-public .product-image img { height: 100%; object-fit: cover; }
.boutique-public .product-open:hover img { transform: scale(1.018); }
.boutique-public .view-piece { background: var(--paper); color: var(--wine); border: 1px solid var(--line); bottom: 16px; left: 16px; right: 16px; }
.boutique-public .product-meta { margin-top: 13px; font-size: .66rem; letter-spacing: .07em; text-transform: uppercase; }
.boutique-public .product-meta strong { font-size: .875rem; letter-spacing: 0; font-weight: 500; text-transform: none; }
.boutique-public .product-card h2 { font: 500 1rem/1.5 Arial, Helvetica, sans-serif; letter-spacing: 0; margin: 7px 0 7px; }
.boutique-public .availability { font-size: .74rem; line-height: 1.6; color: var(--muted); }
.boutique-public .solid-button,.boutique-public .more-button { font-size: .875rem; padding: 14px 23px; }
.boutique-public .solid-button { background: var(--ink); border-color: var(--ink); }
.boutique-public .solid-button:hover { background: #51434c; border-color: #51434c; }
.boutique-public .more-button { border-color: var(--ink); color: var(--ink); }
.boutique-public .more-button:hover { background: var(--rose); }
.boutique-public .instagram-section { padding-top: 42px; border-top: 1px solid var(--line); }
.boutique-public .instagram-section h2 { font: 400 1.65rem/1.5 Georgia, serif; color: var(--ink); }
.boutique-public .instagram-section h2 a { font-style: normal; }
.boutique-public .instagram-track { gap: 12px; }
.boutique-public .shop {
  background: #faedf3;
  border-top: 1px solid #ead9e2;
  padding: 38px max(5%, calc((100vw - 1296px) / 2));
  gap: 44px;
}
html:has(.boutique-public #botiga:target) { scroll-padding-top: 0; }
.boutique-public .shop h2 { color: var(--ink); font: 600 1rem/1.5 Arial, Helvetica, sans-serif; margin-bottom: 18px; }
.boutique-public .shop p,.boutique-public .shop a { font-size: .875rem; color: #575159; }
.boutique-public .shop strong { font-weight: 600; color: #333136; }
.boutique-public .shop a { text-decoration-thickness: 1px; text-decoration-color: #c28aa3; }
.boutique-public .legal-footer { padding: 20px 5%; border-top: 1px solid #ead9e2; background: #faedf3; }
.boutique-public .legal-footer nav { font-size: .7rem; }
.boutique-public .legal-footer a,.boutique-public .legal-footer button { color: #655c63; }
.boutique-public .product-page { padding-top: 30px; padding-bottom: 55px; }
.boutique-public .product-page .product-photos img { padding: 10px; background: #ffffff; border: 1px solid var(--line); }
.boutique-public .product-page h1 { color: var(--ink); font-style: normal; }
.boutique-public .product-page .back-link { font-size: .8rem; color: var(--ink); }
.boutique-public .product-page .detail-copy h2 { color: var(--ink); font-size: .8125rem; }
.boutique-public .product-page .detail-copy p { font-size: .9375rem; }
.boutique-public .product-page .detail-copy .detail-price { font: 500 1.3rem Arial, Helvetica, sans-serif; border-bottom: 1px solid var(--line); padding-bottom: 17px; margin-top: 17px; }
.boutique-public .gift-page { gap: 60px; }
.boutique-public .about-page { max-width: 1000px; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.boutique-public .about-page h1,.boutique-public .gift-page h1,.boutique-public .legal-page h1 { color: var(--ink); font-style: normal; }
.boutique-public .about-page img { width: 100%; max-width: 240px; height: auto; position: static; justify-self: start; padding: 9px; border: 1px solid var(--line); background: #ffffff; }
.boutique-public .about-page > div { width: 100%; max-width: 780px; margin-inline: auto; }
.boutique-public .about-page p { color: var(--muted); }
.boutique-public .about-page > div > p:not(.eyebrow) { margin-block: 24px; }
.boutique-public .about-closing { display: flow-root; margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--line); }
.boutique-public .about-page .about-closing img { float: right; width: 160px; max-width: 30%; margin: 4px 0 12px 28px; padding: 0; border: 0; border-radius: 8px; }
.boutique-public .about-closing p:first-of-type { margin-top: 0; }
.boutique-public .about-closing p:last-child { margin-bottom: 0; }
.boutique-public .about-closing p:last-child:not(:first-of-type) { margin-top: 20px; color: var(--wine); font: italic 1.5rem/1.4 Georgia, serif; }
.boutique-public .about-catalog-link { margin-top: 20px; border-radius: 999px; padding: 14px 24px; background: var(--wine); }
@media (max-width: 600px) {
  .boutique-public .about-page .about-closing img { width: 108px; max-width: 32%; margin-left: 18px; margin-bottom: 12px; }
}

@media (min-width: 761px) {
  .boutique-public .about-page > div { min-width: 0; container-type: inline-size; }
  .boutique-public .about-page h1 {
    font-size: clamp(1.5rem, 3.3vw, 2.6rem);
    font-size: clamp(1.5rem, 8.5cqi, 3.2rem);
  }
}
.boutique-public .privacy-banner { border-radius: 0; border-top: 3px solid #d794af; box-shadow: 0 8px 36px #33313618; }
.boutique-public .privacy-banner h2,.boutique-public .privacy-dialog h2 { color: var(--wine); }
.boutique-public .privacy-dialog { border-top: 3px solid #d794af; }
@media (max-width: 1100px) {
  .boutique-public .catalog-layout { grid-template-columns: 165px minmax(0, 1fr); gap: 25px; }
  .boutique-public .product-grid { gap: 28px 16px; }
}
@media (max-width: 760px) {
  .boutique-public .site-header { padding: 23px 5% 18px; gap: 20px; }
  .boutique-public .site-header nav { gap: 18px; font-size: .8125rem; }
  .boutique-public .catalog-sections { gap: 25px; font-size: .8125rem; }
  .boutique-public .catalog-sections a { padding-top: 14px; padding-bottom: 12px; }
  .boutique-public .shop { gap: 28px; }
  .boutique-public .about-page,.boutique-public .gift-page { gap: 28px; }
}
@media (max-width: 600px) {
  .boutique-public .site-header { gap: 12px; padding: 17px 5% 10px; }
  .boutique-public .site-header .brand { font-size: 2.15rem; }
  .boutique-public .site-header nav { gap: 30px; justify-content: center; font-size: .8rem; }
  .boutique-public .catalog-sections { gap: 24px; justify-content: flex-start; scrollbar-width: thin; }
  .boutique-public .catalog-sections a { flex-shrink: 0; }
  .boutique-public .catalog-sections a:last-child { margin-left: 0; }
  .boutique-public .catalog { padding: 18px 5% 40px; }
  .boutique-public .intro { margin-bottom: 12px; padding-bottom: 14px; padding-right: 0; }
  .boutique-public .intro h1 { font-size: clamp(2.05rem, 8.5vw, 2.7rem); }
  .boutique-public .intro > p { font-size: .8125rem; margin-top: 9px; }
  .boutique-public .catalog-layout { display: block; }
  .boutique-public .category-tabs { gap: 25px; }
  .boutique-public .category-tabs button { flex: 0 1 auto; font-size: .9rem; padding: 0 2px 9px; min-height: 34px; }
  .boutique-public .sidebar > .catalog-filter { padding: 0 0 6px; }
  .boutique-public .category-filter .categories { flex-wrap: nowrap; overflow-x: auto; gap: 7px; padding-bottom: 6px; }
  .boutique-public .category-filter .category { white-space: nowrap; padding: 8px 11px; min-height: 36px; font-size: .75rem; border-color: var(--line); }
  .boutique-public .category.active { box-shadow: none; border-color: #d9a7bd; }
  .boutique-public .catalog-filter summary { font-size: .8rem; min-height: 26px; }
  .boutique-public .sidebar { margin-bottom: 8px; }
  .boutique-public .toolbar { gap: 13px; }
  .boutique-public .search input { font-size: .8125rem; }
  .boutique-public .sort select { max-width: 104px; font-size: .72rem; }
  .boutique-public .results-heading { min-height: 32px; }
  .boutique-public .product-grid { gap: 24px 12px; }
  .boutique-public .product-image { padding: 0; }
  .boutique-public .product-meta { font-size: .6rem; gap: 5px; margin-top: 10px; }
  .boutique-public .product-meta strong { font-size: .8125rem; }
  .boutique-public .product-card h2 { font-size: .9375rem; margin: 6px 0; }
  .boutique-public .availability { font-size: .7rem; }
  .boutique-public .instagram-section h2 { font-size: 1.3rem; }
  .boutique-public .shop { padding: 28px 6%; }
  .boutique-public .shop h2 { font-size: 1rem; margin-bottom: 11px; }
  .boutique-public .product-page { padding-top: 20px; }
  .boutique-public .product-page .product-photos img { padding: 7px; }
  .boutique-public .product-page .detail-copy .detail-price { margin-top: 12px; padding-bottom: 12px; }
}

/* Short feedback, without delaying navigation or hiding the product content. */
@media (prefers-reduced-motion: no-preference) {
  .boutique-public .solid-button,
  .boutique-public .more-button,
  .boutique-public .privacy-button,
  .boutique-public .text-button,
  .boutique-public .site-header nav a,
  .boutique-public .catalog-sections a,
  .boutique-public .category-tabs button,
  .boutique-public .category {
    transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
  }
  .boutique-public .catalog-sections a,
  .boutique-public .category-tabs button { position: relative; border-bottom-color: transparent; }
  .boutique-public .catalog-sections a[aria-current="true"],
  .boutique-public .category-tabs button[aria-selected="true"] { border-bottom-color: transparent; }
  .boutique-public .catalog-sections a::after,
  .boutique-public .category-tabs button::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: #d794af;
    transform: scaleX(0);
    opacity: 0;
    transition: transform 180ms ease-out, opacity 160ms ease;
    pointer-events: none;
  }
  .boutique-public .catalog-sections a[aria-current="true"]::after,
  .boutique-public .category-tabs button[aria-selected="true"]::after { transform: scaleX(1); opacity: 1; }
  .boutique-public .product-page .detail-layout { animation: boutique-enter 180ms ease-out; }
  @keyframes boutique-enter { from { opacity: .65; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }
}
@media (prefers-reduced-motion: reduce) {
  .boutique-public *, .boutique-public *::before, .boutique-public *::after { animation: none !important; transition: none !important; }
  .boutique-public .product-open:hover img { transform: none; }
}

/* Rounded category controls match the size tags, with inline counts. */
.boutique-public .category-filter .category-tabs{gap:4px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.boutique-public .category-filter .category-tabs button{flex:1;min-width:0;min-height:36px;padding:6px 3px;border:0;border-radius:7px;font-size:.75rem;line-height:1.4;color:var(--muted)}
.boutique-public .category-filter .category-tabs button::after{display:none}
.boutique-public .category-filter .category-tabs button[aria-selected="true"]{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px #33313614;font-weight:600}
.boutique-public .category-filter .categories{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;overflow:visible;margin:12px 0 0;padding:0 0 10px}
.boutique-public .category-filter .category:first-child{grid-column:1/-1}
.boutique-public .category-filter .category{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;width:100%;max-width:100%;min-width:0;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);box-shadow:none;color:var(--ink);font:inherit;font-size:.8125rem;line-height:1.4;text-align:center;white-space:normal;overflow-wrap:anywhere}
.boutique-public .category-filter .category span{min-width:0}
.boutique-public .category-filter .category small{display:inline;flex:0 0 auto;padding:0;background:none;color:var(--muted);font-size:.75rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.4}
.boutique-public .category-filter .category:hover{background:var(--soft);border-color:var(--wine)}
.boutique-public .category-filter .category[aria-pressed="true"]{background:var(--rose);border-color:var(--wine);box-shadow:inset 0 0 0 1px var(--wine);color:var(--wine);font-weight:600}
.boutique-public .category-filter .category[aria-pressed="true"] small{color:var(--wine)}
.boutique-public .category-filter .category:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
@media(max-width:600px){
  .boutique-public .category-filter .categories{grid-template-columns:repeat(2,minmax(0,1fr))}
  .boutique-public .category-filter .category-wide{grid-column:1/-1}
}
@media(min-width:601px){.boutique-public .catalog-layout{grid-template-columns:240px minmax(0,1fr);gap:20px}}

/* Two sorting controls live below the available sizes. */
.boutique-public .sort-filter{border-top:1px solid var(--line);margin-top:4px;padding-top:14px}
.boutique-public .sort-filter .size-filter-label{margin:0 0 10px}
.boutique-public .sort-filter .sort-tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.boutique-public .sort-filter .sort-tag{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:44px;padding:10px 14px;border-radius:999px;box-shadow:none;font-size:.8125rem}
.boutique-public .sort-filter .sort-tag[aria-pressed="true"]{background:var(--rose);border-color:var(--wine);box-shadow:inset 0 0 0 1px var(--wine);color:var(--wine);font-weight:600}
.boutique-public .sort-arrow{font-size:.9rem;line-height:1;font-weight:400}
