/* Catalog surfaces preserve the site's Cormorant / Outfit typography. */
:root { --catalog-navy:#193968; --catalog-blue:#edf6fb; --catalog-border:#d8e4ed; --catalog-red:#b73143; }
.products-page,.product-detail,.checkout-page { background:#fff; }
.products-page-hero { text-align:left; padding:1.5rem 0 2rem; border-bottom:1px solid var(--catalog-border); }
.products-page-hero h1 { font-size:clamp(2.8rem,4.8vw,4.8rem); color:var(--catalog-navy); line-height:1.05; }
.products-page-hero p { max-width:540px; line-height:1.65; margin-top:1rem; color:#526276; }
.catalog-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:2.5rem; }
.catalog-sidebar h2 { font-size:1.05rem; color:var(--catalog-navy); font-weight:500; margin-bottom:1rem; }
.catalog-sidebar details { border-bottom:1px solid var(--catalog-border); padding:.8rem 0; }
.catalog-sidebar summary { cursor:pointer; color:#314860; font-size:.92rem; line-height:1.5; padding:.2rem 0; }
.catalog-sidebar button { display:block; text-align:left; padding:.55rem .65rem; margin:.25rem 0; width:100%; border:0; background:transparent; color:#4e6175; font:inherit; font-size:.82rem; cursor:pointer; border-radius:5px; }
.catalog-sidebar button.is-active { background:var(--catalog-blue); color:var(--catalog-navy); font-weight:500; }
.catalog-sidebar button:hover { background:#f0f5f8; }
.catalog-sidebar .category-all { font-size:.94rem; margin-bottom:.6rem; }
.catalog-help { margin-top:2rem; padding:1.1rem; background:var(--catalog-blue); line-height:1.6; border-radius:8px; font-size:.84rem; }
.catalog-help strong { color:var(--catalog-navy); font-weight:500; }
.catalog-help p { margin:.5rem 0; color:#53667b; }
.catalog-help a { color:var(--catalog-navy); text-decoration:underline; }
.products-toolbar { box-shadow:none; border:0; padding:0; margin-bottom:1.5rem; gap:.6rem; }
.products-search-wrap { flex-basis:100%; }
.products-search,.products-toolbar select { min-height:44px; background:#fff; border-color:var(--catalog-border); }
.products-toolbar select { max-width:100%; font-size:.8rem; flex:1; min-width:120px; }
.clear-filters { border:0; background:transparent; text-decoration:underline; color:#566b80; cursor:pointer; font:inherit; font-size:.8rem; min-height:44px; }
.products-count { width:100%; margin-top:.5rem; }
.products-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.2rem; }
.product-card { border-color:var(--catalog-border); border-radius:10px; box-shadow:none; min-width:0; }
.product-card:hover { transform:translateY(-2px); box-shadow:0 7px 24px #1939680d; }
.product-card-visual { position:relative; overflow:hidden; display:block; background:#f8fbfd; border-bottom:1px solid #e9eff4; }
.product-card-img { height:auto; aspect-ratio:1; padding:.65rem; background:#fff; }
.product-card-visual .product-card-badge { position:absolute; left:.75rem; top:.75rem; background:#fff; color:var(--catalog-red); border:1px solid #f0d6db; }
.product-card-body { padding:1rem; gap:.6rem; }
.product-card-cat { text-transform:none; letter-spacing:0; color:#5b7086; font-size:.75rem; }
.product-card-name { font-size:1.45rem; color:var(--catalog-navy); line-height:1.15; }
.product-card-desc { color:#607186; font-size:.82rem; }
.product-card-options { font-size:.76rem; color:#566b80; }
.product-card-footer { display:flex; align-items:stretch; flex-direction:column; gap:.85rem; border-top:0; }
.product-card-price { color:var(--catalog-navy); font-size:1.15rem; }
.product-card-price small { font-size:.7rem; font-weight:400; }
.product-card-actions { display:block; }
.product-card-btn--primary { display:block; width:100%; text-align:center; background:var(--catalog-navy); padding:.7rem .5rem; }
.product-card-btn--primary:hover { background:#24558a; }
.product-breadcrumb { flex-wrap:wrap; color:#667990; line-height:1.5; margin-bottom:1.5rem; }
.product-layout { gap:3rem; align-items:start; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr); }
.product-image-wrap { position:static; min-width:0; }
.gallery-brand { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.gallery-brand img { width:120px; height:60px; object-fit:contain; }
.gallery-brand span { font-size:.72rem; color:#5d7390; text-align:right; }
.gallery-expand { position:relative; cursor:zoom-in; border:1px solid var(--catalog-border); padding:0; }
.gallery-expand span { position:absolute; bottom:1rem; right:1rem; font:400 .73rem var(--ff-body); color:#526b86; background:#fffE; border:1px solid var(--catalog-border); padding:.4rem .6rem; border-radius:4px; }
.product-image-main img { padding:1rem; }
.gallery-thumbnails { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:.9rem; }
.gallery-thumb { width:72px; height:72px; background:#fff; border:1px solid var(--catalog-border); border-radius:6px; overflow:hidden; padding:3px; cursor:pointer; }
.gallery-thumb img { width:100%; height:100%; object-fit:contain; }
.gallery-thumb[aria-pressed=true] { border:2px solid var(--catalog-navy); }
.gallery-caption { color:#607186; font-size:.72rem; margin-top:.65rem; line-height:1.5; }
.gallery-dialog { margin:auto; padding:1rem; border:0; border-radius:10px; max-width:min(1000px,95vw); max-height:94vh; background:#fff; color:var(--catalog-navy); }
.gallery-dialog::backdrop { background:#11243bba; }
.gallery-dialog img { display:block; max-width:100%; width:80vw; height:76vh; object-fit:contain; }
.gallery-dialog > button { display:block; margin-left:auto; padding:.6rem 1rem; background:var(--catalog-navy); color:white; border:0; border-radius:5px; cursor:pointer; font:inherit; }
.gallery-dialog p { font-size:.8rem; padding:.75rem; text-align:center; }
.product-info { padding-top:1rem; gap:1.1rem; }
.product-name { font-size:clamp(2.3rem,3.8vw,3.7rem); line-height:1.04; color:var(--catalog-navy); }
.product-cat { letter-spacing:0; text-transform:none; color:#607a98; }
.product-badge { width:fit-content; }
.product-price { font-family:var(--ff-body); font-weight:500; font-size:2rem; color:var(--catalog-navy); }
.product-unit { font-size:.83rem; color:#607186; margin-top:.35rem; }
.product-desc { color:#4d6177; line-height:1.7; }
.product-options { padding:1.4rem 0; margin-top:.8rem; border-top:1px solid var(--catalog-border); }
.product-options h2 { font-family:var(--ff-display); color:var(--catalog-navy); font-size:1.6rem; font-weight:500; margin-bottom:1rem; }
.product-options fieldset { border:0; padding:0; margin:0 0 1rem; min-width:0; }
.product-options legend { font-size:.84rem; color:#4c6178; margin-bottom:.65rem; }
.option-buttons { display:flex; flex-wrap:wrap; gap:.55rem; }
.option-buttons button { background:#fff; border:1px solid #b7c9d8; color:#294a6b; min-height:44px; padding:.7rem .9rem; border-radius:5px; font:400 .88rem var(--ff-body); cursor:pointer; }
.option-buttons button small { display:block; margin-top:.35rem; color:#5b7187; font-size:.73rem; }
.option-buttons button[aria-pressed=true] { background:var(--catalog-navy); color:#fff; border-color:var(--catalog-navy); }
.option-buttons button[aria-pressed=true] small { color:#d5e7f4; }
.option-buttons button:disabled { color:#8c9aa5; background:#f5f7f9; border-color:#e2e8ed; cursor:not-allowed; text-decoration:line-through; }
.option-help { font-size:.76rem; line-height:1.6; color:#62788d; }
.selection-summary { background:var(--catalog-blue); padding:1rem; border-left:3px solid #87b7d6; border-radius:0 5px 5px 0; color:#294f70; font-size:.87rem; line-height:1.5; }
.product-specifications { font-size:.83rem; line-height:1.5; }
.product-specifications > div { display:grid; grid-template-columns:110px minmax(0,1fr); gap:1rem; padding:.7rem 0; border-bottom:1px solid #e6edf2; }
.product-specifications dt { color:#6b7f92; }
.product-specifications dd { margin:0; color:#2c4865; overflow-wrap:anywhere; }
.product-purchase { margin:0; padding-top:.7rem; gap:1rem; }
.product-add-btn { background:var(--catalog-navy); }
.product-add-btn:disabled { background:#dfe8ee; color:#617386; cursor:not-allowed; }
.product-qty-ctrl button,.product-qty-ctrl input { height:44px; }
.product-assistance { font-size:.8rem; color:#607186; line-height:1.8; }
.product-assistance a { color:var(--catalog-navy); text-decoration:underline; }
.checkout-header h1 { color:var(--catalog-navy); font-size:3rem; }
.checkout-section { border-color:var(--catalog-border); }
.checkout-section-title { color:var(--catalog-navy); font-size:1.6rem; }
.checkout-submit-btn,.checkout-login-gate button { background:var(--catalog-navy); }
.checkout-field input { min-height:44px; }
.order-summary-item-img img { object-fit:contain; background:white; }
.order-summary-item-info { min-width:0; overflow-wrap:anywhere; }
.footer-brand .footer-link { font-size:.8rem; overflow-wrap:anywhere; }
.product-layout :focus-visible,.catalog-layout :focus-visible,.gallery-dialog :focus-visible,.checkout-page :focus-visible { outline:3px solid #71aad1; outline-offset:3px; }
@media (max-width:1100px) { .products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .catalog-layout { gap:1.5rem; grid-template-columns:185px minmax(0,1fr); } .product-layout { gap:2rem; } }
@media (max-width:768px) { .catalog-layout { grid-template-columns:1fr; } .catalog-sidebar { display:none; } .products-page-hero { margin-bottom:1.7rem; } .product-layout { grid-template-columns:1fr; } .product-info { padding-top:0; } .product-breadcrumb { font-size:.75rem; } .product-info .product-name { font-size:2.5rem; } .products-count { margin-left:0; } .gallery-dialog img { height:65vh; } }
@media (max-width:480px) { .products-grid { gap:.75rem; } .product-card-body { padding:.75rem; } .product-card-name { font-size:1.22rem; } .product-card-desc { display:none; } .product-card-options { font-size:.68rem; } .product-card-price { font-size:1rem; } .product-card-btn { font-size:.74rem; } .product-card-badge { font-size:.6rem; } .checkout-section { padding:1.2rem; } .order-summary-item { flex-wrap:wrap; } .order-summary-item-price { margin-left:auto; } }
@media (prefers-reduced-motion:reduce) { .product-card,.product-card-img,.added-toast { transition:none; } .skeleton { animation:none; } }

/* Subpages have no dark hero behind the fixed navigation. */
.nav { background:rgba(255,255,255,.97); border-bottom:1px solid #e6edf3; }
.catalog-sidebar,.catalog-results { min-width:0; } .product-card-price { font-family:var(--ff-body); } .added-toast:not(.show) { visibility:hidden; }

/* Manufacturer artwork receives an exact logo in reserved white margin; branded frames already contain it. */
.product-image-main .gallery-mark,.gallery-dialog-stage .gallery-mark { display:none; position:absolute; top:12px; left:16px; width:78px; height:64px; object-fit:contain; padding:0; z-index:1; }
.product-image-main.has-manufacturer-art .gallery-mark,.gallery-dialog-stage.has-manufacturer-art .gallery-mark { display:block; }
.product-image-main.has-manufacturer-art #galleryImage { padding:88px 22px 30px; }
.gallery-thumb { position:relative; }
.gallery-thumb.has-manufacturer-art .gallery-thumb-photo { padding-top:17px; }
.gallery-thumb .gallery-thumb-mark { position:absolute; top:3px; left:4px; width:20px; height:16px; padding:0; object-fit:contain; background:white; }
.gallery-dialog-stage { position:relative; width:80vw; max-width:100%; height:76vh; background:white; }
.gallery-dialog-stage #dialogImage { display:block; width:100%; height:100%; padding:0; object-fit:contain; }
.gallery-dialog-stage.has-manufacturer-art #dialogImage { padding:90px 20px 12px; }
@media (max-width:768px) { .gallery-dialog-stage { height:65vh; } .product-image-main.has-manufacturer-art #galleryImage { padding:74px 12px 28px; } .product-image-main .gallery-mark,.gallery-dialog-stage .gallery-mark { width:64px; height:52px; top:10px; left:12px; } .gallery-dialog-stage.has-manufacturer-art #dialogImage { padding-top:72px; } }

/* Catalog controls: native full-width category selection and optional phone filters. */
.products-toolbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.products-search-wrap { grid-column:1/-1; min-width:0; }
.catalog-field { display:flex; flex-direction:column; min-width:0; gap:.45rem; color:#314860; font-size:.85rem; font-weight:400; }
.catalog-field[hidden] { display:none; }
.products-toolbar .catalog-field select { width:100%; min-width:0; min-height:48px; padding:.7rem 2rem .7rem .75rem; text-overflow:ellipsis; }
.catalog-refinements { grid-column:1/-1; min-width:0; }
.catalog-refinements > summary { display:none; }
.catalog-filter-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.show-products { display:none; }
.catalog-results-status { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:1rem; min-width:0; }
.catalog-results-status .products-count { margin:0; width:auto; white-space:normal; scroll-margin-top:100px; }
.clear-filters { flex-shrink:0; min-height:48px; padding:.6rem; }
.clear-filters:disabled { opacity:.45; cursor:default; }
.products-page .product-card-btn { min-height:44px; display:flex; align-items:center; justify-content:center; line-height:1.35; }
.products-page .pagination-btn { min-height:44px; min-width:44px; }
@media (max-width:768px) {
  .products-page { padding-top:5.5rem; }
  .products-page .products-page-hero { padding:.5rem 0 1.25rem; margin-bottom:1.25rem; }
  .products-page .products-page-hero h1 { font-size:clamp(2.1rem,8vw,3rem); }
  .products-page .products-page-hero p { font-size:.94rem; margin-top:.65rem; }
  .products-toolbar { grid-template-columns:minmax(0,1fr); gap:.85rem; }
  .products-toolbar .products-search,.products-toolbar select { font-size:16px; min-height:48px; }
  .catalog-field { font-size:.88rem; }
  .catalog-refinements { border:1px solid var(--catalog-border); border-radius:8px; background:#f8fbfd; }
  .catalog-refinements > summary { display:flex; align-items:center; justify-content:space-between; gap:.75rem; min-height:48px; padding:.8rem 1rem; color:var(--catalog-navy); cursor:pointer; list-style:none; font-size:.96rem; }
  .catalog-refinements > summary::-webkit-details-marker { display:none; }
  .filter-chevron { width:8px; height:8px; flex-shrink:0; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin-right:3px; }
  .catalog-refinements[open] .filter-chevron { transform:rotate(225deg); }
  .catalog-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 1rem 1rem; gap:1rem .75rem; }
  .catalog-sort-field { grid-column:1/-1; }
  .show-products { display:block; grid-column:1/-1; width:100%; min-height:48px; padding:.7rem 1rem; border:0; border-radius:5px; background:var(--catalog-navy); color:white; font:500 16px var(--ff-body); cursor:pointer; }
  .products-page .product-card-name { font-size:1.35rem; overflow-wrap:anywhere; }
  .products-page .product-card-btn { font-size:.875rem; padding:.75rem .4rem; }
  .products-page .product-card-options { font-size:.78rem; line-height:1.5; overflow-wrap:anywhere; }
  .products-page .pagination { gap:.35rem; flex-wrap:wrap; margin-top:1.75rem; }
  .products-page .pagination-btn { padding:.55rem .65rem; font-size:1rem; }
}
@media (max-width:359px) {
  .products-page .products-grid { grid-template-columns:minmax(0,1fr); }
  .catalog-filter-fields { grid-template-columns:minmax(0,1fr); }
}

/* Package prices and implant sizes remain attached to their product family. */
.product-card--package-table { grid-column:span 2; }
.product-card--package-table .product-card-img { aspect-ratio:auto; height:280px; object-fit:contain; }
.product-card-price .product-card-price-unit { display:block; margin-top:.3rem; font-size:.8rem; line-height:1.45; color:#4d6177; }
.catalog-connection { display:flex; flex-direction:column; gap:.25rem; padding:.65rem .75rem; background:var(--catalog-blue); border-left:3px solid #87b7d6; color:var(--catalog-navy); font-size:.87rem; line-height:1.4; overflow-wrap:anywhere; }
.catalog-connection > span { color:#526b80; font-size:.74rem; }
.catalog-connection strong { font-weight:500; }
.catalog-table-wrap { max-width:100%; margin:.65rem 0; }
.catalog-option-table { width:100%; border-collapse:collapse; text-align:left; color:#314860; font-size:.82rem; line-height:1.5; table-layout:fixed; }
.catalog-option-table caption { text-align:left; font-weight:500; color:var(--catalog-navy); padding:.5rem 0; }
.catalog-option-table th,.catalog-option-table td { padding:.6rem .5rem; border-bottom:1px solid var(--catalog-border); vertical-align:top; overflow-wrap:anywhere; }
.catalog-option-table thead { background:#f2f7fa; }
.catalog-option-table th { font-weight:500; }
.catalog-package-table th:first-child { width:31%; }
.catalog-package-table th:last-child { width:25%; }
.catalog-package-table td:last-child { white-space:nowrap; }
.catalog-implant-table th:first-child { width:31%; }
.catalog-lengths { display:flex; flex-wrap:wrap; gap:.2rem .45rem; }
.catalog-lengths > span { display:inline-block; }
.catalog-lengths > span:not(:last-child)::after { content:','; }
.catalog-size-disclosure { border-top:1px solid var(--catalog-border); border-bottom:1px solid var(--catalog-border); }
.catalog-size-disclosure > summary { min-height:44px; padding:.65rem 0; font-size:.78rem; color:var(--catalog-navy); cursor:pointer; line-height:1.45; }
.product-card .catalog-option-table { font-size:.75rem; }
.product-card .catalog-option-table th,.product-card .catalog-option-table td { padding:.5rem .35rem; }
.catalog-shades { font-size:.78rem; color:#526b80; }
.catalog-shades > div { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.4rem; }
.catalog-shades a { display:flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; padding:.45rem; border:1px solid #b7c9d8; border-radius:5px; color:var(--catalog-navy); background:white; font-size:.85rem; }
.catalog-shades a:hover { background:var(--catalog-blue); border-color:var(--catalog-navy); }
@media (max-width:768px) {
  .product-card--package-table .product-card-img { height:230px; }
  .product-card--implant { grid-column:span 2; }
  .product-card--implant .product-card-img { aspect-ratio:auto; height:230px; object-fit:contain; }
  .product-card--implant .catalog-option-table { font-size:.85rem; }
  .product-card--implant .catalog-size-disclosure > summary { font-size:.9rem; }
}
@media (max-width:359px) { .product-card--package-table,.product-card--implant { grid-column:auto; } }
