/* Shared visual reference for the catalogue and product detail pages. */
:root {
  --shop-ink:#202020;
  --shop-muted:#70706b;
  --shop-line:#e5e5e0;
  --shop-photo:#f7f7f5;
}
.gallery-page .gallery-shell { width:calc(100% - 64px); max-width:1440px; }
.gallery-page .gallery-content { padding:48px 0 72px; }
.gallery-page .gallery-toolbar { padding-bottom:32px; gap:24px; }
.gallery-page .gallery-toolbar h1 { font-size:clamp(30px,3vw,44px); line-height:1.15; font-weight:400; letter-spacing:-.02em; max-width:920px; }
.gallery-page .catalogue-controls { min-height:58px; border-bottom:1px solid var(--shop-line); }
.gallery-page .catalogue-layout { grid-template-columns:180px minmax(0,1fr); gap:32px; padding-top:32px; }
.gallery-page .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px 22px; }
.gallery-page .card-image { background:var(--shop-photo); aspect-ratio:1/1.3; padding:12px; }
.gallery-page .card-copy { padding:14px 0 0; }
.gallery-page .card-copy h3 { max-width:100%; margin:0; font:500 14px/1.55 "DM Sans",Arial,sans-serif; color:var(--shop-ink); }
.gallery-page .card-price { margin-top:8px; font-size:12px; line-height:1.6; color:var(--shop-muted); }
.gallery-page .card-price strong { margin-top:4px; font-size:14px; font-weight:500; color:var(--shop-ink); }
.gallery-page .catalogue-filters summary { font-size:11px; letter-spacing:.08em; margin-bottom:14px; }
.gallery-page .catalogue-filters details { margin-bottom:26px; }
.gallery-page .filter-options { gap:12px; }
.gallery-page .filter-options label { font-size:12px; color:#595954; line-height:1.45; }
.gallery-page .sort-control, .gallery-page .sort-control select, .gallery-page .filter-trigger { font-size:12px; }
.gallery-page .collection-finder-compact form { border-color:var(--shop-line); border-radius:4px; padding:18px 20px; }
.gallery-page .finder-examples { margin-top:12px; gap:8px; }
.gallery-page .card-image .style { font-size:10px; background:#ffffffed; border-color:var(--shop-line); }
.bivolino-product-page .product-layout { max-width:1440px; margin:0 auto; padding:40px 32px 72px; grid-template-columns:minmax(0,1.2fr) minmax(370px,.8fr); gap:48px; }
.bivolino-product-page .product-details { min-width:0; padding-top:4px; }
.bivolino-product-page .product-details h1 { max-width:none; margin:0 0 16px; font-size:32px!important; line-height:1.2; font-weight:400; letter-spacing:-.02em; }
.bivolino-product-page .product-details .eyebrow { font-size:11px; letter-spacing:.09em; line-height:1.6; margin-bottom:12px; }
.bivolino-product-page .price-line { margin:0 0 14px; }
.bivolino-product-page .price-line strong { font-size:22px; font-weight:500; letter-spacing:0; }
.bivolino-product-page .product-meta { font-size:12px; line-height:1.6; gap:8px; margin-bottom:18px; }
.bivolino-product-page .product-colours, .bivolino-product-page .fit-row { padding:20px 0; border-color:var(--shop-line); }
.bivolino-product-page .product-colours p { margin-bottom:12px; }
.bivolino-product-page .main-image, .bivolino-product-page .gallery-photo { background:var(--shop-photo); }
.bivolino-product-page .product-delivery-estimate { margin:22px 0 14px; font-size:13px; line-height:1.6; }
.bivolino-product-page .delivery-note { margin:16px 0 0; color:var(--shop-muted); font-size:12px; line-height:1.7; flex-wrap:wrap; }
.bivolino-product-page .accordions { margin-top:30px; border-color:var(--shop-line); }
.bivolino-product-page .accordions summary { padding:20px 0; font-size:12px; font-weight:600; letter-spacing:.07em; }
.bivolino-product-page .accordions details p { font-size:14px; line-height:1.8; color:#555550; }
.bivolino-product-page .related-products { max-width:1440px; margin-inline:auto; padding:56px 32px; }
.bivolino-product-page .related-grid { gap:28px 22px; }
:is(.gallery-page,.bivolino-product-page) main a:focus-visible { outline:2px solid #203d34; outline-offset:4px; }
@media(min-width:721px) {
  .gallery-page .catalogue-layout:has(.catalogue-filters.is-open) { grid-template-columns:minmax(0,1fr); }
  .gallery-page .catalogue-layout:has(.catalogue-filters.is-open) .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:1100px) {
  .gallery-page .catalogue-layout { gap:24px; grid-template-columns:160px minmax(0,1fr); }
  .gallery-page .product-grid { gap:30px 16px; }
  .bivolino-product-page .product-layout { grid-template-columns:minmax(0,1fr) minmax(330px,.9fr); gap:28px; padding-inline:24px; }
}
@media(max-width:850px) {
  .bivolino-product-page .product-layout { grid-template-columns:minmax(0,1fr); gap:28px; padding:28px 24px 48px; }
  .bivolino-product-page .product-details h1 { font-size:28px!important; }
}
@media(max-width:720px) {
  .gallery-page .gallery-shell { width:calc(100% - 32px); }
  .gallery-page .gallery-content { padding:28px 0 48px; }
  .gallery-page .gallery-toolbar { padding-bottom:24px; }
  .gallery-page .gallery-toolbar h1 { font-size:30px; }
  .gallery-page .catalogue-layout { display:block; padding-top:24px; }
  .gallery-page .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 12px; }
  .gallery-page .card-image { padding:8px; }
  .gallery-page .card-copy h3 { font-size:13px; }
  .gallery-page .card-price strong { font-size:13px; }
  .gallery-page .collection-finder-compact form { padding:16px; }
}
@media(max-width:580px) {
  .bivolino-product-page .product-layout { padding:20px 16px 40px; }
  .bivolino-product-page .product-details h1 { font-size:26px!important; }
  .bivolino-product-page .related-products { padding:40px 16px; }
  .bivolino-product-page .related-grid { gap:24px 12px; }
}

/* Keep product content below the header at every screen size. */
@media(min-width:769px) {
  .bivolino-product-page > .header { position:relative; top:auto; left:auto; }
}
@media(max-width:768px) {
  .bivolino-product-page .mobile-header { position:relative; top:auto; left:auto; }
}

/* Typography reference: one sans-serif family throughout the shopping pages. */
:is(.gallery-page,.bivolino-product-page) { font-family:"DM Sans",Arial,sans-serif; }
:is(.gallery-page,.bivolino-product-page) :is(h1,h2,h3,h4,button,input,select,textarea) { font-family:"DM Sans",Arial,sans-serif; }
.gallery-page .gallery-toolbar h1 {
  font-family:"DM Sans",Arial,sans-serif; font-size:clamp(28px,2.8vw,38px);
  font-weight:500; line-height:1.25; letter-spacing:-.025em;
}
.bivolino-product-page .product-details h1 {
  font-family:"DM Sans",Arial,sans-serif; font-size:30px!important;
  font-weight:500; line-height:1.3; letter-spacing:-.025em;
}
.gallery-page .card-copy h3 { font-size:15px; font-weight:500; line-height:1.5; letter-spacing:0; }
.gallery-page .card-price { font-size:13px; line-height:1.6; }
.gallery-page .card-price strong { font-size:15px; font-weight:500; }
.gallery-page .filter-options label { font-size:13px; line-height:1.5; }
.gallery-page .catalogue-filters summary { font-size:12px; font-weight:600; letter-spacing:.06em; }
.gallery-page .collection-finder-compact label { font-size:14px; font-weight:500; }
.gallery-page .finder-input-row input { font-size:15px; }
.bivolino-product-page .product-meta { font-size:13px; }
.bivolino-product-page .product-meta a { text-transform:none; }
.bivolino-product-page .product-colours p,
.bivolino-product-page .fit-row b { font-size:14px; font-weight:500; }
.bivolino-product-page .product-fit-copy b { font-size:14px; font-weight:500; line-height:1.6; }
.bivolino-product-page .product-fit-copy small { font-size:13px; line-height:1.6; }
.bivolino-product-page .accordions summary { font-size:14px; font-weight:500; text-transform:none; letter-spacing:0; }
.bivolino-product-page .accordions details p,
.bivolino-product-page .fabric-premium__description,
.bivolino-product-page .shirt-detail-premium__content p { font-size:15px; line-height:1.75; }
.bivolino-product-page :is(.shirt-details-premium,.fabric-premium,.related-products) :is(h2,h3) { font-family:"DM Sans",Arial,sans-serif; font-weight:500; letter-spacing:-.015em; }
@media(max-width:720px) {
  .gallery-page .gallery-toolbar h1 { font-size:28px; }
  .gallery-page .card-copy h3 { font-size:14px; }
  .gallery-page .card-price strong { font-size:14px; }
  .bivolino-product-page .product-details h1 { font-size:26px!important; }
  .gallery-page .finder-input-row input { font-size:16px; }
}
