/* Giordano Dieci — visual parity with the original Elementor site.
   Desktop content: 1200px (home: 1100px); tablet: 1024px; phone: 767px. */
:root {
  --color-black: #000;
  --color-white: #fff;
  --color-grey: #808080;
  --font-base: "Gayathri Original", Arial, sans-serif;
  --font-display: var(--font-base);
  --container-max: 1200px;
}
/* Original Gayathri files stay local to preserve the reference typography. */
@font-face { font-family: "Gayathri Original"; font-style: normal; font-weight: 100 300; font-display: swap; src: url("/assets/fonts/Gayathri-Thin.ttf") format("truetype"); }
@font-face { font-family: "Gayathri Original"; font-style: normal; font-weight: 400 500; font-display: swap; src: url("/assets/fonts/Gayathri-Regular.ttf") format("truetype"); }
@font-face { font-family: "Gayathri Original"; font-style: normal; font-weight: 600 900; font-display: swap; src: url("/assets/fonts/Gayathri-Bold.ttf") format("truetype"); }
/* Open Sans: self-hosted, so no visitor data is sent to Google Fonts. */
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/open-sans-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Open Sans: latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/assets/fonts/open-sans-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--color-grey); background: #fff; font: 200 19.2px/1.5 var(--font-base); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.container { width: 100%; max-width: var(--container-max); margin-inline: auto; padding-inline: 10px; }
h1, h2, h3, h4 { color: #000; margin: 0 0 20px; }
h1, h2 { font-size: 64px; font-weight: 700; line-height: .9; }
h3 { font-size: 22.4px; font-weight: 400; line-height: 1.2; }
p { margin: 0 0 14.4px; }
.icon { width: 18px; height: 18px; flex: 0 0 auto; vertical-align: middle; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.eyebrow { position: relative; display: block; color: #000; font-size: 19.2px; font-weight: 400; line-height: 1.5; text-transform: uppercase; }
.eyebrow::before { content: ""; position: absolute; width: 100px; height: 1px; background: #333; right: calc(100% + 20px); top: 12px; }
.btn { display: inline-block; padding: 16px 20px 12px; border: 1px solid #333; border-radius: 0; background: transparent; color: #000; font-size: 16px; font-weight: 400; line-height: 18px; text-transform: uppercase; transition: color .2s, background .2s; }
.btn:hover, .btn:focus-visible { color: #fff; background: #000; }
/* Header: the contact and social groups flank the centered logo. */
.topbar { position: absolute; top: 0; left: 0; width: 100%; z-index: 31; pointer-events: none; color: #fff; }
.topbar .container { max-width: none; padding: 45px 20px 0; display: flex; justify-content: space-between; align-items: center; }
.topbar a { pointer-events: auto; }
.header-contacts { display: grid; font: 12px/18px Arial, sans-serif; }
.header-contacts a { display: flex; align-items: center; gap: 22px; }
.header-contacts .icon { width: 14px; height: 14px; }
.social-icons { display: flex; gap: 13px; }
.social-icons a { display: grid; place-items: center; width: 33.6px; height: 33.6px; color: #fff; }
.social-icons .icon { width: 14px; height: 14px; }
.social-icons a:hover { opacity: .65; }
.site-header { position: relative; z-index: 30; height: 126.4px; background: linear-gradient(#000, transparent); color: #fff; }
.site-header > .container { max-width: none; display: flex; flex-direction: column; align-items: center; padding: 13px 10px 0; gap: 13px; }
.site-header .logo img { width: 285px; height: auto; }
.main-nav ul { list-style: none; margin: 0; padding: 0; }
.main-nav > ul { display: flex; }
.main-nav li { position: relative; }
.main-nav > ul > li { display: flex; align-items: center; }
.main-nav > ul > li > a { display: block; padding: 6px 20px; font-size: 15px; font-weight: 400; text-transform: uppercase; letter-spacing: 1px; line-height: 20px; }
.main-nav > ul > li:has(.sub-menu) > a { padding-right: 8px; }
.main-nav > ul > li::after { position: absolute; content: ""; height: 1px; background: #fff; bottom: 0; left: 0; right: 0; opacity: 0; }
.main-nav > ul > li:hover::after, .main-nav > ul > li:has([aria-current="page"])::after { opacity: 1; }
.submenu-toggle { padding: 0 20px 0 5px; border: 0; background: transparent; color: inherit; height: 32px; }
.submenu-toggle::after { content: ""; display: block; border: 4px solid transparent; border-bottom: 0; border-top-color: currentColor; }
.main-nav .sub-menu { display: none; position: absolute; left: 0; top: 100%; min-width: 180px; background: #f9f9f9; color: #333; padding: 0; }
.main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu, .main-nav li.submenu-open > .sub-menu { display: block; }
.main-nav .sub-menu a { display: block; padding: 12px 20px; font-size: 15px; line-height: 20px; font-weight: 400; }
.main-nav .sub-menu a:hover, .main-nav .sub-menu a:focus-visible { background: #b2b2b2; color: #fff; }
.nav-toggle { display: none; }
/* Hero images keep their existing src; picture sources supply the original desktop crop. */
.hero { position: relative; margin-top: -125px; height: 70vh; min-height: 450px; }
.hero > img, .hero > picture, .hero > picture > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hero-overlay { position: absolute; inset: 0; display: flex; align-items: center; color: #fff; }
.hero-overlay .container { padding-top: 30px; }
.hero h1, .hero .hero-title { font-size: 57.6px; font-weight: 400; line-height: 1; text-transform: uppercase; color: #fff; margin-bottom: 20px; }
.hero p { color: #fff; max-width: 1040px; font-weight: 100; }
.page-home .hero { margin-top: -114px; }
.page-home .hero-overlay { background: rgb(0 0 0 / 36.8%); }
.page-home .hero-overlay .container { max-width: 890px; padding-top: 115px; }
.page-home .hero h1 { font-size: 57.6px; line-height: 1.1; text-align: center; letter-spacing: 0; }
.page-about-us .hero { margin-top: -120px; }
.page-about-us .hero-overlay .container, .page-design-studio .hero-overlay .container, .page-contact-us .hero-overlay .container { max-width: 1100px; }
.page-about-us .hero-overlay .container { padding-right: 50px; }
.page-design-studio .hero { margin-top: -200px; }
.page-design-studio .hero-overlay .container { padding-top: 115px; }
.page-private-label .hero { margin-top: -127px; }
.page-private-label .hero h1 { line-height: 1.5; }
.page-contact-us .hero { height: calc(70vh + 10px); }
.page-contact-us .hero h1 { font-size: 60.8px; }
.page-category .hero h1, .product-hero h1, .product-hero .hero-title { font-size: 72px; }
/* Introductory headings and text occupy the right column; labels sit on the left. */
.section { padding: 120px 0 0; }
.section--grey { background: #fff; }
.intro-layout { display: grid; grid-template-columns: 40% 60%; align-items: start; }
.intro-layout > .eyebrow { padding-top: 25px; }
.intro-layout > .eyebrow::before { top: 37px; }
.intro-layout > div { padding-left: 20px; text-align: right; }
.section-head { display: grid; grid-template-columns: 40% 60%; width: 100%; margin-bottom: 10px; }
.section-head > .eyebrow { grid-column: 1; grid-row: 1 / span 8; padding-top: 25px; }
.section-head > .eyebrow::before { top: 37px; }
.section-head > :not(.eyebrow) { grid-column: 2; text-align: right; }
.section-head h2 { margin-bottom: 20px; text-transform: lowercase; }
.grid-2, .grid-3 { display: grid; gap: 20px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-layout { display: grid; grid-template-columns: 44% 56%; padding: 0 40px 30px; }
.feature-layout .section-head { display: block; padding: 30px 60px 0 0; }
.feature-layout .section-head > * { text-align: left; }
.feature-layout .section-head .eyebrow { padding: 0; margin-bottom: 40px; }
.feature-layout .section-head .eyebrow::before { top: 12px; }
.feature-layout > .grid-3 { grid-template-columns: 1fr; gap: 20px; }
.feature { display: grid; grid-template-columns: 90px minmax(0, 1fr); column-gap: 18px; align-content: start; padding: 10px; }
.feature > img { width: 90px; grid-column: 1; grid-row: 1 / span 4; }
.feature > :not(img) { grid-column: 2; }
.feature h3 { margin: 8px 0 13px; text-transform: lowercase; }
.feature p { font-size: 18px; line-height: 27px; font-weight: 100; margin-bottom: 0; }
.feature .btn { justify-self: start; margin-top: 28px; }
.services { padding: 48px 0; }
.services-layout { display: grid; grid-template-columns: 1fr 2fr; gap: 0; }
.services-layout .section-head { display: block; }
.services-layout .section-head .eyebrow { padding-top: 15px; }
.services-layout .section-head .eyebrow::before { top: 27px; }
.services-layout > .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.services .feature { grid-template-columns: 90px minmax(0, 1fr); gap: 0 12px; padding: 10px 5px; }
.photo-panel { height: 400px; }
.photo-panel picture, .photo-panel img { width: 100%; height: 100%; display: block; object-fit: cover; }
/* Home */
.page-home .section > .container { max-width: 1100px; }
.home-mission { padding-bottom: 10px; }
.home-mission .intro-layout { grid-template-columns: 40% 60%; }
.home-mission h2 { max-width: 640px; }
.home-mission p { margin-top: 27px; margin-bottom: 14px; }
.tile-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.home-links { padding: 0 35px 30px; }
.tile { position: relative; display: block; overflow: hidden; }
.tile img { width: 100%; transition: transform .3s; }
.tile:hover img { transform: scale(1.2); }
.tile figcaption { position: absolute; top: 10%; left: 10%; padding: 6px 14px; background: #fff; color: #000; font-size: 25.6px; font-weight: 700; text-transform: uppercase; opacity: 0; transform: translateX(-30px); transition: opacity .3s, transform .3s; }
.tile:hover figcaption, .tile:focus-visible figcaption { opacity: 1; transform: none; }
.home-divider { height: 300px; }
.home-style .feature { text-align: center; }
.home-creations { position: relative; padding: 100px 30px 60px; min-height: 560px; color: #fff; display: flex; align-items: center; }
.home-creations .container > div:first-child { position: relative; z-index: 1; max-width: 770px; }
.home-creations h2 { color: #fff; font-weight: 400; line-height: 1.1; }
.home-creations .btn { color: #fff; border-color: #fff; margin-top: 18px; }
.home-creations .creations-photo { position: absolute; inset: 0; }
.creations-photo picture, .creations-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.creations-photo::after { content: ""; position: absolute; inset: 0; background: rgb(0 0 0 / 22%); }
/* About */
.about-intro { padding-top: 140px; }
.about-intro .intro-layout { grid-template-columns: 42% 58%; }
.support-image { display: none; }
.read-more { margin-top: 42px; text-align: left; font-size: 18px; }
.read-more summary { cursor: pointer; color: #333; font-size: 16px; margin-bottom: 14px; }
.read-more p { text-align: right; font-size: 19.2px; }
.about-divider { height: 550px; }
.lab-divider { height: 500px; }
.insights .section-head { grid-template-columns: 18% 82%; }
.insight-videos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 0 calc((1200px - 100vw) / 2); padding: 0 10px 30px; }
.insight-videos iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #000; }
.insight-videos img { height: 100px; width: 220px; object-fit: contain; margin: 10px auto 0; }
/* Design studio */
.page-design-studio .services { padding: 120px 0 3px; }
.design-gallery { padding-top: 80px; }
.design-gallery > .container { max-width: none; padding: 0 10px; }
.design-gallery .section-head { max-width: 1200px; margin: 0 auto; grid-template-columns: 18% 82%; }
.gallery-scroll { margin-block: 10px; position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.gallery-item { display: block; width: 100%; break-inside: avoid; }
.gallery-item img { width: 100%; height: auto; }
.gallery-item:hover { opacity: .8; }
/* Private label */
.private-style { padding: 144px 0 56px; }
.private-style .feature-layout { max-width: 1100px; grid-template-columns: 50% 50%; padding: 0 30px; }
.private-style .section-head { padding-right: 30px; }
.private-style .feature { grid-template-columns: 110px minmax(0, 1fr); column-gap: 30px; row-gap: 0; padding: 20px 0; }
.private-style .feature > img { width: 110px; }
.private-style .feature p { font-size: 19.2px; line-height: 28.8px; }
.private-style .feature-layout > .grid-3 { gap: 0; }
.private-collection { padding-top: 124px; padding-bottom: 30px; }
.private-collection .section-head { grid-template-columns: 39.32% 60.68%; }
.private-collection .tile-grid { padding-top: 10px; width: calc(100vw - 70px); margin-left: calc((1180px - 100vw + 70px) / 2); }
/* Category archives */
.catalogue { padding: 70px 0 0; }
.catalogue .section-head { display: block; margin-bottom: 55px; }
.catalogue .section-head .eyebrow { padding-top: 0; }
.catalogue .section-head .eyebrow::before { top: 12px; }
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 88px; row-gap: 72px; padding: 0 34px 76px; }
.product-card { text-align: center; }
.product-card img { width: 100%; aspect-ratio: 1; object-fit: contain; margin: 0 0 33px; }
.product-card h3 { margin: 0; padding: 8px 0; font-size: 16px; font-weight: 400; line-height: 19.2px; color: #333; text-transform: uppercase; }
/* Contact forms */
.contact-section { padding: 70px 0 40px; }
.contact-section .section-head { margin-bottom: 80px; }
.contact-section .section-head p { padding-left: 15px; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-inline: -10px; color: #333; }
.contact-form input:not([type="checkbox"]), .contact-form textarea { width: 100%; min-width: 0; border: 0; border-bottom: 1px solid #333; border-radius: 0; padding: 10px 16px 7px; background: #fff; color: #000; font: 300 15px/21px var(--font-base); height: 40px; }
.contact-form textarea { display: block; height: 95px; resize: vertical; }
.contact-form ::placeholder { color: #808080; opacity: 1; }
.message-field, .checkbox-row { grid-column: 1 / -1; }
.checkbox-row { display: flex; align-items: center; gap: 5px; font-size: 15px; line-height: 22.5px; }
.checkbox-row input { width: 13px; height: 13px; margin: 0; }
.contact-form .form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.contact-form .form-status { grid-column: 1 / -1; margin: 0; padding: 0 10px; font-size: 16px; color: #333; }
.contact-form .form-status.is-error { color: #b00020; }
.contact-form .btn:disabled { opacity: .5; cursor: wait; }
.contact-form .btn { grid-column: 1 / -1; justify-self: end; font-size: 15px; font-weight: 700; padding: 18px 45px 14px; min-height: 52px; }
/* Earnest: one image at a time, with pagination beneath. */
.product-section { padding: 30px 0 20px; }
.product-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: center; }
.product-gallery { min-width: 0; }
.carousel-track { display: flex; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
.carousel-track::-webkit-scrollbar { display: none; }
@media (pointer: fine) { .carousel-track { cursor: grab; } }
.carousel-track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; }
.carousel-track img { width: 100%; flex: 0 0 100%; height: auto; object-fit: contain; scroll-snap-align: start; }
.carousel-dots { display: flex; justify-content: center; gap: 12px; padding: 15px 0 20px; }
.carousel-dots button { border: 0; padding: 0; width: 6px; height: 6px; border-radius: 50%; background: #ccc; }
.carousel-dots button[aria-pressed="true"] { background: #000; }
.product-info { padding-left: 20px; }
.product-info h1 { font-size: 29px; font-weight: 400; line-height: 1; text-transform: uppercase; color: #333; margin-bottom: 48px; }
.product-info ul { padding-left: 20px; margin: 0; }
.product-info li { line-height: 28.8px; }
/* Footer */
.site-footer { background: #000; color: #fff; padding: 55px 0 10px; font-size: 14px; font-weight: 100; }
.footer-grid { display: grid; grid-template-columns: 39% 27.4% 21.8%; column-gap: 5.9%; padding-bottom: 60px; }
.footer-grid .logo img { width: 460px; margin-bottom: 38px; }
.footer-grid .logo p { margin: 0; }
.footer-grid .logo p br { display: none; }
.footer-grid .logo p a { display: flex; align-items: center; gap: 28px; margin-bottom: 18px; line-height: 21px; }
.footer-grid > div:not(.logo) { align-self: end; padding-bottom: 8px; }
.footer-grid h4 { color: #fff; text-transform: uppercase; font-size: 16px; font-weight: 400; line-height: 1.5; margin: 0 0 34px; }
.footer-grid ul { list-style: none; margin: 0; padding: 0; }
.footer-grid li { margin-bottom: 7px; line-height: 21px; }
.footer-link { padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.footer-link:hover, .footer-link:focus-visible { text-decoration: underline; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; font-size: 13px; line-height: 15.6px; }
.footer-bottom strong { font-weight: inherit; }
/* Legal pages use the full 1200px container, without display-heading casing. */
.page-cookie-policy .section, .page-privacy-policy .section { padding: 10px 0; }
.legal-content { max-width: 1200px; color: #333; font: 400 16px/24px var(--font-base); }
.legal-content h1 { font-size: 40px; font-weight: 400; line-height: 1; color: #333; margin: 0 0 52px; }
.page-cookie-policy .legal-content h1 { font-size: 38px; }
.legal-content h2 { margin: 8px 0 16px; font-size: 32px; line-height: 1.2; font-weight: 400; color: #333; }
.legal-content h3 { margin: 8px 0 16px; font-size: 28px; line-height: 1.2; font-weight: 400; color: #333; }
.legal-content p { margin-bottom: 14.4px; }
.legal-content em { display: block; font-style: italic; margin-bottom: 14.4px; }
.legal-content a { color: #000; }
.legal-content ul { margin: 0 0 14.4px; }
/* Gallery lightbox, shared with the product photos. */
.lightbox { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 50px 60px; border: 0; background: rgb(0 0 0 / 94%); color: #fff; }
.lightbox::backdrop { background: #000; }
.lightbox img { height: calc(100% - 50px); max-width: 100%; object-fit: contain; margin: auto; }
.lightbox p { text-align: center; font-size: 16px; margin-top: 15px; }
.lightbox button { position: absolute; border: 0; background: transparent; color: #fff; font: 30px/1 Arial, sans-serif; padding: 12px; }
.lightbox-close { top: 5px; right: 12px; }
.lightbox-prev { left: 5px; top: 45%; }
.lightbox-next { right: 5px; top: 45%; }
@media (max-width: 1230px) and (min-width: 1025px) {
  .insight-videos { margin-inline: -10px; }
  .private-collection .tile-grid { width: auto; margin-inline: 0; }
}
@media (max-width: 1024px) {
  .topbar { display: none; }
  .site-header { height: 142px; }
  .site-header > .container { flex-direction: row; justify-content: space-between; padding: 40px 20px; gap: 0; }
  .site-header .logo img { width: 255px; }
  .nav-toggle { display: grid; place-items: center; padding: 8px; width: 40px; height: 40px; border: 0; background: transparent; color: #fff; }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after { display: block; width: 18px; height: 2px; background: currentColor; content: ""; position: relative; }
  .nav-toggle span::before { position: absolute; top: -5px; }
  .nav-toggle span::after { position: absolute; top: 5px; }
  .nav-toggle[aria-expanded="true"] span { background: transparent; }
  .nav-toggle[aria-expanded="true"] span::before { top: 0; transform: rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span::after { top: 0; transform: rotate(-45deg); }
  .main-nav { display: none; position: absolute; top: 100%; left: 0; width: 100%; background: #fff; color: #333; }
  .main-nav.open { display: block; }
  .main-nav > ul { display: block; }
  .main-nav > ul > li { display: grid; grid-template-columns: 1fr auto; }
  .main-nav > ul > li::after { display: none; }
  .main-nav > ul > li > a { padding: 12px 20px; }
  .submenu-toggle { height: 44px; padding: 0 24px; }
  .main-nav .sub-menu { position: static; grid-column: 1 / -1; width: 100%; background: #f9f9f9; }
  .main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu { display: none; }
  .main-nav li.submenu-open > .sub-menu { display: block; }
  .main-nav .sub-menu a { padding-left: 35px; }
  .hero { min-height: 0; }
  .hero:not(.product-hero) { height: auto; margin-top: -80px; }
  .hero > picture > img { height: auto; object-fit: cover; }
  .hero > img { height: 70vh; }
  .hero-overlay .container { padding: 60px 20px 0; }
  .page-home .hero-overlay .container { padding-top: 40px; }
  .page-design-studio .hero { margin-top: -162px; }
  .page-category .hero { margin-top: -125px; height: 70vh; }
  .product-hero { display: none; }
  .home-divider { display: none; }
  .section { padding-top: 60px; }
  .feature-layout { padding-inline: 20px; }
  .services-layout { grid-template-columns: 25% 75%; }
  .services .feature { display: block; }
  .services .feature img { margin-bottom: 20px; }
  .photo-panel { height: auto; }
  .photo-panel img { height: auto; }
  .home-links { padding: 0; gap: 10px; grid-template-columns: 1fr; }
  .home-links .tile { height: 300px; }
  .tile img { height: 100%; object-fit: cover; }
  .tile figcaption { top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 1; background: transparent; border: 1px solid #fff; color: #fff; font-size: 16px; font-weight: 400; white-space: nowrap; padding: 13px 25px 9px; }
  .tile:hover figcaption { transform: translate(-50%, -50%); }
  .home-creations { min-height: 0; aspect-ratio: 683 / 1024; padding: 40px 10px; }
  .insight-videos { margin-inline: -10px; }
  .private-collection .tile-grid { width: auto; margin-inline: -10px; }
  .product-grid { gap: 40px; padding-inline: 20px; }
  .gallery-scroll { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-section { padding-top: 30px; }
  .footer-grid { gap: 25px; grid-template-columns: 42% 25% 25%; }
}
@media (max-width: 767px) {
  body { font-size: 20px; line-height: 30px; }
  h1, h2 { font-size: 35.2px; line-height: .9; }
  .site-header { height: 81.6px; }
  .site-header > .container { padding: 10px 15px 10px 8px; }
  .site-header .logo { max-width: calc(100% - 55px); }
  .site-header .logo img { width: 255px; }
  .hero h1, .hero .hero-title { font-size: 35.2px; }
  .hero-overlay .container { padding: 30px 10px 0; }
  .hero p { font-size: 20px; line-height: 30px; }
  .page-home .hero h1 { font-size: 35.2px; line-height: 1.1; }
  .page-home .hero-overlay .container { padding-inline: 0; }
  .page-about-us .hero-overlay .container { padding-inline: 17px; }
  .page-design-studio .hero-overlay .container { padding-top: 110px; }
  .page-category .hero { height: 700px; }
  .page-category .hero > img { height: 100%; }
  .page-category .hero h1 { font-size: 48px; }
  .section { padding: 20px; }
  .section > .container { padding: 10px; }
  .intro-layout, .section-head, .feature-layout, .services-layout { display: block; }
  .intro-layout > .eyebrow { padding: 10px 0 45px; }
  .eyebrow::before { display: none; }
  .intro-layout > div { padding: 0; }
  .section-head { margin-bottom: 10px; }
  .section-head > .eyebrow { padding: 20px 0 70px; }
  .section-head > :not(.eyebrow) { text-align: right; }
  .section-head h2 { margin-bottom: 30px; }
  .home-mission { padding-bottom: 20px; }
  .home-mission p { margin-top: 30px; }
  .home-style .feature-layout { padding: 5px; }
  .feature-layout .section-head { padding: 0; }
  .feature-layout .section-head .eyebrow { padding: 15px 0 0; margin-bottom: 40px; }
  .feature-layout .section-head h2 { text-align: right; }
  .feature-layout > .grid-3 { gap: 60px; }
  .feature { display: block; text-align: center; padding: 20px 30px; }
  .feature > img { width: 140px; height: 160px; object-fit: contain; margin: 0 auto 25px; }
  .feature h3 { margin: 8px 0 13px; }
  .feature p { line-height: 27px; }
  .feature .btn { margin-top: 28px; }
  .home-style .grid-3 { margin-top: 80px; }
  .home-style .feature { padding: 20px 35px; }
  .home-creations { padding: 20px 10px; }
  .home-creations h2 { font-size: 35.2px; }
  .about-intro { padding-top: 20px; }
  .about-intro p { font-size: 20px; line-height: 30px; }
  .read-more { margin-top: 30px; }
  .services { padding: 48px 0; }
  .services > .container { padding: 5px; }
  .services-layout .section-head .eyebrow { padding: 15px 20px 40px; }
  .services-layout > .grid-2, .services-layout > .grid-3 { grid-template-columns: 1fr; gap: 40px; }
  .services .feature { padding: 10px 0; text-align: center; }
  .services .feature img { width: 90px; height: 100px; margin: 0 auto 25px; }
  .services .feature p { padding-inline: 10px; }
  .insights { padding: 20px 10px 0; }
  .insights .section-head .eyebrow { padding-bottom: 100px; }
  .insight-videos { grid-template-columns: 1fr; }
  .insight-videos img { height: 70px; }
  .page-design-studio .services { padding: 10px 20px 20px; }
  .page-design-studio .services .section-head .eyebrow { padding: 15px 10px 40px; }
  .page-design-studio .services .feature p { padding: 0; }
  .design-gallery { padding: 20px 10px 0; }
  .gallery-scroll { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .design-gallery .section-head .eyebrow { padding-bottom: 110px; }
  .design-gallery .section-head h2 { margin-bottom: 30px; }
  .private-style .feature-layout { padding: 9px; }
  .private-style .section-head { padding-right: 0; }
  .private-style .feature-layout > .grid-3 { gap: 30px; }
  .private-style .feature { display: block; padding: 25px 20px; }
  .private-style .feature > img { margin-inline: auto; }
  .private-style .feature p { font-size: 19.2px; line-height: 28.8px; }
  .private-collection { padding: 20px 10px 0; }
  .private-collection .tile-grid { grid-template-columns: 1fr; gap: 10px; margin-inline: -20px; }
  .private-collection .tile { height: 85vw; }
  .catalogue { padding: 20px 0 0; }
  .catalogue .section-head { margin: 0 10px 55px; }
  .product-grid { grid-template-columns: 1fr; padding: 0 39px 65px; row-gap: 72px; }
  .product-card img { margin-bottom: 33px; }
  .contact-section { padding: 20px; }
  .contact-section .section-head { margin-bottom: 0; }
  .contact-section .section-head .eyebrow { padding-bottom: 110px; }
  .contact-section .section-head h2 { margin-bottom: 45px; }
  .contact-section .section-head p { padding-left: 0; margin-bottom: 20px; }
  .contact-form { grid-template-columns: 1fr; margin: 50px 0 30px; }
  .contact-form .btn { justify-self: stretch; }
  .product-section { padding: 40px 0 0; }
  .product-section > .container { padding: 10px; }
  .product-detail { grid-template-columns: 1fr; gap: 0; }
  .product-info { padding-left: 20px; }
  .product-info h1 { font-size: 22.4px; margin: 20px 0 40px; }
  .product-info ul { font-size: 19.2px; }
  .site-footer { padding: 50px 25px 10px; }
  .site-footer > .container { padding: 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 25px; padding-bottom: 50px; }
  .footer-grid .logo { grid-column: 1 / -1; }
  .footer-grid .logo img { width: 100%; margin-bottom: 38px; }
  .footer-grid .logo p a { gap: 25px; margin-bottom: 12px; font-size: 12px; }
  .footer-grid .logo .icon { width: 16px; height: 16px; }
  .footer-grid h4 { font-size: 14px; margin-bottom: 30px; }
  .footer-grid li { font-size: 12px; }
  .footer-bottom { flex-direction: column; text-align: center; gap: 20px; }
  .footer-bottom .social-icons { gap: 13px; }
  .page-cookie-policy .section, .page-privacy-policy .section { padding: 0; }
  .legal-content { overflow-wrap: anywhere; }
  .legal-content h2 { font-size: 32px; }
  .legal-content h3 { font-size: 28px; }
  .lightbox { padding: 60px 35px; }
}
@media (prefers-reduced-motion: reduce) {
  html, .carousel-track { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

@media (min-width: 1025px) {
  .fixed-photo { background-image: var(--photo); background-position: center; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; }
  .fixed-photo > picture, .fixed-photo > img { visibility: hidden; }
  .home-creations .creations-photo { background-position: center bottom; }
}
@media (min-width: 768px) {
  .private-style .feature p { font-weight: 300; }
}
@media (max-width: 1024px) {
  .home-links .tile::after, .private-collection .tile::after { content: ""; position: absolute; inset: 0; background: rgb(0 0 0 / 35%); pointer-events: none; }
  .tile figcaption { z-index: 1; }
}

/* Page-specific type settings verified against the loaded original fonts. */
.page-design-studio .feature p, .private-style .feature p, .page-private-label .hero p { font-family: "Open Sans", Arial, sans-serif; font-weight: 300; }
.private-style h2, .home-style h2, .home-creations h2 { letter-spacing: -1px; }
.feature h3 { letter-spacing: -.2px; }
.page-private-label .hero h1, .page-design-studio .hero h1 { letter-spacing: 1px; }
.mobile-text { display: none; }
@media (max-width: 767px) {
  .desktop-text { display: none; }
  .mobile-text { display: inline; }
  .page-home .hero, .page-contact-us .hero, .page-private-label .hero { padding-bottom: 20px; }
}

/* Final measurements of the original Private Label and Design Studio layouts. */
.private-style .section-head .eyebrow { margin-bottom: 30px; }
.private-style .feature h3 { margin-bottom: 17px; }
.page-private-label .hero-overlay { background: rgb(0 0 0 / 40%); }
.page-private-label .hero-overlay .container { padding-top: 91px; padding-right: 157px; }
.page-design-studio .hero h1 { line-height: .8; }
.page-design-studio .hero-overlay { background: rgb(0 0 0 / 40%); }
.page-design-studio .hero-overlay .container { transform: translateY(-12px); }
@media (min-width: 1025px) {
  .page-about-us .hero-overlay { background: rgb(1 0 12 / 12%); }
  .photo-panel { position: relative; }
  .about-divider::after, .design-divider::after, .private-divider::after { content: ""; position: absolute; inset: 0; background: rgb(0 0 0 / 40%); }
  .about-divider::after { background: rgb(0 7 12 / 38.25%); }
}
@media (max-width: 1024px) {
  .site-header:has(.main-nav.open) { background: #000; }
  .main-nav > ul > li { display: flex; flex-wrap: wrap; justify-content: center; }
  .main-nav > ul > li > a { padding: 10px 0; font-size: 13px; }
  .main-nav > ul > li:has(.sub-menu) > a { padding-right: 0; }
  .submenu-toggle { height: 40px; padding: 0 10px; }
  .main-nav .sub-menu { flex-basis: 100%; text-align: center; }
  .main-nav .sub-menu a { padding: 10px 20px; font-size: 13px; }
  .home-links .tile::after { background: rgb(0 0 0 / 36.8%); }
  .private-collection .tile::after { background: rgb(0 0 0 / 40%); }
  .private-collection .tile:first-child::after { background: rgb(0 0 0 / 26%); }
}
@media (max-width: 767px) {
  .page-private-label .hero { margin-top: -85px; }
  .page-private-label .hero-overlay .container { padding: 78px 10px 0; }
  .private-style { padding: 20px; }
  .private-style .feature-layout { padding: 9px 9px 30px; }
  .private-style .section-head .eyebrow { margin-bottom: 23px; }
  .private-style .feature-layout > .grid-3 { gap: 38px; }
  .private-style .feature { padding: 0 21px; }
  .private-style .feature > img { width: 35%; height: auto; margin: 0 auto 15px; }
  .private-style .feature:nth-child(2) > img { width: 30%; margin-bottom: 16px; }
  .private-style .feature h3 { margin: 0 0 16px; }
  .private-collection { padding: 20px 10px 0; }
  .private-collection .section-head .eyebrow { padding-bottom: 13px; }
  .private-collection .tile-grid { padding-top: 0; }
  .page-design-studio .hero { height: 670px; margin-top: -163px; }
  .page-design-studio .hero > picture > img { height: 100%; object-fit: cover; }
  .page-design-studio .hero-overlay .container { padding-top: 150px; transform: none; }
  .page-design-studio .services > .container { padding: 5px 10px; }
  .page-design-studio .services .section-head .eyebrow { padding-bottom: 15px; }
  .design-gallery .section-head .eyebrow { padding-bottom: 64px; }
}

/* Blog: shared photography, typography and outline buttons, with a reading column. */
.blog-hero { height: 65vh; min-height: 540px; }
.blog-hero .hero-overlay { background: rgb(0 0 0 / 52%); }
.blog-hero .hero-overlay .container { max-width: 1100px; padding: 120px 30px 40px; }
.blog-hero h1 { max-width: 950px; line-height: 1.12; letter-spacing: 1px; }
.blog-hero p { max-width: 680px; font-weight: 400; font-size: 22px; }
.page-blog-article .blog-hero h1 { font-size: clamp(34px, 4vw, 56px); }
.page-blog .eyebrow::before { position: static; display: inline-block; width: 48px; margin-right: 18px; vertical-align: middle; }
.page-blog .main-nav > ul > li:has(> a[href="/blog/"])::after { opacity: 1; }
.blog-listing { padding: 100px 30px 90px; }
.blog-listing > .container { max-width: 1160px; }
.blog-listing .section-head { margin-bottom: 65px; }
.blog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 60px; }
.blog-card { display: flex; flex-direction: column; align-items: start; min-width: 0; }
.blog-card-image { display: block; width: 100%; overflow: hidden; margin-bottom: 28px; }
.blog-card-image img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.blog-meta { color: #595959; font-size: 15px; line-height: 1.6; font-weight: 400; }
.blog-meta span { margin-inline: 8px; }
.blog-card h3 { font-size: 34px; line-height: 1.12; margin: 0 0 18px; }
.blog-card > p:not(.blog-meta) { font-weight: 400; margin-bottom: 28px; }
.blog-card .btn { margin-top: auto; }
.blog-card h3 a:hover, .blog-related h2 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.blog-cta { padding: 70px 30px; border-block: 1px solid #e5e5e5; text-align: center; }
.blog-cta h2 { font-size: 44px; line-height: 1.1; text-transform: lowercase; }
.blog-cta p { margin-bottom: 28px; font-weight: 400; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 740px); gap: 60px; max-width: 1160px; padding: 85px 30px 90px; }
.article-sidebar { align-self: start; }
.article-back { display: inline-block; color: #000; font-weight: 400; font-size: 17px; margin-bottom: 30px; text-decoration: underline; text-underline-offset: 5px; }
.article-copy { min-width: 0; color: #595959; font-size: 21px; line-height: 1.55; font-weight: 400; }
.article-copy p { margin-bottom: 24px; }
.article-copy .article-lead { font-size: 25px; line-height: 1.4; color: #333; }
.article-copy h2 { font-size: 38px; line-height: 1.1; margin: 46px 0 20px; text-transform: lowercase; }
.blog-related { padding: 70px 30px 90px; }
.blog-related > .container { max-width: 1100px; }
.blog-related .eyebrow { margin-bottom: 30px; }
.blog-related h2 { max-width: 800px; font-size: 42px; line-height: 1.1; margin-bottom: 30px; }
@media (max-width: 1024px) {
  .page-blog .blog-hero { height: 620px; margin-top: -142px; }
  .page-blog .blog-hero > img { height: 100%; }
  .blog-grid { gap: 35px; }
  .article-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 800px; padding-top: 55px; }
  .article-back { margin-bottom: 15px; }
}
@media (max-width: 767px) {
  .page-blog .blog-hero { height: 560px; min-height: 0; margin-top: -81.6px; }
  .blog-hero .hero-overlay .container { padding: 95px 25px 30px; }
  .blog-hero p { font-size: 20px; line-height: 1.4; }
  .blog-listing { padding: 55px 25px; }
  .blog-listing > .container { padding: 0; }
  .blog-listing .section-head { margin-bottom: 40px; }
  .blog-listing .section-head > .eyebrow { padding: 0 0 30px; }
  .blog-grid { grid-template-columns: minmax(0, 1fr); gap: 55px; }
  .blog-card h3 { font-size: 30px; }
  .blog-card-image { margin-bottom: 22px; }
  .blog-meta { font-size: 14px; }
  .article-layout { padding: 40px 25px 50px; }
  .article-copy { font-size: 20px; }
  .article-copy .article-lead { font-size: 23px; }
  .article-copy h2 { font-size: 32px; margin-top: 35px; }
  .blog-cta, .blog-related { padding: 50px 25px; }
  .blog-cta > .container, .blog-related > .container { padding: 0; }
  .blog-cta h2, .blog-related h2 { font-size: 34px; }
}

/* Laboratory: service cards with a production-location tag. */
.lab-hero .hero-overlay { background: rgb(0 0 0 / 40%); }
.lab-offer { padding-bottom: 120px; }
.lab-offer .section-head { margin-bottom: 50px; }
.lab-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.lab-card { display: flex; flex-direction: column; padding: 40px 35px 35px; background: #f7f7f7; }
.lab-card h3 { font-weight: 700; margin-bottom: 14px; }
.lab-card p { font-size: 18px; line-height: 1.6; }
.lab-tags { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: auto 0 0; padding: 20px 0 0; }
.lab-tag { padding: 7px 14px 4px; border: 1px solid #000; border-radius: 999px; font-size: 13px; font-weight: 400; line-height: 1.4; letter-spacing: 2px; text-transform: uppercase; }
.lab-tag--in-house { background: #000; color: #fff; }
.lab-tag--partners { background: #fff; color: #000; }
@media (max-width: 1024px) {
  .lab-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .lab-offer { padding-bottom: 80px; }
}
@media (max-width: 767px) {
  .lab-grid { grid-template-columns: minmax(0, 1fr); }
  .lab-card { padding: 30px 25px 28px; }
  .lab-offer { padding-bottom: 60px; }
}

/* Desktop: hero title and subtitle sit in exactly the same place on every inner page,
   so moving between pages feels seamless. Home (centered) and blog keep their own hero. */
@media (min-width: 1025px) {
  body:not(.page-home):not(.page-blog) .hero { margin-top: -126px; height: 70vh; }
  body:not(.page-home):not(.page-blog) .hero-overlay { align-items: flex-start; }
  body:not(.page-home):not(.page-blog) .hero-overlay .container { max-width: var(--container-max); padding: 270px 10px 0; transform: none; }
  body:not(.page-home):not(.page-blog) .hero h1, body:not(.page-home):not(.page-blog) .hero .hero-title { font-size: 57.6px; line-height: 1; letter-spacing: 0; margin-bottom: 20px; }
  body:not(.page-home):not(.page-blog) .hero p { max-width: 1040px; font: 100 19.2px/28.8px var(--font-base); }
}

/* Desktop: home tiles hover as on the original site — the image dims to 80% and the
   caption fades in near the center as white outlined text, with no zoom or white fill. */
@media (min-width: 1025px) {
  .home-links .tile img, .home-links .tile:hover img { transform: none; }
  .home-links .tile:hover img { filter: brightness(.8); }
  .home-links .tile figcaption { top: 50%; left: 50%; padding: 15px 14px 6px; border: 2px solid #fff; background: transparent; color: #fff; font: 700 18px/1.4 var(--font-base); text-align: center; text-transform: uppercase; text-shadow: 0 0 10px rgb(0 0 0 / 30%); opacity: 0; transform: translateX(-100px); transition: .3s ease-in-out; }
  .home-links .tile:hover figcaption, .home-links .tile:focus-visible figcaption { opacity: 1; transform: translateX(-100px); }
}

/* Desktop: submenus float over the hero photo with no panel — white items that turn grey on hover.
   Pages without a hero (cookie and privacy policy) keep the light panel so the items stay readable. */
@media (min-width: 1025px) {
  body:has(.hero) .main-nav .sub-menu { background: transparent; color: #fff; }
  body:has(.hero) .main-nav .sub-menu a { text-shadow: 0 0 10px rgb(0 0 0 / 30%); transition: color .2s; }
  body:has(.hero) .main-nav .sub-menu a:hover, body:has(.hero) .main-nav .sub-menu a:focus-visible { background: transparent; color: #b2b2b2; }
}

/* Home: special projects — paged carousel, three portrait photos per view on desktop. */
.home-projects { padding-bottom: 60px; }
.home-projects .section-head { display: block; padding: 30px 30px 0; margin-bottom: 50px; }
.home-projects .section-head .eyebrow { padding: 0; }
.home-projects .section-head .eyebrow::before { top: 12px; }
.projects-carousel { padding: 0 30px; }
.projects-track { display: flex; gap: 20px; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; scroll-behavior: smooth; outline-offset: 4px; }
.projects-track::-webkit-scrollbar { display: none; }
.projects-track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; }
@media (pointer: fine) { .projects-track { cursor: grab; } }
.project-slide { flex: 0 0 calc((100% - 40px) / 3); margin: 0; scroll-snap-align: start; }
.project-slide img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; background: #ececec; }
.projects-dots { display: flex; justify-content: center; gap: 4px; padding-top: 24px; }
.projects-dots button { display: grid; place-items: center; width: 24px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.projects-dots button::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #ccc; transition: background .2s; }
.projects-dots button:hover::before { background: #888; }
.projects-dots button[aria-pressed="true"]::before { background: #000; }
@media (max-width: 1024px) {
  .project-slide { flex-basis: calc((100% - 20px) / 2); }
  .home-projects .section-head, .projects-carousel { padding-inline: 20px; }
}
@media (max-width: 767px) {
  .home-projects { padding-bottom: 40px; }
  .home-projects .section-head { padding: 15px 0 0; margin-bottom: 30px; }
  .projects-carousel { padding-inline: 0; }
  .project-slide { flex-basis: 100%; }
  .projects-dots { gap: 0; }
  .projects-dots button { width: 20px; }
}

/* Laboratory: photo carousel, four square photos per view on desktop. */
.lab-gallery { padding-bottom: 80px; }
.lab-gallery .section-head { margin-bottom: 50px; }
.lab-gallery .projects-carousel { padding-inline: 0; }
.projects-carousel--four .project-slide { flex-basis: calc((100% - 60px) / 4); }
.projects-carousel--four .project-slide img { aspect-ratio: 1; }
@media (max-width: 1024px) {
  .projects-carousel--four .project-slide { flex-basis: calc((100% - 20px) / 2); }
}
@media (max-width: 767px) {
  .lab-gallery { padding-bottom: 40px; }
  .projects-carousel--four .project-slide { flex-basis: calc((100% - 12px) / 2); }
  .projects-carousel--four .projects-track { gap: 12px; }
}

/* Cookie consent banner (assets/js/consent.js) */
.cookie-banner { position: fixed; z-index: 1000; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 20px; padding: 10px 48px 10px 20px; background: #fff; color: #555; border-top: 1px solid #ddd; font: 400 12.5px/1.45 var(--font-base); }
.cookie-banner[hidden] { display: none; }
.cookie-banner:focus { outline: none; }
.cookie-banner p { flex: 1; margin: 0; }
.cookie-banner a { color: #333; text-decoration: underline; }
.cookie-banner-actions { display: flex; gap: 8px; flex-shrink: 0; }
.cookie-banner-actions .btn { padding: 7px 14px 5px; font-size: 11px; line-height: 14px; }
.cookie-banner-close { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); padding: 4px 6px; border: 0; background: none; color: #777; font-size: 18px; line-height: 1; cursor: pointer; }
@media (max-width: 700px) {
  .cookie-banner { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 40px 12px 16px; }
  .cookie-banner-close { top: 8px; transform: none; }
  .cookie-banner-actions .btn { flex: 1; }
}
