/* OpenCart pages that still use the standard .container layout. */
main > .container:not(#account-login) {
  padding-top: 32px;
  padding-bottom: 72px;
}

main > .container:not(#account-login) .breadcrumb {
  margin-bottom: 28px;
  color: var(--muted);
  font-size: 12px;
}

main > .container:not(#account-login) .breadcrumb-item + .breadcrumb-item::before {
  color: var(--line);
}

main > .container:not(#account-login) h1 {
  margin-bottom: 20px;
  color: var(--ink);
  font-size: clamp(30px, 3vw, 42px);
  font-weight: 400;
  letter-spacing: -0.03em;
}

main > .container:not(#account-login) .btn-primary {
  --bs-btn-bg: var(--accent);
  --bs-btn-border-color: var(--accent);
  --bs-btn-hover-bg: var(--ink);
  --bs-btn-hover-border-color: var(--ink);
  --bs-btn-active-bg: var(--ink);
  --bs-btn-active-border-color: var(--ink);
  --bs-btn-focus-shadow-rgb: 23, 63, 176;
}

main > .container:not(#account-login) .form-control:focus,
main > .container:not(#account-login) .form-select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(23, 63, 176, 0.15);
}

main > .container:not(#account-login) .card,
main > .container:not(#account-login) .form-control,
main > .container:not(#account-login) .form-select {
  border-radius: 0;
}

#checkout-cart {
  min-height: 50vh;
}

@media (max-width: 1050px) {
  .editorial-header .nav-dropdown {
    flex-direction: column;
  }
}

@media (max-width: 767px) {
  main > .container:not(#account-login) {
    padding-top: 24px;
    padding-bottom: 56px;
  }

  #checkout-cart {
    min-height: 0;
  }
}

/* Keep complete names/status text while aligning each row's catalogue actions. */
.product-card.lomo-catalogue-card { display:flex;flex-direction:column;height:100%; }
.product-card.lomo-catalogue-card .product-image { flex-shrink:0; }
.product-card.lomo-catalogue-card .product-info { flex:1;display:flex;flex-direction:column; }
.product-card.lomo-catalogue-card .product-info > form,
.product-card.lomo-catalogue-card .product-info > .lomo-card-details { margin-top:auto;padding-top:8px; }

/* Mobile Account is available inside the existing menu while the header link is hidden. */
.editorial-header .mobile-account-link { display:none; }
@media (max-width:767px) {
  .editorial-header .mobile-account-link { display:block; }
  .editorial-header nav.main-nav { max-height:calc(100vh - 102px);max-height:calc(100dvh - 102px);overflow-y:auto; }
}
/* Contact columns exist only for populated public details; no empty quarter-width cell. */
#information-contact .lomo-contact-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:1rem 2rem;align-items:start; }
#information-contact .lomo-contact-cell { min-width:0; }
#information-contact .lomo-contact-email { display:inline-block;max-width:100%;overflow-wrap:anywhere; }
@media (min-width:576px) { #information-contact .lomo-contact-email { white-space:nowrap;overflow-wrap:normal; } }

/* Assortment taxonomy: use honest text headers instead of unrelated collection photography. */
.taxonomy-category-hero { padding:32px 0 36px; }
.taxonomy-category-hero h1,.taxonomy-hub h1 { font-size:clamp(28px,4vw,48px);font-weight:400;line-height:1.18;overflow-wrap:anywhere; }
.taxonomy-breadcrumbs { display:flex;flex-wrap:wrap;gap:8px;font-size:12px;margin-bottom:24px; }
.taxonomy-hub { max-width:1184px;margin:auto;padding:64px 32px 88px; }
.taxonomy-root-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:24px;margin:32px 0 48px; }
.taxonomy-root-card { display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding:24px 0;color:inherit; }
.taxonomy-root-card strong { font-size:20px;font-weight:400; }
.taxonomy-collection-group { padding:32px 0;border-top:1px solid var(--line);scroll-margin-top:100px; }
.taxonomy-collection-links { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px 28px; }
.taxonomy-collection-links a { display:flex;justify-content:space-between;gap:16px;overflow-wrap:anywhere; }
.taxonomy-search-filter { display:grid;gap:8px;margin-top:20px;max-width:560px; }
@media(max-width:1050px){.editorial-header .lomo-collections-nav .nav-dropdown{display:none;}}
@media(max-width:767px){.taxonomy-hub{padding:36px 20px 56px;}.taxonomy-category-hero{padding-top:16px;}}

/* T/F taxonomy: long parent names and multiple homepage rows stay within the existing layout. */
.categories { grid-template-columns:repeat(4,minmax(0,1fr)); }
.categories a { min-width:0;gap:12px;overflow-wrap:anywhere; }
.categories a > span { flex-shrink:0; }
.categories a:nth-child(4n) { border-right:0; }
.categories a:nth-child(n+5) { border-top:1px solid var(--line); }
.categories a:nth-child(4n+1) { padding-left:0; }
.editorial-header .nav-dropdown a { white-space:normal;overflow-wrap:anywhere; }
@media(max-width:1050px){.editorial-header nav.main-nav{max-height:calc(100dvh - 102px);overflow-y:auto;}}
@media(max-width:767px){
 .categories { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .categories a:nth-child(2n) { border-right:0; }
 .categories a:nth-child(2n+1) { padding-left:0; }
 .categories a:nth-child(n+3) { border-top:1px solid var(--line); }
}

/* Direct catalogue listings: collections stay above the products on every screen. */
.lomo-shop-listing .taxonomy-category-hero { padding:24px 0 20px; }
.lomo-shop-listing .taxonomy-breadcrumbs { margin-bottom:18px; }
.lomo-shop-listing .taxonomy-category-hero h1 { margin-bottom:12px; }
.lomo-listing-intro { margin:0;max-width:65ch; }
.lomo-catalogue-filters { border-block:1px solid var(--line);padding:20px 0;scroll-margin-top:100px; }
.lomo-filter-heading { display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px; }
.lomo-filter-heading h2 { margin:0;font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase; }
.lomo-back-link,.lomo-filter-reset { font-size:12px;text-underline-offset:4px; }
.lomo-filter-chips { display:flex;flex-wrap:wrap;gap:8px; }
.lomo-filter-chip { display:inline-flex;align-items:baseline;gap:8px;max-width:100%;padding:10px 14px;border:1px solid var(--line);font-size:12px;line-height:1.4;overflow-wrap:anywhere;color:var(--ink); }
.lomo-filter-chip span { font-size:10px;opacity:.7; }
.lomo-filter-chip:hover,.lomo-filter-chip:focus-visible { border-color:var(--ink); }
.lomo-filter-chip.is-selected { background:var(--ink);border-color:var(--ink);color:var(--bg); }
.lomo-listing-toolbar { position:relative;display:flex;align-items:center;gap:16px;margin-top:20px;flex-wrap:wrap; }
.lomo-result-count { margin:0;font-size:13px; }
/* One native modal: desktop right drawer, mobile full-height sheet. */
/* Catalogue controls follow the storefront's square, outlined brand buttons. */
.lomo-catalogue-filters .lomo-filter-control,
.lomo-catalogue-filters .lomo-sort-control { appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 18px;border:1px solid var(--ink);border-radius:0;background:var(--bg);color:var(--ink);font:inherit;font-size:12px;font-weight:500;line-height:1.2;letter-spacing:.08em;text-transform:uppercase;cursor:pointer; }
.lomo-catalogue-filters .lomo-filter-control:hover,
.lomo-catalogue-filters .lomo-sort-control:hover,
.lomo-catalogue-filters .lomo-drawer-trigger[aria-expanded="true"] { border-color:var(--accent);background:var(--soft);color:var(--accent); }
.lomo-catalogue-filters .lomo-filter-control:focus-visible,
.lomo-catalogue-filters .lomo-sort-control:focus-visible { outline:2px solid var(--accent);outline-offset:3px; }
.lomo-filter-control { margin-left:auto; }
.lomo-catalogue-drawer { position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--ink);overflow:hidden; }
.lomo-catalogue-drawer:not([open]) { display:none; }
.lomo-catalogue-drawer[open] { display:flex;justify-content:flex-end; }
.lomo-catalogue-drawer::backdrop { background:rgb(0 0 0 / 38%); }
.lomo-drawer-sheet { width:min(460px,100%);height:100%;display:flex;flex-direction:column;background:var(--bg);box-shadow:-8px 0 30px #0002; }
.lomo-drawer-header { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border-bottom:1px solid var(--line);flex-shrink:0; }
.lomo-drawer-header h2 { margin:0;font-size:22px;font-weight:400; }
.lomo-drawer-close { display:flex;align-items:center;gap:12px;min-height:44px;border:0;background:none;color:var(--ink);padding:0 6px;font:inherit;font-size:13px;cursor:pointer; }
.lomo-drawer-close span { font-size:28px;line-height:1; }
.lomo-drawer-content { display:flex;flex-direction:column;flex:1;min-height:0;margin:0; }
.lomo-drawer-content[hidden] { display:none; }
.lomo-drawer-options { flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;border:0;margin:0;padding:24px; }
.lomo-drawer-options legend { float:left;width:100%;margin:0 0 20px;padding:0;font-size:13px;letter-spacing:.06em;text-transform:uppercase; }
.lomo-drawer-choice { clear:both;display:flex;align-items:center;gap:12px;padding:14px 0;min-height:48px;border-bottom:1px solid var(--line);font-size:14px;cursor:pointer; }
.lomo-drawer-choice input { width:18px;height:18px;flex-shrink:0;accent-color:var(--ink); }
.lomo-drawer-choice > span:not(.lomo-choice-count) { overflow-wrap:anywhere; }
.lomo-choice-count { margin-left:auto;flex-shrink:0;opacity:.65;font-size:12px; }
.lomo-drawer-actions { display:flex;align-items:center;gap:20px;padding:20px 24px;padding-bottom:max(20px,env(safe-area-inset-bottom));border-top:1px solid var(--line);flex-shrink:0;background:var(--bg); }
.lomo-drawer-reset { border:0;background:none;color:var(--ink);padding:12px 0;font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:4px;cursor:pointer; }
.lomo-drawer-apply { flex:1;display:block;text-align:center;border:1px solid var(--ink);background:var(--ink);color:var(--bg);padding:14px 18px;min-height:48px;font:inherit;font-size:13px;cursor:pointer; }
.lomo-drawer-apply:hover { opacity:.88;color:var(--bg); }
.lomo-listing-toolbar .lomo-sort-form { margin-left:auto;display:flex;align-items:center;gap:12px;max-width:100%; }
.lomo-sort-form label { margin:0;font-size:12px; }
.lomo-catalogue-filters select.lomo-sort-control { appearance:auto;max-width:100%; }
.lomo-catalogue-drawer :focus-visible,.lomo-drawer-trigger:focus-visible { outline:2px solid var(--ink);outline-offset:3px; }
.lomo-shop-listing .reference-products { padding-top:24px; }
@media(max-width:767px){
 .lomo-shop-listing { padding-inline:20px; }
 .lomo-shop-listing .taxonomy-category-hero { padding-top:18px; }
 .lomo-filter-heading { align-items:flex-start; }
 .lomo-filter-chips { flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:6px;scrollbar-width:thin; }
 .lomo-filter-chip { padding:9px 11px;flex-shrink:0;max-width:85vw; }
 .lomo-listing-toolbar { gap:12px; }
 .lomo-drawer-sheet { width:100%;box-shadow:none; }
 .lomo-drawer-header { padding:14px 20px; }
 .lomo-drawer-options { padding:20px; }
 .lomo-drawer-actions { padding-inline:20px; }
 .lomo-catalogue-filters { scroll-margin-top:82px; }
}

/* Product details: factual copy and native keyboard-accessible accordions. */
#product-info .lomo-pdp-purchase { width:100%;max-width:360px;flex-wrap:nowrap; }
#product-info .lomo-pdp-purchase .input-group-text { margin:0; }
#product-info .lomo-pdp-purchase #input-quantity { flex:0 1 64px;width:64px;min-width:48px;text-align:center; }
#product-info .lomo-pdp-purchase #button-cart { flex:1;min-width:0;white-space:normal; }
.lomo-pdp-details { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin:64px 0 72px; }
.lomo-pdp-description { padding:32px 64px 32px 24px; }
.lomo-pdp-description h2 { margin:0 0 40px;text-transform:uppercase;font-size:23px;letter-spacing:.13em;font-weight:400;text-align:center; }
.lomo-pdp-description p { font-size:15px;line-height:1.7;overflow-wrap:anywhere; }
.lomo-pdp-accordions { border-left:1px solid var(--line);padding:12px 24px 12px 64px;min-width:0; }
.lomo-pdp-accordion { margin:0;border-bottom:1px solid var(--line); }
.lomo-pdp-accordion > summary { list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:27px 0;cursor:pointer;font-size:13px;font-weight:400;letter-spacing:.09em;text-transform:uppercase; }
.lomo-pdp-accordion > summary::-webkit-details-marker { display:none; }
.lomo-pdp-accordion > summary::after { content:'+';font-size:23px;line-height:1; }
.lomo-pdp-accordion[open] > summary::after { content:'−'; }
.lomo-pdp-accordion > summary:focus-visible { outline:2px solid var(--ink);outline-offset:4px; }
.lomo-pdp-accordion dl { margin:0 0 24px;font-size:14px; }
.lomo-pdp-accordion dl > div { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;padding:10px 0; }
.lomo-pdp-accordion dt { font-weight:500; }
.lomo-pdp-accordion dd { margin:0;overflow-wrap:anywhere; }
.lomo-pdp-accordion-body { padding:0 0 24px;font-size:14px;line-height:1.65;overflow-wrap:anywhere; }
.lomo-pdp-accordion-body a { text-decoration:underline;text-underline-offset:3px; }
.lomo-pdp-related { margin:0 0 64px; }
.lomo-pdp-related > h2 { text-align:center;font-weight:400;font-size:26px;margin:0 0 32px; }
.lomo-pdp-related .product-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px; }
.lomo-pdp-bottom-breadcrumbs { border-top:1px solid var(--line);padding-top:24px;margin:32px 0; }
.lomo-pdp-breadcrumbs { flex-wrap:wrap;overflow-wrap:anywhere; }
#pdp-reviews { scroll-margin-top:110px; }
@media(max-width:767px){
 .lomo-pdp-details { grid-template-columns:minmax(0,1fr);margin:40px 0 48px; }
 .lomo-pdp-description { padding:20px 0 30px; }
 .lomo-pdp-description h2 { text-align:left;font-size:21px;margin-bottom:24px; }
 .lomo-pdp-accordions { border-left:0;border-top:1px solid var(--line);padding:0; }
 .lomo-pdp-accordion > summary { padding:23px 0; }
 .lomo-pdp-related .product-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; }
 .lomo-pdp-related > h2 { font-size:23px; }
 .lomo-pdp-related { margin-bottom:40px; }
}

