/* Interactive catalogue layouts are independent of WooCommerce's float columns. */
.collection-page { --catalogue-columns: 3; }
.collection-page[data-grid="2"] { --catalogue-columns: 2; }
.collection-page[data-grid="3"] { --catalogue-columns: 3; }
.collection-page[data-grid="4"] { --catalogue-columns: 4; }
.collection-page .products {
  display: grid;
  grid-template-columns: repeat(var(--catalogue-columns), minmax(0, 1fr));
  gap: 48px;
}
.collection-page .products::before,
.collection-page .products::after { display: none !important; }
.woocommerce .collection-page ul.products li.product {
  float: none;
  clear: none;
  width: auto;
  margin: 0;
}
.grid-controls { display: flex; align-items: center; gap: 9px; padding: 12px 26px; border-right: 1px solid var(--line); }
.grid-controls button { width: 25px; height: 25px; padding: 2px; border: 0; opacity: .4; }
.grid-controls svg { width: 100%; height: 100%; }
.grid-controls button[aria-pressed="true"] { opacity: 1; }
.collection-toolbar { position: sticky; top: var(--header-height); z-index: 15; background: var(--mist); }
body.admin-bar .collection-toolbar { top: calc(var(--header-height) + 32px); }
.announcement .countdown-unit strong { font-size: 13px; font-weight: 600; }
.announcement .countdown-unit span { font-size: 9px; }
.announcement .countdown-unit { min-width: 34px; }
.collection-banner { overflow: hidden; }
.collection-banner .cover { transform: scale(1.12); }
.collection-banner .banner-content { padding-top: 150px; }
.collection-banner h1 { font-size: 30px; }
.collection-toolbar__native { padding-left: 15px; }
.woocommerce .collection-toolbar .woocommerce-result-count { text-align: center; }
.price-filter fieldset { margin: 0; padding: 20px 0; border: 0; border-bottom: 1px solid var(--line); display: grid; gap: 10px; }
.price-filter legend { padding: 0; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.price-filter input[type="checkbox"] { width: auto; padding: 0; margin-right: 8px; accent-color: var(--ink); }
.price-filter input[type="number"] { margin: 0; }
.drawer .widget_shopping_cart_content { overflow: auto; max-height: calc(100dvh - 150px); }
.cart-feedback { color: #a33; margin-top: 20px; }
[aria-busy="true"] { opacity: .5; pointer-events: none; }
.mobile-menu, .mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.mobile-menu > li { border-bottom: 1px solid var(--line); }
.mobile-menu a { display: block; padding: 14px 0; font-size: 18px; }
.mobile-menu ul { padding: 0 0 12px 18px; }.mobile-menu ul a { font-size: 14px; padding: 7px 0; }
.look-carousel { position: relative; }
.carousel-arrow { display: grid; place-items: center; position: absolute; top: calc(50% - 22px); width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: #fff; font-size: 26px; z-index: 2; }
.carousel-arrow--previous { left: -22px; }.carousel-arrow--next { right: -22px; }
.look-dots { display: flex; justify-content: center; gap: 12px; margin-top: 32px; }
.look-dots button { width: 8px; height: 8px; padding: 0; border: 1px solid var(--ink); border-radius: 50%; }
.look-dots button[aria-pressed="true"] { background: var(--ink); }
.look-product:focus { outline: 1px solid var(--line); outline-offset: 15px; }
.look-hotspot { border: 0; }
.press-logos button { padding: 10px; background: transparent; border: 0; opacity: .4; }
.press-logos button[aria-pressed="true"] { opacity: 1; }.press-logos button img { opacity: 1; }
.product-carousel { position: relative; min-width: 0; --rail-gutter: 0px; }
.product-carousel:has(> .container) { --rail-gutter: var(--gutter); }
.rail-navigation { position: absolute; inset: 0; pointer-events: none; }
.rail-navigation button { position: absolute; top: calc(var(--rail-image-height, 260px) / 2); transform: translateY(-50%); display: grid; place-items: center; border: 1px solid var(--line); width: 44px; height: 44px; border-radius: 50%; background: white; font-size: 25px; line-height: 1; pointer-events: auto; box-shadow: 0 2px 8px #00000008; }
.rail-navigation button:first-child { left: calc(var(--rail-gutter) - 22px); }
.rail-navigation button:last-child { right: calc(var(--rail-gutter) - 22px); }
.rail-navigation button:disabled { visibility: hidden; }
@media (max-width: 699px) { .rail-navigation { display: none; } }
.quantity-control { display: flex; border: 1px solid #ccc; align-items: stretch; max-width: 130px; }
.quantity-control button { border: 0; width: 32px; padding: 0; flex-shrink: 0; }
.featured-buy .quantity-control input { width: 48px; border: 0; padding: 0; appearance: textfield; }
.quantity-control input::-webkit-inner-spin-button { appearance: none; }
[data-featured-gallery] img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.slide-pause { position: absolute; right: 32px; bottom: 28px; color: #fff; border: 1px solid #ffffff80; border-radius: 50%; width: 30px; height: 30px; z-index: 3; font-size: 12px; }
h1, h2, h3, h4 { letter-spacing: var(--heading-tracking, .18em); }
body { font-family: var(--body-font, Nunito, sans-serif); }
h1, h2, h3, h4, .eyebrow, .button, .primary-menu, .announcement, .collection-tabs { font-family: var(--heading-font, "Instrument Sans", sans-serif); }
.home-section.has-custom-background > section { background-color: var(--section-background); }
.footer-socials { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11px; }
.atelier-contact-form { display: grid; gap: 12px; max-width: 680px; margin: 35px auto; }
.atelier-contact-form input, .atelier-contact-form textarea { width: 100%; padding: 12px; border: 1px solid var(--line); background: #fff; }
.atelier-contact-form button { justify-self: start; margin-top: 12px; }
.explore-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.explore-grid .mosaic-tile { min-height: 400px; }
.collection-maintenance { min-height: 760px; }
.button, .woocommerce a.button, .woocommerce button.button, .woocommerce button.button.alt { background-color: var(--button-color, var(--ink)); }
.button--white { background-color: #fff; }
@media (min-width: 1600px) { .hero { height: min(var(--hero-height, 850px), 1000px); } }
@media (max-width: 999px) { .collection-page .products { gap: 28px; } }
@media (max-width: 699px) {
  .explore-grid { grid-template-columns: 1fr; gap: 20px; }.explore-grid .mosaic-tile { min-height: 320px; }
  .collection-maintenance { min-height: 0; }
  body.admin-bar .collection-toolbar { top: calc(var(--header-height) + 46px); }
  .collection-banner .banner-content { padding-top: 100px; }.collection-banner h1 { font-size: 26px; }
  .collection-page[data-grid="2"] { --catalogue-columns: 1; }
  .collection-page[data-grid="3"] { --catalogue-columns: 2; }
  .collection-page[data-grid="4"] { --catalogue-columns: 3; }
  .collection-page .products { gap: 25px 12px; }
  .grid-controls { padding: 12px; gap: 7px; }
  .grid-controls button { width: 20px; height: 20px; }
  .collection-toolbar__native { padding-left: 0; }
  .woocommerce .collection-toolbar .woocommerce-result-count { display: none; }
  .woocommerce .collection-toolbar .woocommerce-ordering { margin-left: auto; }
  .filter-button { padding-inline: 14px; }
  .collection-page[data-grid="4"] .product-card h3 { font-size: 9px; letter-spacing: .02em; }
  .collection-page[data-grid="4"] .quick-add { width: 24px; height: 24px; right: 6px; bottom: 6px; }
  .collection-page[data-grid="4"] .product-badge { position: static; font-size: 7px; }
  .carousel-arrow--previous { left: -12px; }.carousel-arrow--next { right: -12px; }
  .carousel-arrow { width: 34px; height: 34px; }
  .press-logos { gap: 20px; }
  .featured-buy { flex-wrap: wrap; }.featured-buy > .button { flex-basis: 100%; }
}
@media (max-width: 600px) {
  body.admin-bar .site-header { top: 0; }
  body.admin-bar .collection-toolbar { top: var(--header-height); }
}

/* Match the demo's section widths, rather than stretching every editorial grid. */
:root {
  --layout-xs: 680px;
  --layout-md: 1150px;
  --layout-lg: 1260px;
  --layout-xl: 1360px;
}
.brand-statement h2 { max-width: min(var(--layout-xs), calc(100% - var(--gutter) * 2)); }
.collaboration, .design-story, .timeline-grid, .timeline-years { --content-max: var(--layout-md); }
.comparison, .article-grid, .featured-product { --content-max: var(--layout-lg); }
.look-carousel { --content-max: var(--layout-xl); }
.collection-mosaic {
  width: calc(100% - var(--gutter) * 2);
  max-width: var(--layout-lg);
  margin-inline: auto;
  padding-inline: 0;
}
/* The reference uses 20 / 32 / 48px gutters at these breakpoints. */
@media (min-width: 700px) and (max-width: 1149px) { :root { --gutter: 32px; } }
@media (min-width: 1150px) { :root { --gutter: 48px; } }

/* Measured demo proportions: keep its type scale and compact navigation. */
.brand, .brand img { width: 130px; }
.hero-content--boxed { width: min(90%, 460px); padding: 36px; border: 1px solid #ffffff66; background: #ffffff0d; }
.section-heading h2, .collection-tabs button, .banner-content h2 {
  font-size: clamp(20px, calc(17.0732px + .78049vw), var(--heading-size, 28px));
}
@media (max-width: 699px) {
  :root { --header-height: 54px; }
  .site-header { grid-template-columns: 1fr 80px 1fr; padding-inline: 20px; }
  .brand, .brand img { width: 80px; }
  .announcement { min-height: 64px; justify-content: space-between; padding: 12px 20px; gap: 20px; font-size: 10px; letter-spacing: .14em; }
  .announcement > div:first-child { max-width: 160px; }
  .announcement a { display: none; }
  .announcement .countdown { display: flex; gap: 10px; }
  .announcement .countdown-unit { min-width: 16px; }
  .announcement .countdown-unit strong { font-size: 11px; }
  .announcement .countdown-unit span { font-size: 7px; }
  .social-grid { scrollbar-width: none; }
  .social-grid::-webkit-scrollbar { display: none; }
}

/* Keep cart photography, names and quantities aligned as fragments refresh. */
#cart-panel[open] { display: flex; flex-direction: column; }
#cart-panel .drawer-heading { flex-shrink: 0; margin-bottom: 24px; }
#cart-panel .widget_shopping_cart_content { display: flex; flex-direction: column; flex: 1; min-height: 0; max-height: none; overflow: visible; }
#cart-panel .woocommerce-mini-cart { flex: 1; overflow-y: auto; min-height: 0; margin: 0; }
#cart-panel .woocommerce-mini-cart-item { position: relative; min-height: 130px; padding: 20px 0; margin: 0; border-bottom: 1px solid var(--line); }
#cart-panel .woocommerce-mini-cart-item > a:not(.remove) { display: block; padding: 8px 28px 0 108px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
#cart-panel .woocommerce-mini-cart-item img { position: absolute; top: 20px; left: 0; width: 90px; height: 90px; object-fit: cover; float: none; margin: 0; }
#cart-panel .woocommerce-mini-cart-item > .quantity { display: block; margin: 10px 0 0 108px; color: var(--muted); font-size: 13px; }
#cart-panel .woocommerce-mini-cart-item .variation { margin-left: 108px; font-size: 12px; }
#cart-panel .woocommerce-mini-cart-item .remove { position: absolute; top: 22px; right: 0; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 0; color: var(--muted) !important; background: transparent; font-size: 20px; font-weight: 400; }
#cart-panel .woocommerce-mini-cart-item .remove:hover { color: var(--ink) !important; background: #eee; }
#cart-panel .woocommerce-mini-cart__total { display: flex; justify-content: space-between; gap: 20px; margin: 0; padding: 24px 0; border-top: 1px solid var(--line); font-size: 14px; }
#cart-panel .woocommerce-mini-cart__total strong { font-weight: 400; }
#cart-panel .woocommerce-mini-cart__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; }
#cart-panel .woocommerce-mini-cart__buttons a { text-align: center; font-size: 11px; letter-spacing: .1em; padding: 15px 10px; }
#cart-panel .woocommerce-mini-cart__empty-message { margin-block: auto; text-align: center; padding-block: 40px; }
.cart-feedback:empty { display: none; }
.mobile-account-link { display: flex; align-items: center; gap: 12px; margin-top: 30px; padding-block: 12px; font-size: 13px; }
.mobile-account-link svg { width: 22px; height: 22px; }

/* Native WooCommerce blocks use the same restrained buttons as the storefront. */
.woocommerce-cart .wc-block-components-button,
.woocommerce-checkout .wc-block-components-button {
  background: var(--button-color, var(--ink)); color: white; border: 1px solid var(--button-color, var(--ink)); border-radius: 0;
  font-family: var(--heading-font); font-size: 11px; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; min-height: 48px;
}
.woocommerce-cart .wc-block-components-quantity-selector,
.woocommerce-checkout .wc-block-components-text-input input,
.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input { border-radius: 0; }
