/* EDEL WEISSER — a restrained translation of the supplied artboards. */
:root {
  --paper: #fff;
  --ink: #111;
  --page-inset: 22px;
  --navigation-size: 12px;
  --header-height: 60px;
  --left-column: 52.5%;
  font-family: Helvetica, "Helvetica Neue", Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-height); }
body { margin: 0; }
body, button, input, select, textarea { font-family: Helvetica, "Helvetica Neue", Arial, sans-serif; }
body { font-size: 14px; line-height: 1.35; }
a { color: inherit; text-decoration: none; text-underline-offset: 3px; }
a:hover { text-decoration: underline; }
button, select, input { font: inherit; }
button { color: inherit; }
img { display: block; width: 100%; height: auto; }
figure, h1, h2, h3, p { margin: 0; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 1px solid currentColor; outline-offset: 5px; }
::selection { color: #fff; background: #111; }
.visually-hidden { position: absolute; 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; top: -80px; left: 12px; padding: 12px; background: #fff; color: #111; z-index: 100; }
.skip-link:focus { top: 12px; }
.site-header { position: fixed; top: 0; left: 0; width: 100%; height: var(--header-height); padding: 0 var(--page-inset); display: flex; align-items: center; gap: 34px; z-index: 20; font-size: var(--navigation-size); line-height: 1; color: #fff; mix-blend-mode: difference; pointer-events: none; }
.site-header a { pointer-events: auto; padding-block: 9px; }
.brand { font-size: 12px; font-weight: 700; letter-spacing: -.045em; white-space: nowrap; }
.main-navigation { display: flex; align-items: center; gap: 26px; }
.contact-link { margin-left: auto; }
.main-navigation a[aria-current="page"] { text-decoration: underline; }
/* FRONT PAGE */
.front-page { height: 100vh; height: 100svh; min-height: 420px; position: relative; overflow: hidden; background: #343b3d; color: #fff; }
.hero-photograph, .hero-photograph picture, .hero-image { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image { object-fit: cover; object-position: var(--hero-x, 50%) var(--hero-y, 50%); }
.hero-photograph::after { content: ""; position: absolute; inset: 0; background: rgb(0 0 0 / var(--hero-shade, .12)); pointer-events: none; }
.hero-navigation { position: absolute; top: 50%; left: 0; width: 100%; padding-inline: var(--page-inset); transform: translateY(-50%); display: flex; align-items: center; font-size: var(--navigation-size); z-index: 3; pointer-events: none; }
.hero-navigation a { pointer-events: auto; padding-block: 12px; }
.hero-wordmark { position: absolute; top: 50%; left: 50%; width: max-content; max-width: 72%; transform: translate(-50%, -50%); margin: 0; font-weight: 700; font-size: clamp(46px, 7.35vw, 146px); line-height: .98; letter-spacing: -.048em; text-align: center; overflow-wrap: break-word; z-index: 2; }
.hero-wordmark a:hover { text-decoration: none; }
.hero-caption { position: absolute; bottom: 24px; left: var(--page-inset); right: var(--page-inset); max-width: 40em; font-size: 12px; }
/* ITEM PAGE */
.catalogue-intro { padding: calc(var(--header-height) + 30px) var(--page-inset) 36px; max-width: 42em; }
.catalogue-item { min-height: 560px; height: 100vh; height: 100svh; display: grid; grid-template-columns: var(--left-column) 1fr; position: relative; }
.catalogue-product { position: relative; min-width: 0; height: 100%; background: #fff; }
.catalogue-caption { position: absolute; top: calc(var(--header-height) + 10px); left: var(--page-inset); z-index: 2; max-width: 43%; }
.catalogue-caption h2 { font-size: clamp(18px, 1.9vw, 29px); line-height: 1.1; font-weight: 400; letter-spacing: -.035em; margin-bottom: 5px; }
.catalogue-caption p { font-size: 11px; line-height: 1.22; }
.product-code { margin-top: 5px; }
.catalogue-cover { position: absolute; inset: 17% 5.3% 13% 5.3%; display: flex; align-items: center; justify-content: center; }
.catalogue-cover img { width: 100%; height: 100%; object-fit: contain; }
.catalogue-editorial { min-width: 0; height: 100%; overflow: hidden; }
.catalogue-editorial img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 38%; }
.view-more { position: absolute; bottom: 20px; right: var(--page-inset); font-weight: 400; font-size: clamp(19px, 2.05vw, 29px); line-height: 1.1; letter-spacing: -.045em; padding: 5px 0; z-index: 3; }
.catalogue-item--single { display: block; }
.catalogue-item--single .catalogue-cover { inset: var(--header-height) 12% 0; }
.catalogue-item--single .catalogue-cover img { max-width: 800px; }
.empty-catalogue { min-height: 100svh; padding: 150px var(--page-inset) 60px; }
/* PICTURE PRODUCT — one image per viewport, with generous white space. */
.product-frame { position: relative; min-height: 560px; height: 100vh; height: 100svh; display: flex; align-items: center; justify-content: center; scroll-margin-top: 0; }
.product-photo { width: 86.5%; height: 74%; margin-top: 1%; }
.product-photo img { width: 100%; height: 100%; }
.product-photo--contain img { object-fit: contain; }
.product-photo--cover img { object-fit: cover; }
.product-frame .view-more { bottom: 34px; right: 7%; }
.photo-caption { position: absolute; bottom: 78px; left: 6.75%; font-size: 11px; max-width: 65%; }
.product-toolbar { position: fixed; bottom: 18px; left: var(--page-inset); z-index: 10; display: flex; align-items: center; gap: 26px; font-size: 11px; background: rgb(255 255 255 / .9); padding: 5px 9px 5px 0; }
.image-counter { font-variant-numeric: tabular-nums; }
.product-information { min-height: 70svh; padding: 120px 9% 130px; display: grid; grid-template-columns: 1fr 1fr; gap: 10%; scroll-margin-top: 0; }
.product-information h2 { font-size: clamp(25px, 3vw, 46px); font-weight: 400; letter-spacing: -.04em; line-height: 1.07; margin-bottom: 14px; }
.product-information-heading > p { font-size: 12px; }
.product-information-heading .product-price { font-size: 18px; margin-top: 24px; }
.product-variants { margin-top: 30px; font-size: 12px; }
.product-variants h3 { font-size: 12px; font-weight: 400; margin-bottom: 15px; }
.product-variants ul { list-style: none; margin: 0; padding: 0; }
.product-variants li { display: flex; justify-content: space-between; gap: 20px; padding-block: 6px; }
.prose { font-size: 15px; line-height: 1.55; }
.prose p + p { margin-top: 1.25em; }
.prose a { text-decoration: underline; }
.prose ul, .prose ol { padding-left: 1.2em; }
.prose h2, .prose h3 { font-size: inherit; margin: 1.75em 0 .6em; }
.information-detail { border-bottom: 1px solid #ddd; padding: 15px 0; }
.information-detail:first-of-type { margin-top: 36px; border-top: 1px solid #ddd; }
.information-detail summary { display: flex; justify-content: space-between; gap: 16px; cursor: pointer; font-size: 12px; list-style: none; }
.information-detail summary::-webkit-details-marker { display: none; }
.information-detail summary span { transition: transform .15s ease; }
.information-detail[open] summary span { transform: rotate(45deg); }
.information-detail .prose { padding-top: 18px; font-size: 13px; }
.inquiry-link { display: inline-block; margin-top: 30px; text-decoration: underline; }
.back-link { display: block; width: fit-content; margin-top: 48px; font-size: 12px; text-decoration: underline; }
/* EXTRA PAGES */
.editorial-page { min-height: 100svh; padding: 19vh 8% 100px; display: grid; grid-template-columns: 1fr 1fr; gap: 60px 8%; align-content: start; }
.editorial-page > h1, .editorial-heading h1 { font-size: clamp(32px, 5vw, 72px); font-weight: 400; line-height: 1; letter-spacing: -.055em; }
.eyebrow { font-size: 12px; margin-bottom: 18px; }
.editorial-content { max-width: 36em; }
.editorial-image { grid-column: 2; max-width: 500px; margin-top: 30px; }
.editorial-image img { width: 100%; }
.contact-email { display: inline-block; margin-top: 30px; font-size: clamp(18px, 2vw, 28px); letter-spacing: -.035em; text-decoration: underline; overflow-wrap: anywhere; }
.contact-content address { margin-top: 28px; font-style: normal; font-size: 14px; }
.social-links { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 44px; font-size: 12px; }
.contact-details { margin: 30px 0; }
.contact-details > div { margin-top: 20px; }
.contact-details dt { font-size: 11px; margin-bottom: 5px; }
.contact-details dd { margin: 0; font-size: 14px; }
.site-footer { padding: 32px var(--page-inset) 56px; font-size: 11px; }
.error-page .back-link { grid-column: 2; margin-top: 0; }
@media (min-width: 1800px) {
  :root { --page-inset: 32px; --header-height: 72px; --navigation-size: 14px; }
  .brand { font-size: 14px; }
  .catalogue-caption p { font-size: 13px; }
}
@media (max-width: 800px) {
  :root { --page-inset: 16px; --header-height: 54px; }
  .site-header { gap: 24px; }
  .main-navigation { gap: 20px; }
  .hero-wordmark { font-size: 8vw; max-width: 80%; }
  .hero-navigation { top: auto; bottom: 16px; transform: none; }
  .hero-caption { bottom: 78px; }
  .catalogue-item { min-height: 500px; }
  .catalogue-caption { max-width: 76%; }
  .catalogue-caption h2 { font-size: 21px; }
  .catalogue-caption p { font-size: 10px; }
  .catalogue-cover { inset: 22% 6% 15%; }
  .product-information { padding: 100px 7% 110px; gap: 7%; }
  .product-frame .view-more { right: var(--page-inset); }
  .editorial-page { padding-inline: 7%; gap: 42px 7%; }
}
@media (max-width: 560px) {
  :root { --page-inset: 14px; --header-height: 54px; --navigation-size: 11px; }
  .site-header { gap: 20px; }
  .brand { font-size: 11px; }
  .main-navigation { gap: 16px; }
  .front-page { min-height: 400px; }
  .hero-image { object-position: var(--mobile-hero-x, 50%) var(--mobile-hero-y, 50%); }
  .hero-wordmark { width: 92%; max-width: 92%; font-size: 10vw; white-space: normal; }
  .hero-navigation { bottom: 22px; padding-inline: 20px; }
  .catalogue-item { min-height: 0; height: auto; grid-template-columns: 1fr 1fr; }
  .catalogue-product { height: 76svh; min-height: 460px; }
  .catalogue-editorial { height: 76svh; min-height: 460px; }
  .catalogue-caption { top: 80px; max-width: calc(100% - 22px); }
  .catalogue-caption h2 { font-size: 19px; }
  .catalogue-caption p { font-size: 9px; }
  .catalogue-cover { inset: 27% 6% 20%; }
  .view-more { right: 14px; bottom: 23px; font-size: 22px; }
  .catalogue-editorial img { object-position: 55% center; }
  .catalogue-item--single .catalogue-product { height: 100svh; min-height: 560px; }
  .catalogue-item--single .catalogue-cover { inset: 90px 9% 45px; }
  .product-frame { min-height: 490px; }
  .product-photo { width: 91%; height: 73%; }
  .product-frame .view-more { bottom: 65px; }
  .product-toolbar { gap: 20px; bottom: 16px; }
  .product-information { grid-template-columns: 1fr; gap: 42px; padding: 86px 7% 110px; }
  .product-information h2 { font-size: 34px; }
  .product-information-content { max-width: 38em; }
  .editorial-page { grid-template-columns: 1fr; padding: 128px 7% 70px; gap: 52px; }
  .editorial-page > h1, .editorial-heading h1 { font-size: 50px; }
  .editorial-image { grid-column: 1; margin-top: 0; }
  .error-page .back-link { grid-column: 1; }
  .photo-caption { bottom: 108px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Discreet service links and optional editorial media. */
.site-footer { display: flex; flex-wrap: wrap; align-items: baseline; gap: 18px 32px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 14px 24px; }
.footer-links a { padding-block: 6px; }
.page-product .site-footer { padding-bottom: 90px; }
.contact-empty { max-width: 30em; line-height: 1.6; }
.product-pagination { display: flex; justify-content: space-between; gap: 32px; padding: 0 9% 100px; font-size: 14px; }
.product-pagination a { max-width: 45%; }
.product-pagination a[rel="next"] { margin-left: auto; text-align: right; }
.product-pagination span { display: block; font-size: 11px; margin-bottom: 8px; }
.editorial-video { width: 100%; max-width: 1100px; margin: 0 auto; padding: 50px 7%; }
.editorial-video video { display: block; width: 100%; max-height: 80svh; background: #f3f3f3; }
.editorial-video figcaption, .video-download, .video-transcript { display: block; margin-top: 14px; font-size: 12px; }
.video-download { width: fit-content; text-decoration: underline; }
.video-transcript summary { cursor: pointer; }
.video-transcript p { margin-top: 14px; line-height: 1.6; }
.editorial-page > .editorial-video { grid-column: 1 / -1; padding: 0; }

/* Catalogue categories remain ordinary links: no JavaScript needed. */
.category-navigation { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: calc(var(--header-height) + 24px) var(--page-inset) 20px; font-size: 12px; }
.catalogue-intro + .category-navigation { padding-top: 0; }
.category-navigation a { padding-block: 8px; }
.category-navigation a[aria-current="page"] { text-decoration: underline; text-underline-offset: 5px; }
.catalogue-caption .sold-label, .product-information-heading .sold-label { display: block; margin: 12px 0; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
