/* Measurements and typography from outputs/joyful-directions.html. */
:root {
  --ljdn-muted:#69776a;
  --bs-body-font-family:system-ui,-apple-system,sans-serif;
  --bs-body-color:var(--ljdn-text); --bs-border-color:var(--ljdn-line);
  --bs-border-radius:3px;
}
body { margin:0; background:#e7ebe5; font-family:system-ui,-apple-system,sans-serif; color:var(--ljdn-text); }
#header, #wrapper, #footer { max-width:1200px; margin-inline:auto; background:#fff; }
#header { position:relative; top:auto; }
#wrapper { padding-top:0; }
.container, .container-md { width:calc(100% - 64px); max-width:1050px; padding-inline:0; }
a:not(.btn) { color:inherit; text-decoration:none; }
a:not(.btn):hover { color:var(--ljdn-primary); text-decoration:underline; }
button, input, select, textarea { font-family:inherit; }
.btn { font-size:13px; font-weight:600; border-radius:3px; }
.form-control { font-size:13px; border-color:#d5e1d4; border-radius:3px; }
.ljdn-brand-strip { height:40px; display:flex; align-items:center; justify-content:center; background:var(--ljdn-top); color:var(--ljdn-top-text); font-size:12px; letter-spacing:.04em; }
.header-bottom__row { display:flex; flex-wrap:nowrap; align-items:center !important; gap:28px; min-height:0; margin:0; padding:28px 0 22px; }
.header-bottom__row > * { padding:0; }
.header-bottom__logo { flex:0 0 200px; width:200px; margin:0 !important; }
.header-bottom .navbar-brand { margin:0; padding:0; }
.header-bottom .logo { width:200px; max-width:100%; height:auto; max-height:none; }
.header-bottom .ps-mainmenu--desktop { display:none; }
.header-bottom .ps-searchbar { flex:0 1 350px; width:350px; margin:0 auto; }
.ps-searchbar input { height:43px; padding:12px 15px 12px 40px; font-size:14px; border:1px solid #d9e1d8; border-radius:4px; background:#fff; }
.ljdn-header-actions { flex:0 0 auto; align-items:center; gap:12px; white-space:nowrap; }
.ljdn-header-actions .header-block { margin:0; }
.ljdn-header-actions .header-block__action-btn { padding:0; min-height:43px; font-size:13px; color:var(--ljdn-link) !important; gap:5px; }
.ljdn-header-actions .header-block__icon { display:none; }
.ljdn-header-actions .header-block__badge { font-size:11px; border:0; width:auto; height:auto; padding:0; min-width:0; background:transparent; color:var(--ljdn-link); }
.ljdn-header-actions #_desktop_ps_shoppingcart::before { content:'·'; color:var(--ljdn-link); margin-right:12px; }
.ljdn-header-actions #_desktop_ps_shoppingcart { display:flex; align-items:center; }
.ljdn-header-actions .dropdown-menu { font-size:13px; }
.ljdn-menu__items { border-block:1px solid var(--ljdn-line); gap:10px; }
.ljdn-menu__item > a { padding:18px 2px; font-size:clamp(11px,1.05vw,14px); line-height:normal; font-weight:600; color:var(--ljdn-text); }
#index .ljdn-menu__item:first-child > a, .ljdn-menu__item > a[aria-current='page'] { color:var(--ljdn-primary); border-bottom-color:var(--ljdn-primary); }
.ljdn-menu__submenu { border:1px solid var(--ljdn-line); box-shadow:0 6px 20px #1b382014; }
.ljdn-menu__submenu a { font-size:13px; }
.ps-imageslider { position:relative; margin:0; padding:0; border:0; }
.ps-imageslider::after { content:''; display:block; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--ljdn-primary) 0 30%,var(--ljdn-link) 30% 50%,#d3b6a0 50% 100%); z-index:2; }
.ps-imageslider .carousel-inner, .ps-imageslider__figure { border-radius:0; margin:0; }
.ps-imageslider .ps-imageslider__figure img { display:block; width:100%; height:auto; object-fit:contain; }
.ps-imageslider__figcaption { display:none; }
#index .module-products { padding-block:54px; }
.ljdn-eyebrow { margin:0; font-size:11px; line-height:normal; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--ljdn-primary); }
#index .module-products .section-title { margin:8px 0 10px; font:400 30px/1.1 Georgia,serif; color:var(--ljdn-text); }
.ljdn-section-subtitle { margin:0; font-size:14px; line-height:normal; color:var(--ljdn-muted); }
#index .module-products__list { margin-top:28px; }
#index .module-products .products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:0; }
#index .module-products .product-miniature { width:auto; padding:0; margin:0; min-width:0; }
.ljdn-product { position:relative; }
.ljdn-product__thumbnail { position:relative; }
.ljdn-product__photo { display:flex; aspect-ratio:1; background:var(--ljdn-linen); overflow:hidden; align-items:center; justify-content:center; }
.ljdn-product__photo img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.ljdn-product__tag { display:inline-block; margin-top:15px; padding:5px 8px; background:var(--ljdn-badge); color:var(--ljdn-deep); font-size:10px; line-height:normal; letter-spacing:.04em; }
.ljdn-product__name { margin:10px 0 5px; font:600 15px/1.4 system-ui,-apple-system,sans-serif; color:var(--ljdn-text); }
.ljdn-product__detail { margin:0 0 9px; color:var(--ljdn-muted); font-size:13px; }
.ljdn-product__prices { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; }
.ljdn-product__price { font-size:15px; font-weight:700; color:var(--ljdn-deep); }
.ljdn-product__regular { color:var(--ljdn-muted); font-size:13px; }
.ljdn-product .product-flags { position:static; margin-top:8px; padding:0; }
.ljdn-product .product-flags .badge { font-size:10px; padding:5px 8px; border-radius:0; }
#index .module-products__buttons { margin-top:24px; text-align:left; }
.ljdn-section-link { font-size:13px; color:var(--ljdn-primary) !important; }
.ps-emailsubscription { padding-block:36px !important; background:var(--ljdn-news) !important; }
.ps-emailsubscription .row { margin:0; gap:25px; flex-wrap:nowrap; }
.ps-emailsubscription .row > * { padding:0; }
.ps-emailsubscription .h3 { margin:0 0 6px; font:400 24px/normal Georgia,serif; color:var(--ljdn-text); }
.ps-emailsubscription .ljdn-newsletter-heading { flex:1; width:auto; }
.ljdn-newsletter-notice { margin:0; font-size:12px; line-height:1.4; color:var(--ljdn-muted); }
.ps-emailsubscription form { width:auto; max-width:100%; }
.ps-emailsubscription .form-control { width:240px; min-width:0; padding:12px 15px; height:auto; font-size:13px; }
.ps-emailsubscription .btn { padding:12px 19px; font-size:13px; line-height:normal; }
.ps-emailsubscription form > .d-flex { margin-bottom:0 !important; }
.footer__main { padding:45px 0; background:var(--ljdn-footer) !important; color:var(--ljdn-footer-text); }
.footer__main-top { display:flex; gap:40px; margin:0; }
.footer__main-top > .footer-block { flex:1 1 0; width:auto; padding:0; }
.footer__main-top > .ps-contactinfo { flex:2 1 0; order:-1; }
.footer__main-top > :not(.footer-block) { width:100%; margin:0; padding:0; }
.footer__main .footer-block__title { margin:0 0 16px; font:700 12px/normal system-ui,-apple-system,sans-serif; letter-spacing:.09em; text-transform:uppercase; }
.footer__main .footer-block__content, .footer__main address, .footer__main .footer-block__list a { font-size:13px; line-height:1.9; }
.footer__main .footer-block__content, .footer__main a:not(.btn), .footer__main address { color:var(--ljdn-footer-text) !important; }
.footer__main .footer-block__list li { margin:0; }
.footer__main .ps-contactinfo .material-icons { display:none; }
.footer__main .copyright { border-top:1px solid var(--ljdn-fine); padding-top:20px; margin-top:28px; font-size:11px; text-align:left; }
.footer__main .copyright p { margin:0; font-size:11px; }
main h1, .page-title-section, .cart-grid__aside h2 { font-family:Georgia,serif; font-size:30px; font-weight:400; }
:focus-visible { outline:2px solid var(--ljdn-primary); outline-offset:3px; }
@media (max-width:767.98px) {
  .container, .container-md { width:calc(100% - 32px); }
  .header-bottom__row { padding:18px 0; gap:12px; flex-wrap:wrap; }
  .header-bottom__logo { flex:1 1 auto; width:auto; }
  .header-bottom .logo { width:150px; }
  .header-bottom .ps-mainmenu--desktop { display:block; flex:1 0 100%; order:10; border-top:1px solid var(--ljdn-line); padding:12px 0 0; }
  .header-bottom .ps-searchbar { display:none; }
  .header-bottom__row > [id^='_mobile'] { flex:0 0 auto; width:auto; }
  .header-bottom .header-block__action-btn { min-height:32px; padding:0 4px; }
  .header-bottom .header-block__icon { font-size:20px; }
  .header-bottom .ps-mainmenu__mobile-toggle { padding:0; font-size:14px; }
  .header-bottom .ps-mainmenu__mobile-toggle .material-icons { font-size:20px; }
  #index .module-products { padding-block:35px; }
  #index .module-products .products { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
  #index .module-products .ljdn-product:last-child { display:none; }
  .ps-emailsubscription .row { flex-direction:column; align-items:stretch !important; gap:25px; }
  .ps-emailsubscription form, .ps-emailsubscription .form-control { width:100%; }
  .footer__main-top { gap:24px; }
  .footer__main-top > .ps-contactinfo { flex:1 0 100%; }
  .footer__main .footer-block__content.collapse { display:block; }
  .footer__main .footer-block__title button { display:none; }
}

/* Hook containers inherit Bootstrap row widths and orders. */
.ljdn-header-actions { width:auto; order:2; }
#_desktop_ps_searchbar { order:1 !important; flex:0 1 350px; min-width:0; width:350px; margin:0 auto !important; }
#_desktop_ps_searchbar .ps-searchbar { width:100%; margin:0; }
.header-bottom__row > .offcanvas { padding:0; }

#index .page-content--home { gap:0; }
#index .module-products__buttons { justify-content:flex-start; }
.footer__main-top > :not(.footer-block) { flex-basis:100%; }

.footer__main-top > :not(.footer-block) { position:absolute; }
.footer__main .footer-block__list { display:block; padding:0; margin:0; }
.footer__main .footer-block__list a { display:block; padding:0; }
@media (max-width:767.98px) {
  .header-bottom .ps-mainmenu--desktop { min-height:0; height:auto; }
  .header-bottom .ps-mainmenu__mobile-toggle { min-height:0; height:auto; }
  .header-bottom .menu-toggle { min-height:0; height:auto; padding:0; display:flex; align-items:center; gap:8px; }
  .header-bottom .menu-toggle::after { content:'Menu'; font:400 14px system-ui,-apple-system,sans-serif; }
}

/* Catalog cards share the homepage typography and image treatment. */
.product-miniature__inner { border:0; box-shadow:none; border-radius:0; }
.product-miniature__image-container, .product-miniature__top { background:var(--ljdn-linen); border-radius:0; }
.product-miniature__image-link { border-radius:0; }
.product-miniature__image { mix-blend-mode:multiply; object-fit:contain; }
.product-miniature__title { font-size:15px; font-weight:600; color:var(--ljdn-text); }
.product-miniature__price { font-size:15px; font-weight:700; color:var(--ljdn-deep); }
