/* Nonn's existing editorial layout, reimplemented without the Cargo runtime. */
* { box-sizing: border-box; }
html { font-size: 16px; background: transparent; }
body { margin: 0; background: rgba(244,241,234,.41); --noise-bg-color-alpha: .41; color: rgba(0,0,0,.85); font-family: var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
a:active { opacity: .7; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }
button, input, textarea { font: inherit; }
.copy { font-family: var(--nonn-body, 'aktiv-grotesk'), Arial, sans-serif; font-size: 1rem; font-weight: var(--nonn-body-weight, 300); line-height: 1.1; font-style: normal; letter-spacing: 0; display: block; width: 100%; }
.copy h1 { font: inherit; margin: 0; }
.copy h2 { font-family: var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; font-size: 1.8rem; line-height: 1.1; font-weight: var(--nonn-ui-weight, 500); color: rgba(0,0,0,.75); margin: 0; }
.copy .courier-new { font-family: var(--nonn-body, 'aktiv-grotesk'), Arial, sans-serif; font-size: 1rem; font-weight: var(--nonn-body-weight, 300); line-height: 1.1; font-style: normal; display: block; }
.copy .courier-new i { font-style: inherit; }
/* The original under-logo biography is a scoped Courier New exception. */
.side-info .copy .courier-new { font-family: 'Courier New', monospace; font-size: 1rem; font-weight: 400; font-style: normal; line-height: 1.1; letter-spacing: normal; font-feature-settings: normal; font-variation-settings: "MONO" .17, "slnt" 0; }
.side-info .copy .courier-new i { font-style: italic; }
.copy .caption { font-family: var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; font-size: 1rem; font-weight: 400; color: rgba(0,0,0,.75); line-height: 1.1; display: block; }
.copy b, .copy strong { font-family: var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; font-weight: 400; }
.copy p { margin: 0; }
.copy hr { background: rgba(0,0,0,.75); border: 0; height: 1px; min-height: 1px; max-height: 1px; padding: 0; opacity: 1; display: block; margin: .5em 0; }
.copy ul { margin: 0; padding: 0 0 0 2em; }
.copy ul.lineated { padding: 0; list-style-type: none; margin: 0 0 0 1.5em; text-indent: -1.5em; }
.copy blockquote { margin: 0; padding: 0 0 0 2em; }
.side-info .copy, .side-footer .copy, .top-nav .copy, .mobile-header .copy { font-family: var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; font-weight: var(--nonn-body-weight, 300); }
.page { position: relative; display: flex; justify-content: flex-end; width: 100%; }
.page-layout { width: 78%; display: flex; flex: 0 0 auto; }
.page-content { width: 100%; padding: 0 1rem 1rem; display: flex; }
.site-logo, .side-info, .side-footer, .top-nav { position: fixed; z-index: 2; pointer-events: none; inset: 0 0 auto; }
.site-logo .page-layout, .side-info .page-layout, .side-footer .page-layout { width: 22%; }
.site-logo, .side-info, .side-footer { justify-content: flex-start; }
.site-logo .page-content { padding-top: 1rem; }
.side-info .page-layout { padding: 1rem 0; min-height: 100vh; }
.side-info .page-content { padding-top: 2.6rem; border-right: 1px solid rgba(0,0,0,.75); min-height: calc(100vh - 2rem); }
.side-footer .page-content { padding-top: 1rem; min-height: 100vh; align-items: flex-end; }
.top-nav .page-content { padding-top: 1rem; padding-bottom: 0; }
.site-logo a, .side-info a, .side-footer a, .top-nav a { pointer-events: auto; }
.top-nav { background: transparent; }
.site-logo .media { width: 121px; }
.main-page { padding-top: 4.26rem; }
.footer-right { min-height: 100vh; }
.footer-right .page-content { padding-top: 1rem; }
.mobile-header { display: none; }
.columns { --gutter: var(--source-gutter, 2rem); display: flex; width: 100%; gap: var(--gutter, 2rem); align-items: stretch; clear: both; }
.column { position: relative; flex: var(--span, 1) 1 0; min-width: 0; overflow-wrap: break-word; }
.media { display: inline-block; width: var(--media-width, 100%); max-width: 100%; vertical-align: bottom; margin: 0; position: relative; line-height: 0; }
.media img { width: 100%; height: auto; display: block; border: 0; }
.media .caption { line-height: 1.1; margin-top: .5em; }
.media.zoomable { cursor: zoom-in; }
.gallery { display: flex; gap: var(--gutter, 1rem); width: 100%; align-items: flex-start; }
.gallery .media { flex: var(--aspect, 1) 1 0; min-width: 0; }
.gallery-grid { display: grid; grid-template-columns: repeat(var(--gallery-cols, 3), minmax(0, 1fr)); }
.gallery-columnized { display: grid; grid-template-columns: repeat(var(--gallery-cols, 3), minmax(0, 1fr)); }
.gallery-slideshow { overflow-x: auto; scroll-snap-type: x mandatory; align-items: center; }
.gallery-slideshow .media { flex: 0 0 100%; scroll-snap-align: start; }
.arrow { font-family: inherit; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .5rem; background: white; }
.skip-link:focus { top: 1rem; }
.lightbox { border: 0; padding: 3rem; margin: 0; width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; background: #fff; }
.lightbox::backdrop { background: #fff; }
.lightbox[open] { display: flex; align-items: center; justify-content: center; }
.lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
.lightbox button { border: 0; background: transparent; position: absolute; padding: .5rem; cursor: pointer; color: #222; }
.lightbox .close { right: 1rem; top: 1rem; font-size: 1.7rem; }
.lightbox .previous, .lightbox .next { top: calc(50% - 1.5rem); font-size: 2rem; }
.lightbox .previous { left: .5rem; }
.lightbox .next { right: .5rem; }
.contact-dialog { width: min(480px, calc(100vw - 24px)); height: auto; max-height: calc(100dvh - 24px); overflow-y: auto; border: 1px solid #ddd; background: #fff; border-radius: 10px; padding: 18px; box-shadow: 0 4px 24px #0003; font: 400 14px var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; }
.contact-dialog::backdrop { background: #0006; }
.contact-form { display: flex; flex-direction: column; gap: 12px; height: auto; }
.contact-form h2 { font: 500 16px var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; text-align: center; margin: 0; padding: 6px 0 14px; border-bottom: 1px solid #ddd; }
.contact-help { color: #666; margin: 0; line-height: 1.4; }
.contact-form label { display: flex; flex-direction: column; gap: 6px; align-items: stretch; color: #333; padding: 0; line-height: 1.3; }
.contact-form input, .contact-form select, .contact-form textarea { border: 0; border-bottom: 1px solid #aaa; border-radius: 0; background: transparent; box-shadow: none; color: #222; min-width: 0; padding: 9px 0; width: 100%; font-size: 16px; line-height: 1.3; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-bottom-color: #222; outline: none; box-shadow: none; }
.contact-form textarea { resize: vertical; min-height: 120px; }
.contact-location { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.contact-form .optional { color: #666; display: inline; font-size: 12px; }
.contact-form .actions { display: flex; gap: 6px; justify-content: flex-end; padding: 8px 0 0; }
.contact-form button { border: 0; border-radius: 20px; padding: 6px 28px; cursor: pointer; }
.contact-form button[type=submit] { background: #222; color: #fff; }
.contact-form button:disabled { opacity: .6; cursor: wait; }
.contact-status { margin: 0; min-height: 1em; line-height: 1.4; }
.error-page { padding: 8rem 1rem; }
@media (max-width: 600px) {
    html { font-size: 24px; }
    .site-logo, .side-info, .side-footer, .top-nav { display: none; }
    .page-layout { width: 100%; max-width: 100%; }
    .page-content { padding-left: .4rem; padding-right: .4rem; }
    .mobile-header { display: flex; }
    .mobile-header .page-content { padding-top: 1rem; }
    .mobile-header .media { width: 79%; }
    .mobile-header .copy h2 { font-size: 1.8rem; }
    .main-page { padding-top: 0; }
    .columns { gap: var(--mobile-gutter, var(--gutter, 2rem)); }
    .columns.mobile-stack { flex-direction: column; }
    .columns.mobile-stack > .column { flex-basis: auto; }
    .columns.mobile-hide-empty > .column.empty { display: none; }
    .media { width: 100%; }
    .gallery { flex-wrap: wrap; }
    .gallery .media { flex-basis: 100%; }
    .gallery-grid, .gallery-columnized { grid-template-columns: 1fr; }
    .lightbox { padding: 10px; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }

/* Cargo's original column geometry uses a twelve-unit system including gutters. */
.columns { gap: var(--gutter, 2rem); }
.column { flex: 0 0 calc((100% + var(--gutter, 2rem)) * var(--fraction, 1) - var(--gutter, 2rem)); }
.column:last-child { flex-grow: 1; }
.copy h1.product-title { display: inline; font: inherit; }
.copy h1.section-title { font-family: var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; font-size: 1.8rem; line-height: 1.1; font-weight: var(--nonn-ui-weight, 500); color: rgba(0,0,0,.75); }
.copy h3 { font: inherit; margin: 0; }
.gallery-freeform { display: block; }
.gallery-freeform .media { position: absolute; margin: 0; }
.gallery-freeform a { display: contents; }
.gallery-justify .media img { aspect-ratio: var(--aspect); object-fit: contain; }
.gallery .media { width: auto; }
@media (min-width: 801px) {
  html { font-size: clamp(14.474px, calc(13.73343px + .16458vw), 15.84px); }
  /* Cargo rounds desktop rem gutters to whole CSS pixels. */
  .columns { --gutter: round(nearest, var(--source-gutter, 2rem), 1px); }
  .columns > .column { flex-basis: round(nearest, calc((100% + var(--gutter)) * var(--fraction, 1) - var(--gutter)), 1px); }
  .columns > .column:last-child { flex-basis: 0; flex-shrink: 1; flex-grow: 1; }
}
@media (max-width: 800px) {
  html { font-size: clamp(10px, calc(4.22309px + 2.27716vw), 23.1px); }
  .site-logo, .side-info, .side-footer, .top-nav { display: none; }
  .main-page .page-layout, .footer-right .page-layout { width: 100%; max-width: 100% !important; }
  .page-content { padding: 0 .6rem .6rem; }
  .mobile-header { display: flex; }
  .mobile-header .page-layout { width: 100%; }
  .mobile-header .page-content { padding-top: .6rem; }
  .mobile-header .media { width: 79%; }
  .main-page { padding-top: 0; }
  .columns { --gutter: var(--mobile-gutter, 2rem); }
  .columns.mobile-stack { flex-direction: column; gap: calc(var(--mobile-gutter, 2rem) * .6); }
  .columns.mobile-stack > .column { width: 100%; flex-basis: auto; }
  .columns.mobile-hide-empty > .column.empty { display: none; }
  .gallery { flex-wrap: nowrap; }
  .gallery .media { flex: var(--aspect, 1) 1 0; width: auto; }
  .gallery-grid { grid-template-columns: repeat(var(--gallery-cols, 3), minmax(0, 1fr)); }
  .gallery-slideshow .media { flex: 0 0 100%; }
  .gallery-freeform { display: flex; flex-direction: column; gap: 4rem; aspect-ratio: auto !important; }
  .gallery-freeform a { display: block; }
  .gallery-freeform .media { position: relative; left: auto !important; top: auto !important; width: 100% !important; }
}
@media (max-width: 600px) {
  html { font-size: 3.36vw; }
}

.gallery-slideshow.slideshow-ready { position: relative; display: block; aspect-ratio: var(--slide-ratio, 1.5); overflow: hidden; }
.slideshow-ready .media { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity var(--slide-speed, 2s) ease; pointer-events: none; }
.slideshow-ready .media img { width: 100%; height: 100%; object-fit: contain; }
.slideshow-ready .slide-active { opacity: 1; pointer-events: auto; }
.slideshow-ready > button { position: absolute; z-index: 1; border: 0; border-radius: 50%; background: #57575759; color: #ffffffe6; width: 30px; height: 30px; top: calc(50% - 15px); font: 400 24px var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; cursor: pointer; }
.slideshow-ready .slide-previous { left: 15px; }
.slideshow-ready .slide-next { right: 15px; }

@media (max-width: 800px) {
  .media { width: var(--mobile-media-width, 100%); }
  .gallery .media { width: auto; }
  .mobile-header .media { width: 79%; }
}

@media (max-width: 800px) {
  .columns { --gutter: calc(var(--mobile-gutter, 2rem) * .6); gap: var(--gutter); }
}

.gallery-justify[data-row-height] { container-type: inline-size; }
.gallery-justify[data-row-height][data-row-align="center"] { justify-content: center; }
.gallery-justify[data-row-height][data-row-align="center"] .media { flex: 0 1 calc(var(--row-height) * var(--aspect)); width: calc(var(--row-height) * var(--aspect)); }
@media (min-width: 801px) {
  .slideshow-ready.cursor-zones { cursor: pointer; }
  .slideshow-ready.cursor-zones > button { opacity: 0; pointer-events: none; }
  .slideshow-ready.cursor-zones > button:focus-visible { opacity: 1; pointer-events: auto; }
}
@media (max-width: 800px) {
  .gallery-freeform { gap: 1.2rem; }
  .gallery-justify[data-row-height][data-mobile-row-align="fill"] { justify-content: flex-start; }
  .gallery-justify[data-row-height][data-mobile-row-align="fill"] .media { flex: var(--aspect) 1 0; width: auto; }
}

.columns + .columns { margin-top: var(--gutter, 2rem); }

/* Search uses the same quiet dialog language as Contact. */
.search-dialog { min-height: 260px; }
.search-form { display: flex; flex-direction: column; gap: 16px; }
.search-form h2 { font: 500 16px var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; text-align: center; margin: 0; padding: 6px 0 14px; border-bottom: 1px solid #ddd; }
.search-form label { display: flex; flex-direction: column; gap: 6px; color: #333; line-height: 1.3; }
.search-form input { appearance: none; border: 0; border-bottom: 1px solid #999; border-radius: 0; outline: none; box-shadow: none; background: #fff; color: #222; min-width: 0; padding: 9px 0; width: 100%; font: 400 16px var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; }
.search-form input:focus, .search-form input:focus-visible { outline: none; box-shadow: none; border-bottom-color: #222; }
.search-status { color: #666; line-height: 1.4; margin: 0; }
.search-results { list-style: none; margin: 0; padding: 0; }
.search-results li { border-top: 1px solid #ddd; padding: 12px 0; }
.search-results a { display: inline-block; font-weight: 500; line-height: 1.4; text-decoration: underline; text-underline-offset: 3px; }
.search-results p { margin: 6px 0 0; color: #666; line-height: 1.4; }
.search-form .actions { display: flex; gap: 6px; justify-content: flex-end; }
.search-form button { border: 0; border-radius: 20px; padding: 6px 28px; cursor: pointer; font: inherit; }
.search-form button[type="submit"] { background: #222; color: #fff; }
.mobile-contact-tools { display: none; }
.search-fallback { margin-top: 1rem !important; line-height: 1.6; }
@media (max-width: 800px) { .mobile-contact-tools { display: block; margin-bottom: 2rem; } }

/* Source-backed catalogue additions retain the existing editorial hierarchy. */
.catalogue-home-intro h1 { font-weight: 400; margin-bottom: 1rem; }
.catalogue-home-intro p + p, .catalogue-home-intro nav, .catalogue-home-intro .featured-product { margin-top: 1rem; }
.catalogue-intro, .catalogue-browse { margin-top: 1rem !important; line-height: 1.4; }
.catalogue-links a, .catalogue-intro a, .catalogue-browse a, .seo-details a, .styled-with a { text-decoration: underline; text-underline-offset: 3px; }
.catalogue-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 2rem; margin: 3rem 0 0 !important; padding: 0 !important; list-style: none; }
.catalogue-card { min-width: 0; }
.copy .catalogue-card h2 { font-size: 1rem; font-weight: 400; margin-top: .7rem; }
.catalogue-card a:hover { text-decoration: underline; text-underline-offset: 3px; }
.seo-details { margin-top: 1.5rem; border-top: 1px solid rgba(0,0,0,.75); padding-top: .7rem; line-height: 1.4; }
.seo-details summary { cursor: pointer; font-weight: 400; }
.seo-details-content h3 { font: 400 1rem var(--nonn-sans, 'aktiv-grotesk'), Arial, sans-serif; margin: 1rem 0 .5rem; }
.seo-details-content ul { padding-left: 1.2rem; }
.seo-details-content li { margin-bottom: .5rem; }
.seo-details-content p { margin-top: 1rem; }
.sidebar-scroll { width: 100%; min-width: 0; }
.side-info.sidebar-overflow .sidebar-scroll { max-height: var(--sidebar-available-height); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; pointer-events: auto; }
@media (max-width: 600px) { .catalogue-cards { grid-template-columns: 1fr; } }

.catalogue-about { margin-top: 3rem; max-width: 65ch; line-height: 1.4; }
.copy .catalogue-about h2 { font-size: 1rem; font-weight: 400; margin-bottom: 1rem; }
.catalogue-about p + p { margin-top: 1rem; }
.catalogue-about a { text-decoration: underline; text-underline-offset: 3px; }

.stockist-world-map { margin: 0 0 2rem; width: 100%; background: transparent; }
.stockist-world-map img { display: block; width: 100%; height: auto; background: transparent; }
