/* BAO AN TAILOR / Unified outline button system v1.28.1
 * One neutral visual language for navigation, contact, filters and actions.
 * Social platforms are distinguished by their accessible text and SVG icons,
 * not competing background colors. Interaction behavior stays in components.
 */
:root{--ba-btn-radius:999px;--ba-btn-ink:#2e302f;--ba-btn-surface:#fffaf4;--ba-btn-stroke:#bfae95;--ba-btn-shadow:0 3px 9px rgba(34,32,29,.09);--ba-btn-focus:#9e733f}
:where(a,button,input[type="submit"],input[type="button"],summary):focus-visible{outline:3px solid var(--ba-btn-focus);outline-offset:3px}
.ba-btn.ba-btn{
  appearance:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  gap:9px;min-height:46px;min-width:0;max-width:100%;padding:11px 18px;
  border:1px solid var(--ba-btn-stroke);border-radius:var(--ba-btn-radius);
  background:var(--ba-btn-surface);color:var(--ba-btn-ink);box-shadow:var(--ba-btn-shadow);
  font:700 clamp(12px,.82rem,14px)/1.3 'DM Sans',Arial,sans-serif;
  letter-spacing:.015em;text-align:center;text-decoration:none;white-space:normal;
  cursor:pointer;touch-action:manipulation;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease
}
.ba-btn.ba-btn--outline{background:var(--ba-btn-surface);color:var(--ba-btn-ink);border-color:var(--ba-btn-stroke)}
/* The same SVG can replace old text-arrow glyphs in ordinary text links. */
.ba-btn__icon{vertical-align:-.13em}
a:not(.ba-btn)>.ba-btn__icon,small>.ba-btn__icon,i>.ba-btn__icon,span:not(.ba-btn__arrow)>.ba-btn__icon{width:.95em;height:.95em;margin-left:.18em}
.ba-btn .ba-btn__icon{width:19px;height:19px;flex:0 0 auto;display:inline-block}
/* Legacy inline SVG baseline and span margins misalign arrow icons in narrow cards.
   Treat every SVG inside an actual button as a centered flex item. */
.ba-btn.ba-btn .ba-btn__icon{display:block;align-self:center;vertical-align:middle;margin:0;padding:0}
.ba-btn.ba-btn span > .ba-btn__icon{display:block;margin:0;padding:0}
.ba-btn.ba-btn .ba-btn__label{min-width:0;padding:0;margin:0;overflow-wrap:anywhere}
.ba-btn.ba-btn .ba-btn__arrow{display:inline-flex;flex:0 0 auto;margin-left:auto;align-items:center;justify-content:center;align-self:center;padding:0;line-height:1}
.ba-btn.ba-btn--sm{min-height:44px;padding:9px 15px;font-size:12px}

.ba-btn.ba-btn:not([disabled]):not([aria-disabled="true"]):hover{transform:translateY(-1px);background:#f2e8da;border-color:#8f7756;box-shadow:0 6px 15px rgba(34,32,29,.14);color:#272821}
.ba-btn.ba-btn:not([disabled]):not([aria-disabled="true"]):active{transform:translateY(1px);background:#eae0d1;box-shadow:0 1px 5px rgba(34,32,29,.12)}
.ba-btn.ba-btn:disabled,.ba-btn.ba-btn[aria-disabled="true"]{opacity:.47;cursor:not-allowed;box-shadow:none;transform:none}
/* Active filters keep outline semantics; use a stronger neutral border for selection. */
.ba-btn.ba-btn[aria-pressed="true"]{background:#eee4d6;color:#272b2f;border-color:#76624b;box-shadow:inset 0 0 0 1px #76624b}
.ba-btn.ba-btn[aria-pressed="true"] small{color:#65513a}
/* Shop and collection cards: consistent full-width CTA. */
.shop39-card{container:product-card / inline-size}
.cp43-card{container:product-card / inline-size}
.shop39-card .shop39-card-cta.ba-btn{display:flex;width:100%;min-height:48px;justify-content:space-between;padding:11px 16px}
.shop39-card .shop39-card-cta .ba-btn__label{flex:1;text-align:left}
.cp43-card .cp43-ask.ba-btn{width:100%;min-height:46px;padding:11px 15px;margin-top:auto;justify-content:space-between}
/* Product cards: large stand-alone social icons (no visible button chrome).
 * Keep full 48px+ accessible targets and readable labels for screen readers.
 * Applies to Shop, Collections, and product detail, including JS-rendered cards.
 */
.ba-product-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:6px;margin-top:10px}
.ba-product-actions .ba-product-chat.ba-btn.ba-btn{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  width:100%;min-width:0;min-height:50px;height:50px;padding:3px;
  border:0;border-radius:9px;background:transparent;color:var(--ba-btn-ink);
  box-shadow:none;gap:0;line-height:1;
}
.ba-product-actions .ba-product-chat.ba-btn.ba-btn .ba-btn__icon{
  display:block;flex:0 0 auto;align-self:center;width:44px;height:44px;
  max-width:100%;max-height:100%;margin:0;
}
/* Genuine Simple Icons logos with brand colors. No blurred raster scaling.
   Letter fallback remains beneath the SVG if an icon CDN is blocked. */
.ba-product-actions .ba-product-brand-wrap{position:relative;display:grid;place-items:center;width:46px;height:46px;max-width:100%;flex:0 0 auto;overflow:hidden}
.ba-product-actions .ba-product-brand-wrap .ba-product-brand-icon{position:relative;z-index:1;display:block;object-fit:contain;width:44px;height:44px;max-width:100%;max-height:100%;margin:0}
.ba-product-actions .ba-product-brand-fallback{position:absolute;inset:0;z-index:0;display:none;align-items:center;justify-content:center;font:800 17px/1 Arial,sans-serif;letter-spacing:-.05em}
.ba-product-actions .ba-product-brand-wrap.is-missing .ba-product-brand-fallback{display:flex}
.ba-product-actions .ba-product-brand-whatsapp .ba-product-brand-fallback{color:#128C7E}
.ba-product-actions .ba-product-brand-instagram .ba-product-brand-fallback{color:#E4405F}
.ba-product-actions .ba-product-brand-messenger .ba-product-brand-fallback{color:#0084FF}

.ba-product-actions .ba-product-chat .ba-btn__label{display:none}
.ba-product-actions .ba-product-chat.ba-btn.ba-btn:not([disabled]):not([aria-disabled="true"]):hover{
  transform:none;background:transparent;border:0;box-shadow:none;color:#89683d;
}
.ba-product-actions .ba-product-chat.ba-btn.ba-btn:not([disabled]):not([aria-disabled="true"]):active{
  transform:none;background:transparent;box-shadow:none;color:#51402c;
}
.ba-product-actions .ba-product-chat.ba-btn.ba-btn:focus-visible{outline:3px solid var(--ba-btn-focus);outline-offset:0}
@media(max-width:540px){
  .ba-product-actions{gap:4px}
  .ba-product-actions .ba-product-chat.ba-btn.ba-btn{min-height:48px;height:48px;padding:2px}
  .ba-product-actions .ba-product-brand-wrap{width:44px;height:44px}
  .ba-product-actions .ba-product-chat.ba-btn.ba-btn .ba-product-brand-icon{width:42px;height:42px}
}
/* Shop contact actions and visiting card. */
.shop37-contact .shop37-contact-item.ba-btn{width:100%;margin:0;justify-content:space-between;text-align:left;padding:12px 15px}
.shop37-contact .shop37-contact-item.ba-btn .ba-btn__label{flex:1;text-align:left}
.shop37-contact .shop37-action-primary.ba-btn{width:100%;margin-top:14px;justify-content:space-between}
.product-detail-wrap .ba-product-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.product-detail-copy.ba-btn{margin-top:6px}
.product-detail-back.ba-btn{margin-top:15px}

.mg42-tool-button.ba-btn,.mg42-outline-link.ba-btn{text-decoration:none;letter-spacing:.015em}
.gallery36-secondary.ba-btn,.gallery36-text-link.ba-btn,.fitting-social a.ba-btn{min-height:44px}
.analytics-consent-actions button.ba-btn{min-height:44px}
/* Contact page: long labels must wrap gracefully on 320px screens. */
.contact44-quick-links a.ba-btn .ba-btn__label{min-width:0;flex:1;line-height:1.35;text-align:left;overflow-wrap:anywhere}
@media(max-width:540px){
  .contact44-quick-links a.ba-btn{gap:6px;padding:10px 11px;min-height:48px;font-size:12px}
  .contact44-quick-links a.ba-btn>.ba-btn__icon:last-child{display:none}
  .contact44-quick-links .ba-btn__label{white-space:normal}
}
@media(max-width:600px){
  
  
}
@media(prefers-reduced-motion:reduce){.ba-btn.ba-btn{transition:none;transform:none!important}}

/* Site chrome: menu, floating actions and consent settings follow outline too.
   Preserve special fixed-position / circular mobile geometry. */
.ba-btn[hidden]{display:none!important}
.site-header .menu-toggle.ba-btn{display:none;width:46px;height:46px;min-height:46px;padding:0;flex:0 0 auto;font-size:1.1rem}
/* The mobile nav already exposes Contact; hide the duplicate header CTA.
   A high-specificity rule is needed because .ba-btn.ba-btn forces inline-flex. */
@media(max-width:1240px){
  .site-header .top-cta.ba-btn{display:none!important}
}
@media(max-width:1240px){.site-header .menu-toggle.ba-btn{display:inline-flex}}
/* Use flex-start (the valid CSS value for "left") on desktop quick links. */
.floating-actions .floating-action.ba-btn{justify-content:flex-start;gap:8px;min-height:44px;padding:9px 12px}
.floating-action.floating-top.ba-btn{justify-content:center;gap:8px;min-height:44px;padding:9px 12px}
.floating-more-panel a.ba-btn{width:100%;min-height:44px;justify-content:space-between;padding:10px 12px;margin-bottom:4px}
.floating-more-panel a.ba-btn:last-child{margin-bottom:0}
@media(max-width:1023px){
  /* Icon-only round controls stay visually centered on tablets and phones. */
  .floating-actions .floating-action.ba-btn{justify-content:center;min-width:44px;width:44px;height:44px;min-height:44px;padding:0;border-radius:999px}
}
@media(max-width:700px){
  .floating-action.floating-top.ba-btn{min-width:44px;width:44px;height:44px;min-height:44px;padding:0;border-radius:999px}
  .floating-actions .floating-action.ba-btn{padding:0}
}

/* Product Instagram: consistent outline action dialog, including mobile and fallback copy. */
.ba-product-modal{width:min(540px,calc(100vw - 28px));max-height:min(90dvh,780px);overflow:auto;border:1px solid #d6c5ae;border-radius:15px;background:#fffaf4;color:#29251f;padding:0;box-shadow:0 20px 70px #140f0bb0}
.ba-product-modal::backdrop{background:rgba(20,17,14,.66)}
.ba-product-modal__body{padding:clamp(18px,4vw,32px)}
.ba-product-modal__body h2{font-size:clamp(1.8rem,5vw,2.65rem);line-height:1.1;margin:8px 0 12px}
.ba-product-modal__body>p:not(.eyebrow){font-size:.87rem;line-height:1.6;color:#55493c}
.ba-product-modal__selected{margin:14px 0}
.ba-product-modal__selected strong{overflow-wrap:anywhere}
.ba-product-modal__label{display:block;margin:13px 0 7px;font-size:.77rem;font-weight:700}
.ba-product-modal textarea{box-sizing:border-box;display:block;width:100%;min-height:110px;padding:12px;border:1px solid #af9b7e;border-radius:8px;background:#fff;color:#28231c;font:inherit;font-size:.88rem;line-height:1.55;resize:vertical}
.ba-product-modal__status{min-height:2em;margin:12px 0;color:#584d3f}
.ba-product-modal__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ba-product-modal__actions .ba-btn{min-width:0;width:100%}
.ba-product-modal__close{margin-top:16px}
@media(max-width:420px){.ba-product-modal__actions{grid-template-columns:1fr}}

/* One-click Messenger product inquiry. Toast stays on the source page; external
   Messenger tab opens via the original anchor to preserve popup-blocker behavior. */
.ba-messenger-feedback[hidden]{display:none!important}
.ba-messenger-feedback{position:fixed;right:clamp(12px,3vw,24px);bottom:clamp(68px,8vw,96px);z-index:10065;box-sizing:border-box;display:flex;align-items:center;gap:12px;width:min(380px,calc(100vw - 24px));max-width:calc(100vw - 24px);padding:13px 14px;background:#fffaf4;color:#29251f;border:1px solid #a78551;border-radius:12px;box-shadow:0 7px 26px rgba(19,15,11,.24);font:600 13px/1.45 'DM Sans',Arial,sans-serif}
.ba-messenger-feedback [data-messenger-feedback-text]{flex:1;min-width:0;overflow-wrap:anywhere}
.ba-messenger-feedback__close{flex:0 0 30px;width:30px;height:30px;padding:0;border:1px solid #b6a184;border-radius:99px;background:transparent;color:inherit;font-size:19px;line-height:1;cursor:pointer}
@media(max-width:420px){.ba-messenger-feedback{left:12px;right:12px;bottom:76px}}
