/* Brigitte identity. Visual treatment only: product grids and navigation keep
   their existing layout, breakpoints, ordering and behavior. Fonts are local. */
@font-face {
  font-family: 'Archivo'; font-style: normal; font-weight: 400 700;
  font-display: swap; src: url('/assets/fonts/archivo-latin-variable.woff2') format('woff2');
}
@font-face {
  font-family: 'Outfit'; font-style: normal; font-weight: 400 500;
  font-display: swap; src: url('/assets/fonts/outfit-latin-variable.woff2') format('woff2');
}
:root {
  --sans: 'Archivo', Arial, sans-serif;
  --serif: 'Archivo', Arial, sans-serif;
  --brand-font: 'Outfit', Arial, sans-serif;
  --accent: #f655be;
  --accent-dark: #a51a73;
  --wine: #242124;
  --wine-dark: #111111;
  --rose: #a51a73;
  --blush: #faeaf4;
  --ivory: #ffffff;
  --paper: #ffffff;
  --ink: #242124;
  --muted: #656168;
  --line: #e5e1e5;
}
body { font-family: var(--sans); -webkit-font-smoothing: antialiased; }
::selection { color: var(--ink); background: #ffc7ea; }
h1,h2 { font-weight: 500; letter-spacing: -.045em; }
input::placeholder,textarea::placeholder { color: #706b73; }
.wordmark {
  font-family: var(--brand-font); font-weight: 400; font-style: normal;
  letter-spacing: -.04em; color: var(--accent); line-height: 1;
}
.wordmark span { color: var(--ink); font-family: var(--sans); letter-spacing: .16em; }
.wordmark .wordmark-logo { display:block; width:2.901em; height:1em; max-width:none; margin-inline:auto; position:relative; top:.1em; }
.wordmark-picture { display:block; }
.site-header .wordmark-picture { width:100%; contain:inline-size; }
.site-header .wordmark-picture .wordmark-logo { width:102.3%; height:auto; margin-inline:0; top:.375rem; transform:translateX(-2.23%); }
.site-header .wordmark { display:grid; grid-template-columns:max-content; justify-items:center; gap:0; text-align:center; }
body .site-header .header-main .wordmark { font-size: 3.625rem; }
.wordmark span.brand-tagline {
  display: block; font-family: var(--sans); font-weight: 400; font-size: .625rem;
  letter-spacing: .015em; line-height: 1.5; margin-top: .375rem;
  color: #514b52; text-align: center; white-space: nowrap;
}
body .site-header .header-main .wordmark .brand-tagline { font-family:var(--sans); font-weight:400; font-size:.75rem; letter-spacing:.005em; }
.site-header { border-top-color: var(--accent); }
.eyebrow { font-weight: 500; color: var(--muted); letter-spacing: .14em; }
.button {
  font-weight: 500; border-radius: 3px; letter-spacing: .01em;
  transition: background .2s, border-color .2s, color .2s;
}
.button:hover { transform: none; border-color: var(--accent); }
.button.secondary:hover { color: var(--ink); background: var(--blush); }
.button.light:hover { background: var(--blush); color: var(--ink); }
.text-link { border-bottom-color: var(--accent); }
.text-link:hover,.text-button:hover { color: var(--accent-dark); }
.field input,.field select,.field textarea { border-color: #d5d0d6; }
.field input:focus,.field select:focus,.field textarea:focus { border-color: #8f8991; }
body :is(input,select,textarea):is(:focus,:focus-visible) { outline:none; outline-offset:0; box-shadow:0 0 0 1px #8f8991; }
.password-control { position:relative; display:block; width:100%; min-width:0; }
body .field .password-control input[data-password-visibility] { width:100%; min-width:0; padding-inline-end:3.25rem; }
.password-control .password-toggle { position:absolute; inset-inline-end:0; top:0; display:grid; place-items:center; width:2.75rem; height:100%; min-height:2.75rem; padding:0; border:0; border-radius:0 6px 6px 0; background:transparent; color:#77717b; cursor:pointer; }
.password-control .password-toggle svg { width:1.25rem; height:1.25rem; pointer-events:none; }
.password-control .password-toggle:hover { color:#514b55; }
.password-control .password-toggle:focus-visible { outline:2px solid #8f8991; outline-offset:-5px; }
.password-control input:disabled+.password-toggle { opacity:.4; pointer-events:none; }
.password-control input::-ms-reveal,.password-control input::-ms-clear { display:none; }

/* Familiar header, with quieter chrome and a sharper brand signature. */
#search-form { border-bottom-color: var(--line); }
#search-form:after { background: var(--accent); }
#search { caret-color: var(--accent-dark); }
.header-action:hover,.nav-row>nav>a:hover,#categories-button:hover,
#categories-button[aria-expanded=true],#wholesale-link:hover { color: var(--accent-dark); }
.cart-button #cart-count {
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  width:auto; min-width:1.5rem; height:1.5rem;
  padding:0 calc(.25rem - 1px) 0 calc(.25rem + 1px);
  border-radius:999px; color:var(--ink); background:var(--accent);
  font-size:.75rem; font-weight:600; line-height:1; letter-spacing:0;
  font-variant-numeric:tabular-nums; text-align:center;
}
#search-preview { box-shadow: 0 12px 28px #24212412; }

/* Same two-slide carousel and original photography. */
.hero-carousel { background: #f5f3f4; }
.hero-brand:after {
  background: linear-gradient(90deg,#f8f6f8fa 0%,#f8f6f8f2 25%,#f8f6f8c2 40%,#f8f6f81a 65%,transparent 80%);
}
.hero-brand h1 { font-weight: 500; letter-spacing: -.025em; line-height: 1.03; }
.hero-carousel .hero-copy > .button { font-size: 1.0625rem; }
.hero-brand h1 em { font-style: normal; color: var(--ink); text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: .06em; text-underline-offset: .12em; }
.hero-brand .eyebrow { color: #4e4850; }
.hero-promo { background: #242124; }
.hero-promo .promo-season { color: white; }
.promo-season-title { font-family: var(--sans); font-style: normal; font-weight: 500; letter-spacing: -.055em; }
.promo-season-brand { font-family: var(--brand-font); font-style: normal; color: var(--accent); margin-left: 0; letter-spacing: -.05em; }
.hero-promo .promo-number { color: var(--accent); }
.hero-promo .promo-benefits { color: #ede7ec; }
.hero-promo .button.light:hover { background: var(--blush); border-color: var(--blush); }
.hero-controls button:hover { background: #2421240a; }

/* Product dimensions, columns and filter locations are deliberately inherited. */
.product-visual,.product-placeholder { background: #f4f3f4; }
.product-placeholder { color: #69606a; }
.product-placeholder b,.table-placeholder { font-family: var(--brand-font); font-style: normal; }
.product-name { font-family: var(--sans); font-weight: 500; letter-spacing: -.02em; }
.product-code{display:inline-block;margin-inline-start:.3em;font-family:var(--sans);font-size:max(.8125rem,.75em);font-weight:400;letter-spacing:normal;line-height:inherit;white-space:nowrap;color:var(--muted)}
.product-brand { letter-spacing: .1em; }
.product-price { color: var(--ink); }
.product-retail-price{display:block}
.product-price .product-wholesale-price{display:block;margin-top:.25rem;color:var(--accent);font-size:.875rem;font-weight:500;line-height:1.4}
.product-variant-summary{margin:.375rem 0 0;font-size:.8125rem;font-weight:400;line-height:1.5;color:var(--muted)}
.product-badge {
  background: #ffffff; color: var(--ink); border: 1px solid #2421241f;
  border-radius: 999px; padding: .5rem .75rem;
  font-size: .875rem; font-weight: 600; letter-spacing: 0; line-height: 1.3;
  pointer-events: none;
}
.product-badge.product-badge--launch,.product-badge.product-badge--sold-out { max-width:calc(100% - 3.75rem); padding:.375rem .625rem; border-radius:.25rem; font-size:.75rem; font-weight:500; line-height:1.35; }
.product-badge.product-badge--sold-out { background:var(--ink);color:white;border-color:var(--ink); }
.favorite { background: #ffffffed; }
.favorite.saved { color: var(--accent-dark); }
.favorite.saved svg { fill: #f655be26; }
.favorite:hover { color: var(--accent-dark); }
.size-tag { background: white; border-color: var(--line); }
.catalog-title { font-weight: 500; letter-spacing: -.05em; }
.section-heading h2 { font-weight: 500; letter-spacing: -.04em; }
.section-heading .text-link { font-size: .875rem; }
.filter-note p { font-family: var(--brand-font); font-style: normal; color: var(--muted); }
.filter-note svg { color: var(--accent-dark); }
.pagination button { border-radius: 3px; }
.pagination button:hover:not(:disabled) { background: var(--blush); border-color: var(--accent); }

.purchase-guide { background: #f7f2f5; color: var(--ink); border-block: 1px solid var(--line); }
.purchase-guide .eyebrow { color: var(--muted); }
.purchase-guide .text-link { color: var(--ink); border-color: var(--accent); }
.purchase-guide .text-link:hover { color: var(--accent-dark); }
.purchase-guide h2,.purchase-steps h3 { color: var(--ink); }
.purchase-guide h2 strong { color: var(--accent-dark); }
.purchase-guide p { color: var(--muted); }
.purchase-steps li { border-color: #ded5dd; }
.step-marker { color: var(--accent-dark); }
.step-marker svg { color: var(--accent-dark); }
.step-marker>span:last-child { font-family: var(--brand-font); font-style: normal; color: var(--accent-dark); }
.site-footer { background: #f3edef; border-top: 1px solid var(--line); }
.site-footer h3 { text-transform: uppercase; letter-spacing: .08em; font-weight: 500; }
.site-footer a:hover { color: var(--accent-dark); }
#footer-collection-navigation { position:relative; width:fit-content; max-width:100%; }
#footer-collection { display:flex; align-items:center; min-height:2.5rem; padding:.375rem 0; border:0; background:transparent; color:var(--muted); font:400 .9375rem/1.6 var(--sans); text-align:left; }
#footer-collection:hover { color:var(--wine); text-decoration:underline; text-underline-offset:4px; }
.site-footer .footer-bottom { border-color: #dcd4da; color: var(--muted); }
.footer-brand { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding-block: 1rem 2rem; text-align: center; }
.footer-brand-lockup { display: grid; grid-template-columns: max-content; justify-items: center; gap: .25rem; }
.footer-brand-picture { display: block; width: 100%; contain: inline-size; }
/* Match the visible wordmark to the descriptor, accounting for its transparent left edge. */
.footer-brand img { display: block; width: 102.3%; max-width: none; height: auto; position: relative; top: .375rem; transform: translateX(-2.23%); }
.footer-brand-lockup .brand-tagline { color: #514b52; font: 400 .85rem/1.5 var(--sans); letter-spacing: .005em; text-transform: uppercase; white-space: nowrap; }
.footer-brand .footer-brand-tagline { margin: 0; color: var(--muted); font: 400 .8125rem/1.5 var(--sans); letter-spacing: .01em; }
/* One outlined composition aligns the official mark, local name and descriptor. */
body .site-header .header-main.wrap .wordmark.institutional-wordmark { display:block; width:11.25rem; max-width:100%; line-height:0; }
.institutional-wordmark .institutional-logo { display:block; width:100%; max-width:100%; height:auto; }
.footer-brand .footer-brand-lockup { display:block; width:11.25rem; max-width:100%; }
.footer-brand .institutional-logo { display:block; width:100%; max-width:100%; height:auto; position:static; transform:none; mix-blend-mode:multiply; }
.whatsapp-float { background: var(--accent); color: #ffffff; border: 0; box-shadow: 0 3px 16px #f655be30; }
.whatsapp-float:hover { background: #df3aa7; }

/* Detail, checkout and accounts share the same neutral controls. */
.detail-image,.product-gallery,.product-photo-stage { background: #f5f4f5; }
.detail-image figcaption { background: #f5f4f5; color: var(--muted); }
.detail-info h2 { font-weight: 500; letter-spacing: -.04em; }
.variant-choice>span { background: white; border-color: #d5d0d6; }
.detail-info .detail-unit,.detail-subtotal small,.stock-indicator { color: var(--muted); }
.variant-choice:hover input:not(:checked):not(:disabled)+span { background: var(--blush); }
.variant-choice input:disabled+span { background: #f3f1f3; border-color: var(--line); color: #777078; }
.cart-line h3 { font-weight: 500; }
.account-form,.account-overview,.login-card { border-color: var(--line); }
.account-card { border-color: var(--line); box-shadow: 0 8px 30px #24212405; }
.account-tabs { background: #f4f1f4; }
.account-minimum { border-left-color: var(--accent); background: var(--blush); }
.account-form h2,.account-heading h1,.login-card h1 { font-weight: 500; letter-spacing: -.04em; }
.account-form .field input,.account-form .field select { border-radius: 6px; }
.shopping-status { background: #f7f4f6; }
.help-page { max-width: 90rem; padding-block: 1.5rem 3.5rem; }
.help-intro { grid-area: intro; min-width: 0; margin: 0; }
.help-intro .eyebrow { margin-bottom: .75rem; }
.help h1 { margin: 0 0 .875rem; font-size: clamp(1.75rem, 2.3vw, 2rem); font-weight: 500; line-height: 1.25; letter-spacing: -.025em; text-wrap: balance; }
.help h1:focus { outline: none; }
.help-intro > p { color: var(--muted); font-size: 1rem; line-height: 1.7; }
.help-layout { display: grid; grid-template-columns: minmax(16rem, .85fr) minmax(0, 1.85fr); grid-template-rows: auto 1fr; grid-template-areas: "intro questions" "contact questions"; align-items: start; gap: 2rem clamp(2rem, 4vw, 4rem); max-width: 75rem; margin-inline: auto; }
.help-questions { grid-area: questions; min-width: 0; }
.help details {
  box-sizing: border-box; margin-bottom: .75rem; padding: 0;
  border: 1px solid var(--line); border-radius: 4px; background: var(--paper);
}
.help details:last-child { margin-bottom: 0; }
.help details[data-expanded="true"] { border-color: #ddc4d5; }
.help summary {
  position: relative; display: block; min-height: 4.25rem; padding: 1.25rem 3.75rem 1.25rem 1.5rem;
  list-style: none; border-radius: 3px; font: 500 1rem/1.5 var(--sans);
  transition: background .2s ease;
}
.help-questions summary { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr); align-items: baseline; gap: 1rem; }
.help .faq-number { color: var(--accent-dark); font-size: .8125rem; font-weight: 400; font-variant-numeric: tabular-nums; }
.help summary:hover { background: #faf9fa; }
.help details[data-expanded="true"] > summary { background: #faf5f8; }
.help summary::marker { content: ''; }
.help summary::-webkit-details-marker { display: none; }
.help summary::before,.help summary::after {
  content: ''; position: absolute; top: calc(50% - .75px); right: 1.75rem;
  width: .625rem; height: 1.5px; background: currentColor; pointer-events: none;
}
.help summary::after { transform: rotate(90deg); transition: transform .3s ease, opacity .3s ease; }
.help details[open] > summary::after { transform: rotate(0deg); opacity: 0; }
.help details[data-expanded="false"] > summary::after { transform: rotate(90deg); opacity: 1; }
.help .faq-answer { padding: 1.25rem 1.5rem 1.5rem 4rem; color: #514d54; font-size: .9375rem; line-height: 1.8; }
.help .faq-answer p { margin: 0; }
.help .faq-answer > * + * { margin-top: 1rem; }
.help .faq-answer strong { color: var(--ink); font-weight: 600; }
.help .faq-answer ul,.help .faq-answer ol { padding-left: 1.25rem; margin-bottom: 0; }
.help .faq-answer > :first-child { margin-top: 0; }
.help details li + li { margin-top: .75rem; }
.help .faq-steps li { padding-left: .375rem; }
.help .faq-steps li::marker { color: var(--accent-dark); font-weight: 500; }
.help .faq-distribution .distribution-localities { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr)); gap:.375rem 1rem; list-style:none; padding:0; margin:1rem 0; }
.help .faq-distribution .distribution-localities > li { position:relative; padding-inline-start:.875rem; margin:0; line-height:1.5; }
.help .faq-distribution .distribution-localities > li::before { content:''; position:absolute; inset-inline-start:0; top:.65em; width:.25rem; height:.25rem; border-radius:50%; background:var(--accent); }
.help .faq-distribution .distribution-nearby { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
.help .faq-distribution .distribution-nearby-localities { margin-top:.375rem; color:inherit; font-size:inherit; font-weight:500; line-height:1.6; }
.help details a { text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.help summary:focus-visible { outline: 2px solid var(--accent-dark); outline-offset: -4px; }
.help-contact { grid-area: contact; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin: 0; padding: 1.5rem; border: 1px solid #f0e3eb; background: #f9f1f6; }
.help-contact h2 { margin: 0 0 .5rem; font-size: 1.125rem; line-height: 1.4; font-weight: 500; letter-spacing: -.015em; text-wrap: balance; }
.help-contact-copy p { color: var(--muted); font-size: .875rem; line-height: 1.7; }
.help .help-contact #contact-details { display: grid; gap: .25rem; margin: 0; }
.help .help-contact #contact-details a { margin: 0; padding-block: .375rem; color: var(--ink); font-size: .875rem; font-weight: 400; line-height: 1.5; text-decoration: underline; text-underline-offset: .2em; }
.help-contact .help-hours { margin-top: .625rem; font-size: .75rem; }
@media(max-width:900px) {
  .help-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto; grid-template-areas: "intro" "questions" "contact"; gap: 1.75rem; }
}
dialog::backdrop { background: #19151b70; }

/* Administration keeps its compact rows, responsive cards and rounded login. */
.admin-header .wordmark { font-weight: 400; }
.admin-header .wordmark span { color: var(--ink); }
.admin-page { background: #faf9fa; }
.admin-tabs button.active { border-bottom-color: var(--accent); }
.product-state-filters button.active { background: var(--blush); border-color: #e7c8dc; }
.product-table th { background: #f0edf0; }
.table-placeholder { background: #f2eff2; }
.admin-page .settings-form h2,.admin-page .admin-dialog h2 { font-weight: 500; letter-spacing: -.04em; }

@media(max-width:760px) {
  body .site-header .header-main.wrap .wordmark.institutional-wordmark { width:9rem; }
  .footer-brand .footer-brand-lockup { width:10rem; }
  body .site-header .header-main .wordmark { font-size: 3.125rem; }
  .site-header .wordmark-picture .wordmark-logo { top:.3125rem; }
  .help-page { padding-block: 1.25rem 2.5rem; }
  .help summary { padding: 1.125rem 3rem 1.125rem 1rem; font-size: .9375rem; }
  .help-questions summary { gap: .625rem; }
  .help summary::before,.help summary::after { right: 1.125rem; }
  .help .faq-answer { padding: 1rem 1rem 1.25rem; }
  .help-contact { grid-template-columns: minmax(0, 1fr); gap: .75rem; padding: 1.25rem; }
  .wordmark span.brand-tagline { font-size: .5625rem; letter-spacing: 0; }
  body .site-header .header-main .wordmark .brand-tagline { font-size: .625rem; letter-spacing: .015em; }
  .hero-brand:after { background: linear-gradient(180deg,#f8f6f8f5 0%,#f8f6f8ec 26%,#f8f6f840 59%,#f8f6f812 72%,#f8f6f8e8 100%); }
  .footer-brand { padding-block: 1rem 1.5rem; }
  #footer-collection { font-size:.875rem; min-height:2.75rem; }
  .footer-brand img { top:.3125rem; }
  .footer-brand-lockup .brand-tagline { font-size:.625rem; letter-spacing:.015em; }
}
@media(max-width:380px) {
  body .site-header .header-main.wrap .wordmark.institutional-wordmark { width:8rem; }
  body .site-header .header-main .wordmark { font-size: 3rem; }
  body .site-header .header-main .wordmark .brand-tagline { letter-spacing:0; }
  .footer-brand-lockup .brand-tagline { letter-spacing:0; }
  body:not(.account-page) .header-main { column-gap:.625rem; }
  .header-actions { gap:.5rem; }
}
@media(prefers-reduced-motion:reduce) {
  .button { transition: none; }
  .help summary,.help summary::after { transition: none; }
}
@media print {
  :root { --accent: #242124; }
}