/* Keep the existing favourite action beside the purchase controls at all sizes. */
#product-info .lomo-pdp-purchase-actions { display:flex;align-items:center;gap:12px;max-width:416px; }
#product-info .lomo-pdp-purchase-actions .lomo-pdp-purchase { flex:1;min-width:0; }
#product-info .lomo-pdp-purchase-actions > .lomo-heart { flex:none; }

/* Cart removal keeps a quiet icon with a full keyboard/touch target. */
#checkout-cart .lomo-cart-remove { display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:44px;min-height:44px;padding:8px;border:0;border-radius:0;background:transparent;color:var(--ink);text-decoration:none; }
#checkout-cart .lomo-cart-remove:hover { color:var(--accent); }
#checkout-cart .lomo-cart-remove:focus-visible { outline:2px solid var(--accent);outline-offset:2px; }

@media(max-width:480px) {
 #product-info .lomo-pdp-purchase-actions { display:grid;grid-template-columns:auto minmax(0,1fr) 44px;gap:12px; }
 #product-info .lomo-pdp-purchase-actions .lomo-pdp-purchase { display:contents; }
 #product-info .lomo-pdp-purchase-actions .input-group-text { grid-column:1;grid-row:1; }
 #product-info .lomo-pdp-purchase-actions .lomo-quantity { grid-column:2 / 4;grid-row:1;justify-self:start; }
 #product-info .lomo-pdp-purchase-actions #button-cart { grid-column:1 / 3;grid-row:2;margin:0;min-height:48px; }
 #product-info .lomo-pdp-purchase-actions > .lomo-heart { grid-column:3;grid-row:2; }
}

/* Free shipping uses the existing storefront blue and a subdued badge. */
.lomo-free-shipping { display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--accent);border-radius:999px;background:var(--soft);color:var(--accent);font-size:12px;font-weight:500;line-height:1.4; }
