/* Lucky Baby Bow controls — one token and variant system for HTML and React. */
:root {
  --ui-rose: #f4cbc7;
  --ui-rose-hover: #edbdb8;
  --ui-aqua: #cbe8e4;
  --ui-aqua-hover: #b9ddd7;
  --ui-surface: #fffdf9;
  --ui-ink: #3e504a;
  --ui-muted: #63726b;
  --ui-line: #d8e3dc;
  --ui-focus: #49796e;
  --ui-control-font: var(--body);
  --ui-radius: 14px;
  --ui-ease: cubic-bezier(.16, 1, .3, 1);
  --ui-fast: 140ms;
  --ui-enter: 360ms;
  --ui-exit: 200ms;
  --ui-shadow: 0 5px 14px #54645912;
}
.lbb-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.lbb-enhanced .lbb-button {
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:48px; padding:12px 23px; border:0; border-radius:var(--ui-radius);
  font:600 15px/1.45 var(--ui-control-font); letter-spacing:0; color:var(--ui-ink);
  cursor:pointer; text-align:center; text-decoration:none; box-shadow:none;
  transition:background-color var(--ui-fast),color var(--ui-fast),box-shadow var(--ui-fast),transform var(--ui-fast) var(--ui-ease);
}
.lbb-enhanced .lbb-button svg { width:18px; height:18px; flex-shrink:0; pointer-events:none; transition:transform 220ms var(--ui-ease); }
.lbb-enhanced .lbb-button:hover:not(:disabled) { transform:none; }
.lbb-enhanced .lbb-button:active:not(:disabled) { transform:scale(.98); }
.lbb-enhanced .lbb-button:disabled { opacity:.48; cursor:not-allowed; box-shadow:none; }
.lbb-enhanced .lbb-button--rose { background:var(--ui-rose); color:#503f3d; }
.lbb-enhanced .lbb-button--rose:hover:not(:disabled) { background:var(--ui-rose-hover); box-shadow:var(--ui-shadow); }
.lbb-enhanced .lbb-button--aqua { background:var(--ui-aqua); }
.lbb-enhanced .lbb-button--aqua:hover:not(:disabled) { background:var(--ui-aqua-hover); box-shadow:var(--ui-shadow); }
.lbb-enhanced .lbb-button--outline { background:transparent; box-shadow:inset 0 0 0 1px #adc6bd; }
.lbb-enhanced .lbb-button--outline:hover:not(:disabled) { background:#eef5f0; }
.lbb-enhanced .lbb-button--ghost { background:transparent; }
.lbb-enhanced .lbb-button--ghost:hover:not(:disabled) { background:#eaf3ed; }
.lbb-enhanced .lbb-button--sm { min-height:42px; padding:10px 17px; font-size:12px; border-radius:12px; }
.lbb-enhanced .lbb-button--icon { width:44px; min-width:44px; height:44px; min-height:44px; padding:0; border-radius:50%; }
.lbb-enhanced .lbb-button--link { background:transparent; border:0; border-radius:0; padding:8px 0; min-height:44px; position:relative; color:var(--ui-ink); font-size:14px; }
.lbb-enhanced .lbb-button--link::after { content:''; position:absolute; height:1px; bottom:4px; inset-inline:0; background:#9cb8ae; transform-origin:left; transition:transform 220ms var(--ui-ease),background 140ms; }
.lbb-enhanced .lbb-button--link:hover::after { background:var(--ui-ink); transform:scaleX(.72); }
.lbb-enhanced .lbb-button--link:hover svg { transform:translate(2px,-2px); }
.lbb-enhanced :is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid var(--ui-focus); outline-offset:4px; }
.lbb-enhanced :is(input,textarea) { caret-color:var(--ui-focus); }
.lbb-enhanced .lbb-input { width:100%; min-width:0; min-height:46px; padding:11px 13px; border:1px solid var(--ui-line); border-radius:12px; background:#fff; color:var(--ui-ink); font:400 16px/1.6 var(--body); transition:border-color var(--ui-fast),background-color var(--ui-fast); }
.lbb-enhanced .lbb-input:hover { border-color:#a9c4b8; }
.lbb-enhanced .lbb-input:focus { border-color:var(--ui-focus); }
.lbb-enhanced .lbb-input::placeholder { color:var(--ui-muted); font-size:14px; }
.lbb-enhanced .lbb-select { appearance:none; padding-right:38px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23495c58' stroke-width='1.6' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 12px center; }
.lbb-enhanced textarea.lbb-input { min-height:105px; resize:vertical; }
.lbb-field { display:grid; gap:8px; }
.lbb-field>span { font:600 13px/1.5 var(--body); }
.lbb-enhanced .lbb-segmented { display:inline-flex; align-items:center; gap:3px; padding:4px; background:#edf4ef; border:0; border-radius:14px; }
.lbb-enhanced .lbb-segmented button { min-height:36px; padding:8px 13px; border-radius:10px; font:600 12px/1.3 var(--body); color:var(--ui-muted); opacity:1; transition:background-color 160ms,box-shadow 160ms,color 160ms; }
.lbb-enhanced .lbb-segmented button[aria-pressed=true] { background:#fff; color:var(--ui-ink); box-shadow:0 2px 5px #52605214; }
.lbb-enhanced .languages { padding:3px; gap:1px; }
.lbb-enhanced .languages>span { display:none; }
.lbb-enhanced .languages button { min-height:32px; padding:7px 8px; min-width:29px; font-size:10px; }
.lbb-enhanced .desktop-nav a { font-size:14px; font-weight:600; border-radius:10px; padding:9px 11px; transition:background-color 160ms,color 160ms; }
.lbb-enhanced .desktop-nav a:hover { background:#edf5f0; box-shadow:none; color:#354f44; }
.lbb-enhanced .desktop-nav { gap:8px; }
.lbb-enhanced .search-field { transition:box-shadow 160ms,border-color 160ms; }
.lbb-enhanced .request-count { min-width:22px; border-radius:7px; font:600 11px/22px var(--body); }
/* The enquiry arrives like a sheet of paper placed beside the collection. */
.lbb-overlay { position:fixed; inset:0; z-index:90; background:#2f49414f; animation:lbb-overlay-in 140ms ease-out; }
.lbb-overlay[data-state=closed] { display:none; }
.lbb-panel { position:fixed; z-index:91; color:var(--ui-ink); background:var(--ui-surface); box-shadow:0 18px 64px #24382f26; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#c2d5c9 transparent; outline:none; }
.lbb-panel--sheet { top:12px; right:12px; bottom:12px; width:min(530px,calc(100vw - 24px)); border-radius:22px; animation:lbb-sheet-in var(--ui-enter) var(--ui-ease); }
.lbb-panel--sheet[data-state=closed] { animation:lbb-sheet-out var(--ui-exit) ease-in; }
.lbb-panel--dialog { top:50%; left:50%; transform:translate(-50%,-50%); width:min(950px,calc(100vw - 48px)); max-height:calc(100dvh - 48px); border-radius:22px;  }
.lbb-panel--dialog[data-state=closed] { display:none; }
.lbb-panel .lbb-panel-close { position:sticky; top:16px; margin:16px 16px -58px auto; display:flex; z-index:5; background:#fffdf9f2; }
.lbb-existing-content>[data-overlay-panel] { position:static; display:block; width:100%; max-width:none; height:auto; max-height:none; margin:0; padding:36px 32px 30px; overflow:visible; color:inherit; background:transparent; border:0; }
.lbb-existing-content>[data-overlay-panel]>.dialog-close { display:none; }
.lbb-existing-content .request-header { padding:10px 36px 24px 0; margin-bottom:23px; border-bottom:1px solid var(--ui-line); }
.lbb-existing-content .request-header h2 { font-size:44px; line-height:1.04; }
.lbb-existing-content .request-header p { margin-top:16px; font-size:14px; line-height:1.65; max-width:35ch; }
.lbb-existing-content .request-item { padding:17px 0; border-top:0; border-bottom:1px solid var(--ui-line); }
.lbb-existing-content .request-item h3 { font-size:26px; padding-right:42px; }
.lbb-existing-content .request-item .remove-item { top:10px; right:-8px; }
.lbb-existing-content .request-options { gap:12px; }
.lbb-existing-content .request-options label { display:grid; grid-template-columns:1fr 1.6fr; gap:12px; font-size:12px; }
.lbb-existing-content .request-options select { width:100%; font-size:14px; }
.lbb-existing-content .add-item-field { border:0; padding-top:8px; margin-top:12px; }
.lbb-existing-content .field { gap:8px; margin-bottom:22px; }
.lbb-existing-content .field>span { font-size:14px; }
.lbb-existing-content .field-pair { gap:16px; }
.lbb-existing-content .optional-note,.lbb-existing-content .request-note,.lbb-existing-content .request-shipping { font-size:12px; }
.lbb-existing-content .message-details { border-color:var(--ui-line); padding:17px 0; }
.lbb-existing-content .message-details summary { font:500 14px/1.5 var(--ui-control-font); list-style:none; display:flex; justify-content:space-between; align-items:center; min-height:28px; }
.lbb-existing-content .message-details summary::after { content:''; width:7px; height:7px; border-right:1.5px solid; border-bottom:1.5px solid; transform:rotate(45deg); transition:transform 180ms var(--ui-ease); margin-right:6px; }
.lbb-existing-content .message-details[open] summary::after { transform:rotate(225deg); }
.lbb-existing-content .message-details[open] textarea { animation:lbb-reveal 180ms var(--ui-ease); }
.lbb-existing-content #request-copy { margin-top:2px; }
.lbb-existing-content .copy-status { color:#426d5c; }
.lbb-existing-content #example-content { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(220px,1fr); column-gap:28px; align-items:start; padding:16px 0 0; }
.lbb-existing-content #example-content>img { grid-column:1; width:100%; height:auto; aspect-ratio:1; max-height:65dvh; object-fit:contain; border-radius:12px; margin:0; }
.lbb-existing-content #example-content>.example-details { grid-column:2; padding-top:6px; }
.lbb-existing-content #example-content h2 { font-size:32px; margin:0 0 13px; }
.lbb-existing-content #example-content p { font-size:14px; line-height:1.65; margin:0 0 16px; }
.lbb-existing-content #example-content time { font-size:12px; color:var(--ui-muted); margin:4px 0 24px; }
.lbb-existing-content #example-content .lbb-button { justify-self:start; }
.lbb-enhanced .mobile-nav:not([hidden]) { animation:lbb-menu-in 220ms var(--ui-ease); }
.lbb-enhanced .toast { border-radius:14px; background:var(--ui-ink); color:white; padding:13px 19px; font-size:14px; box-shadow:var(--ui-shadow); transition:opacity 160ms,transform 220ms var(--ui-ease); }
@keyframes lbb-sheet-in { from { opacity:.6; transform:translateX(calc(100% + 16px)); } to { opacity:1; transform:translateX(0); } }
@keyframes lbb-sheet-out { to { opacity:0; transform:translateX(calc(100% + 16px)); } }
@keyframes lbb-overlay-in { from { opacity:0; } to { opacity:1; } }
@keyframes lbb-overlay-out { to { opacity:0; } }
@keyframes lbb-dialog-in { from { opacity:0; transform:translate(-50%,-48%) scale(.98); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
@keyframes lbb-dialog-out { to { opacity:0; transform:translate(-50%,-48%) scale(.98); } }
@keyframes lbb-reveal { from { opacity:.4; } to { opacity:1; } }
@keyframes lbb-menu-in { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1100px) {
  .lbb-enhanced .desktop-nav a { font-size:14px; padding-inline:8px; }
}
@media(max-width:600px) {
  .lbb-enhanced .lbb-button { font-size:14px; padding-inline:19px; }
  .lbb-enhanced .lbb-button--icon { padding:0; }
  .lbb-enhanced .lbb-button--link { padding-inline:0; }
  .lbb-enhanced .languages button { padding:6px; min-width:25px; }
  .lbb-enhanced .languages { gap:0; padding:2px; }
  .lbb-enhanced .site-header .menu-toggle { width:44px; min-width:44px; height:44px; }
  .lbb-panel--sheet { inset:auto 0 0; width:100%; max-height:94dvh; border-radius:24px 24px 0 0; animation-name:lbb-bottom-in; }
  .lbb-panel--sheet[data-state=closed] { animation-name:lbb-bottom-out; }
  .lbb-panel--dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); border-radius:18px; }
  .lbb-existing-content>[data-overlay-panel] { padding:32px 22px max(26px,env(safe-area-inset-bottom)); }
  .lbb-existing-content .request-header h2 { font-size:38px; }
  .lbb-existing-content .request-header { padding-right:24px; }
  .lbb-existing-content #example-content { display:flex; flex-direction:column; gap:0; padding-top:22px; }
  .lbb-existing-content #example-content>img { max-height:40dvh; width:100%; margin-bottom:20px; }
  .lbb-existing-content #example-content h2 { font-size:30px; }
  .lbb-existing-content #example-content p { font-size:14px; }
  .lbb-existing-content .field-pair { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:10px; }
}
@media(max-width:370px) {
  .lbb-enhanced .site-header .brand>span { font-size:24px; }
  .lbb-enhanced .site-header .brand img { width:30px; height:30px; }
}
@keyframes lbb-bottom-in { from { opacity:.6; transform:translateY(100%); } to { opacity:1; transform:translateY(0); } }
@keyframes lbb-bottom-out { to { opacity:0; transform:translateY(100%); } }
@media(prefers-reduced-motion:reduce) {
  .lbb-panel,.lbb-panel[data-state=closed],.lbb-overlay,.lbb-overlay[data-state=closed],.lbb-enhanced .mobile-nav:not([hidden]),.lbb-existing-content .message-details[open] textarea { animation-duration:1ms; }
  .lbb-enhanced .lbb-button,.lbb-enhanced .lbb-button svg,.lbb-enhanced .toast,.lbb-enhanced .lbb-segmented button { transition-duration:0s; }
  .lbb-enhanced .lbb-button:active:not(:disabled),.lbb-enhanced .lbb-button--link:hover svg { transform:none; }
}

@media (min-width:851px) { .lbb-enhanced .site-header .menu-toggle { display:none; } }
@media (max-width:600px) { .lbb-enhanced .site-header .request-trigger { display:none; } }

.lbb-enhanced .portal-action { font:600 14px/1.5 var(--ui-control-font); align-items:center; padding-bottom:7px; transition:color 160ms,border-color 160ms; }
.lbb-enhanced .portal-action svg,.lbb-enhanced .back-link svg { width:16px; height:16px; }
.lbb-enhanced .option-choice span { min-height:44px; display:flex; align-items:center; padding:10px 15px; border-radius:12px; font:500 13px/1.5 var(--body); color:var(--ui-ink); border-color:var(--ui-line); transition:background-color 160ms,border-color 160ms; }
.lbb-enhanced .option-choice input:checked+span { background:var(--ui-aqua); border-color:#9bbdb0; }
.lbb-enhanced .option-choice input:focus-visible+span { outline-color:var(--ui-focus); }
.lbb-enhanced #product-thumbnails button { border-radius:10px; transition:border-color 160ms,opacity 160ms; }
.lbb-enhanced #product-thumbnails button[aria-pressed=true] { border-color:var(--ui-focus); }
.lbb-enhanced #request-copy[data-state=copied] { background:#b9ddcb; }

@media(prefers-reduced-motion:reduce) { .lbb-enhanced #example-content>img { animation:none; } }

.lbb-enhanced .desktop-nav a { min-height: 44px; display: inline-flex; align-items: center; }
.lbb-enhanced .search-box input { font-size: 16px; }
/* Section headings receive screen-reader focus without a control-shaped outline. */
:is(h1,h2)[tabindex="-1"]:focus { outline:none; }
.lbb-enhanced .search-box input::placeholder { color: var(--ui-muted); font-size: 16px; }
.lbb-existing-content #example-content { min-width: 0; }
.lbb-existing-content #example-content h2 { overflow-wrap: anywhere; }
.lbb-existing-content #example-content .contact-actions { width: 100%; }
@media (max-width: 600px) {
  .lbb-existing-content #example-content p { font-size: 15px; }
  .lbb-existing-content #example-content .contact-actions { gap:8px 18px; }
}

/* The existing first-visit language choice uses the same accessible controls. */
.language-modal-open { overflow: hidden; }
.language-dialog {
  width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 32px);
  margin: auto; padding: 32px; overflow-y: auto; overscroll-behavior: contain;
  border: 0; border-radius: var(--ui-radius); background: var(--ui-surface);
  color: var(--ui-ink); box-shadow: 0 16px 60px #24382f30;
}
.language-dialog::backdrop { background: #2f494180; }
.language-globe { display: block; width: 32px; height: 32px; margin-bottom: 20px; color: var(--ui-focus); }
.language-globe svg { width: 100%; height: 100%; }
.language-dialog h2 { font-size: 36px; line-height: 1.1; margin-bottom: 18px; }
.language-dialog p { font: 400 15px/1.65 var(--body); }
.language-translation { margin-top: 12px; color: var(--ui-muted); }
.language-options { display: grid; gap: 12px; margin-block: 24px; }
.language-options button { min-height: 64px; padding: 14px 18px; border: 1px solid var(--ui-line); border-radius: 12px; text-align: left; font: 700 15px/1.5 var(--body); background: var(--ui-aqua); }
.language-options button:nth-child(2) { background: #fff; }
.language-options button:hover { border-color: var(--ui-focus); }
.language-options button:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 3px; }
.language-options button span { display: block; margin-top: 2px; font-size: 14px; font-weight: 400; }
.language-dialog .language-remember { font-size: 13px; color: var(--ui-muted); }
@media (max-width: 370px), (max-height: 560px) {
  .language-dialog { padding: 24px; }
  .language-dialog h2 { font-size: 29px; }
  .language-globe { display: none; }
}
@media (max-width: 600px) {
  .lbb-enhanced .product-heading .collection-switch select,
  .lbb-enhanced .gallery-filters select { font-size: 16px; }
}

/* Native modal navigation: an opaque side drawer, with focus and page scrolling contained. */
body:has(.navigation-drawer[open]) { overflow:hidden; }
.navigation-drawer { position:fixed; inset:0 0 0 auto; width:min(380px,calc(100vw - 28px)); height:100dvh; max-width:none; max-height:none; margin:0; padding:24px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) 28px; border:0; border-radius:0; background:#fffdf9; color:var(--ink); overflow-y:auto; overscroll-behavior:contain; }
.navigation-drawer[open] { display:flex; flex-direction:column; animation:lbb-drawer-in 200ms cubic-bezier(.2,.8,.2,1); }
.navigation-drawer::backdrop { background:#263d365c; }
.drawer-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
#mobile-menu-title { font:32px/1.2 var(--script); color:#836568; }
.navigation-drawer .mobile-nav { position:static; display:flex; flex-direction:column; margin-top:40px; padding:0; background:transparent; border:0; border-radius:0; box-shadow:none; }
.navigation-drawer .mobile-nav a { display:flex; align-items:center; min-height:72px; padding:18px 0; border-bottom:1px solid #e3e7df; font:32px/1.15 var(--display); color:var(--ink); }
.navigation-drawer .mobile-nav a:hover { color:#80585c; }
.drawer-location { margin-top:auto; padding-top:36px; color:#596d62; font-size:14px; }
@keyframes lbb-drawer-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
@media(prefers-reduced-motion:reduce) { .navigation-drawer[open] { animation:none; } }
@media(max-height:500px) { .navigation-drawer .mobile-nav { margin-top:16px; } .navigation-drawer .mobile-nav a { min-height:56px; padding-block:12px; } .drawer-location { padding-top:20px; } }
