/* ============================================================
   Etikete-Riboni — styling
   Look & feel adapted from price-pierce.co.uk (2026 theme).
   No code or assets are copied from the reference; this is a
   clean reimplementation of its design system. See DESIGN-SPEC.md
   ============================================================ */

/* ---------- tokens ---------- */
:root {
  --ink: #21211e;
  --forest: #21352f;
  --stone: #e6e5e2;
  --cream: #f7f3ef;
  --white: #ffffff;
  --bronze: #988c6c;
  --bronze-dark: #7d7256;

  --bg: var(--cream);
  --text: var(--ink);

  --container: 1362px;
  --gutter: clamp(20px, 5vw, 80px);

  --s-large: clamp(64px, 10vw, 120px);
  --s-medium: clamp(48px, 7vw, 80px);
  --s-small: clamp(32px, 5vw, 48px);

  --header-h: 76px;

  --huge: clamp(2.875rem, 8vw, 6.375rem);
  --h1: clamp(2.25rem, 5vw, 3.875rem);
  --h2: clamp(1.75rem, 3.5vw, 2.75rem);
  --h3: clamp(1.25rem, 2vw, 1.5rem);
  --text-large: clamp(1.0625rem, 1.4vw, 1.25rem);

  --ease: cubic-bezier(0.165, 0.84, 0.44, 1);
  --radius: 4px;
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.lenis, body.lenis html { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; cursor: pointer; border: none; background: none; }

h1, h2, h3 { font-weight: 500; line-height: 1.06; letter-spacing: -0.015em; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

.section-tag {
  font-size: 0.6875rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.18em; color: var(--bronze); margin-bottom: 1.25rem;
}
.section-tag--light { color: var(--bronze); }

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--ink); color: #fff; padding: 12px 18px;
}
.skip-link:focus { left: 12px; top: 12px; }

/* ---------- buttons ---------- */
.btn {
  position: relative; display: inline-flex; align-items: center; gap: .5em;
  height: 40px; padding: 0 1.5rem; border-radius: 100px;
  font-size: 0.875rem; font-weight: 500; letter-spacing: .01em;
  border: 1px solid var(--ink); color: var(--ink);
  overflow: hidden; isolation: isolate;
  transition: color .4s var(--ease), border-color .4s var(--ease);
}
.btn span { position: relative; z-index: 2; }
.btn::before {
  content: ""; position: absolute; inset: 0; z-index: 1; background: var(--ink);
  transform: scaleX(0); transform-origin: left center;
  transition: transform .45s var(--ease);
}
.btn:hover { color: #fff; }
.btn:hover::before { transform: scaleX(1); }

.btn--ghost { border-color: var(--ink); }
.btn--header { height: 38px; }

.btn--light { color: #fff; border-color: rgba(255,255,255,.6); }
.btn--light::before { background: #fff; }
.btn--light:hover { color: var(--ink); }

.btn--bronze { border-color: var(--bronze); color: #fff; }
.btn--bronze::before { background: var(--bronze); transform: scaleX(1); }
.btn--bronze:hover { color: #fff; }
.btn--bronze:hover::before { background: var(--bronze-dark); }

.btn--large { height: 56px; padding: 0 2rem; font-size: 1rem; }

/* ============================================================
   HEADER
   ============================================================ */
.header {
  position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--header-h);
  display: flex; align-items: center;
  transition: background-color .4s var(--ease), box-shadow .4s var(--ease);
}
.header__inner {
  width: 100%; max-width: var(--container); margin-inline: auto;
  padding-inline: var(--gutter);
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
}
.header__logo svg { height: 28px; width: auto; color: #fff; transition: color .4s var(--ease); }
.header__nav { margin-left: auto; }

/* transparent over hero (light variant), solid when scrolled */
.header--light .header__logo svg { color: #fff; }
.header--light .nav > .nav__item > a,
.header--light .header__mail { color: #fff; }
.header--light .btn--ghost { color: #fff; border-color: rgba(255,255,255,.55); }
.header--light .btn--ghost::before { background: #fff; }
.header--light .btn--ghost:hover { color: var(--ink); }
.header--light .menu-toggle span { background: #fff; }

.header.is-stuck {
  background: var(--cream);
  box-shadow: 0 1px 0 rgba(33,33,30,.08);
}
.header.is-stuck .header__logo svg,
.header.is-stuck .nav > .nav__item > a,
.header.is-stuck .header__mail { color: var(--ink); }
.header.is-stuck .btn--ghost { color: var(--ink); border-color: var(--ink); }
.header.is-stuck .btn--ghost::before { background: var(--ink); }
.header.is-stuck .btn--ghost:hover { color: #fff; }
.header.is-stuck .menu-toggle span { background: var(--ink); }

.nav { display: flex; align-items: center; gap: 1.75rem; }
.nav__item > a {
  display: inline-flex; align-items: center; gap: .35em;
  font-size: 0.9375rem; font-weight: 500; padding: .5rem 0; position: relative;
}
.nav__item > a::after {
  content: ""; position: absolute; left: 0; bottom: .25rem; height: 1px; width: 100%;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform .4s var(--ease);
}
.nav__item:hover > a::after { transform: scaleX(1); }
.nav__chev { width: 10px; height: 6px; transition: transform .3s var(--ease); }
.nav__item--dropdown:hover .nav__chev { transform: rotate(180deg); }

.dropdown {
  position: absolute; top: 100%; left: 50%; transform: translate(-50%, 8px);
  min-width: 230px; background: var(--cream); color: var(--ink);
  border-radius: var(--radius); box-shadow: 0 18px 50px rgba(33,33,30,.16);
  padding: .5rem; opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .3s var(--ease), transform .3s var(--ease);
}
.nav__item--dropdown { position: relative; }
.nav__item--dropdown:hover .dropdown {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0);
}
.dropdown a {
  display: block; padding: .7rem .9rem; font-size: 0.875rem; border-radius: 3px;
  color: var(--ink); transition: background-color .25s, color .25s;
}
.dropdown a:hover { background: var(--stone); color: var(--bronze-dark); }
.dropdown__all { font-weight: 600; color: var(--bronze-dark); }

.header__cta { display: flex; align-items: center; gap: 1.25rem; }
.header__mail { font-size: 0.875rem; font-weight: 500; }

.menu-toggle { display: none; width: 28px; height: 20px; position: relative; }
.menu-toggle span {
  position: absolute; left: 0; width: 100%; height: 2px; background: #fff;
  transition: transform .35s var(--ease), opacity .25s;
}
.menu-toggle span:nth-child(1) { top: 4px; }
.menu-toggle span:nth-child(2) { bottom: 4px; }
body.menu-open .menu-toggle span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
body.menu-open .menu-toggle span:nth-child(2) { transform: translateY(-5px) rotate(-45deg); }

/* ---------- mobile menu ---------- */
.mobile-menu {
  position: fixed; inset: 0; z-index: 90; background: var(--ink); color: #fff;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden; transition: opacity .5s var(--ease), visibility .5s;
}
body.menu-open .mobile-menu { opacity: 1; visibility: visible; }
.mobile-menu[hidden] { display: flex; }
.mobile-menu ul { display: flex; flex-direction: column; gap: 1.25rem; text-align: center; }
.mobile-menu a { font-size: 2rem; font-weight: 500; }
.mobile-menu__mail { display: block; margin-top: 2.5rem; text-align: center; color: var(--bronze); }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative; min-height: 100svh; display: flex; align-items: flex-end;
  padding: 0 0 clamp(3rem, 7vh, 6rem); overflow: hidden; color: #fff;
}
.hero__bg { position: absolute; inset: 0; z-index: 0; background: #21211e; }
.hero__bg img, .hero__bg video { width: 100%; height: 100%; object-fit: cover; }
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to top, rgba(33,33,30,.85), rgba(33,33,30,.25) 55%, rgba(33,33,30,.45));
}
.hero__inner { position: relative; z-index: 2; width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.hero__tag {
  font-size: 0.75rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.22em; color: rgba(255,255,255,.85); margin-bottom: 1.5rem;
}
.hero__title { font-size: var(--huge); max-width: 14ch; }
.hero__sub { margin-top: 1.5rem; font-size: var(--text-large); max-width: 36ch; color: rgba(255,255,255,.9); }

.hero__scroll {
  position: absolute; z-index: 2; bottom: 2rem; right: var(--gutter);
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
  font-size: 0.625rem; text-transform: uppercase; letter-spacing: .2em; color: rgba(255,255,255,.8);
}
.hero__scroll i { width: 1px; height: 48px; background: rgba(255,255,255,.5); position: relative; overflow: hidden; }
.hero__scroll i::after {
  content: ""; position: absolute; top: -50%; left: 0; width: 100%; height: 50%; background: #fff;
  animation: scrollLine 2s var(--ease) infinite;
}
@keyframes scrollLine { 0% { top: -50%; } 100% { top: 100%; } }
/* hide the bottom-right scroll cue on phones — it overlaps the hero subtitle */
@media (max-width: 640px) { .hero__scroll { display: none; } }

/* ============================================================
   INTRO + STATS
   ============================================================ */
.intro { padding: var(--s-large) 0; }
.intro__statement {
  font-size: var(--h1); max-width: 22ch; letter-spacing: -0.02em;
}
.stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem;
  margin-top: var(--s-medium); padding-top: var(--s-small);
  border-top: 1px solid rgba(33,33,30,.14);
}
.stat__number { display: block; font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 500; letter-spacing: -0.03em; line-height: 1; }
.stat p { margin-top: .75rem; font-size: 0.9375rem; color: rgba(33,33,30,.7); max-width: 22ch; }
.intro__cta { display: flex; align-items: center; gap: 1.5rem; margin-top: var(--s-medium); }
.intro__cta-note { font-size: 0.875rem; color: rgba(33,33,30,.6); }

/* ============================================================
   FEATURES
   ============================================================ */
.features { padding: 0 0 var(--s-large); }
.features__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); }
.feature__img { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius); overflow: hidden; margin-bottom: 1.75rem; }
.feature__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.feature:hover .feature__img img { transform: scale(1.05); }
.feature__title { font-size: var(--h3); margin-bottom: .85rem; }
.feature p { color: rgba(33,33,30,.72); font-size: 0.9375rem; }

/* ============================================================
   PRODUCTS / CAROUSEL
   ============================================================ */
.products { padding: var(--s-large) 0; }
.products--dark { background: var(--ink); color: #fff; --bg: var(--ink); }
.products--light { background: var(--cream); color: var(--ink); --bg: var(--cream); }
.products .section-tag { color: var(--bronze); }
.products__head { max-width: 760px; margin-bottom: var(--s-medium); }
.products__title { font-size: var(--h2); margin-bottom: 1.1rem; }
.products__intro { font-size: var(--text-large); max-width: 56ch; }
.products--dark .products__intro { color: rgba(255,255,255,.72); }
.products--light .products__intro { color: rgba(33,33,30,.7); }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }

/* light (labels) card variant */
.products--light .product-card { background: #fff; border: 1px solid #e7e3dc; }
.products--light .product-card:hover { background: #fff; box-shadow: 0 22px 50px rgba(33,33,30,.12); }
.products--light .product-card h3 { color: var(--ink); }
.products--light .product-card > p { color: rgba(33,33,30,.7); }
.products--light .product-card__meta { color: var(--bronze-dark); border-top-color: rgba(33,33,30,.12); }
.products--light .product-card__art { background: #f2efe9; }
.products--light .product-card__art::after { display: none; }
.carousel-nav { display: flex; gap: .75rem; }
.carousel-btn {
  width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35);
  display: grid; place-items: center; color: #fff;
  transition: background-color .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease);
}
.carousel-btn svg { width: 16px; height: 16px; }
.carousel-btn:hover { background: var(--bronze); border-color: var(--bronze); }
.carousel-btn:disabled { opacity: .3; cursor: default; }
.carousel-btn:disabled:hover { background: none; border-color: rgba(255,255,255,.35); }

.carousel { overflow: hidden; }
.carousel__track {
  display: flex; gap: clamp(1rem, 2vw, 1.5rem); padding-inline: var(--gutter);
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; -ms-overflow-style: none;
  max-width: var(--container); margin-inline: auto;
}
.carousel__track::-webkit-scrollbar { display: none; }
.product-card {
  flex: 0 0 clamp(260px, 30vw, 340px); scroll-snap-align: start;
  background: #2a2a26; border-radius: 8px; overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .5s var(--ease), background-color .5s var(--ease);
}
.product-card:hover { transform: translateY(-6px); background: #30302b; }
.product-card__art { position: relative; aspect-ratio: 14 / 10; overflow: hidden; background: #1b1b18; }
.product-card__art::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(27,27,24,.5), rgba(27,27,24,0) 55%); }
.product-card__art img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.product-card:hover .product-card__art img { transform: scale(1.06); }
.product-card h3 { font-size: 1.375rem; margin: 1.5rem 1.5rem .75rem; }
.product-card > p { margin: 0 1.5rem; font-size: 0.9rem; color: rgba(255,255,255,.7); }
.product-card__meta {
  margin: 1.25rem 1.5rem 1.75rem !important; padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.12);
  font-size: 0.75rem !important; text-transform: uppercase; letter-spacing: .08em;
  color: var(--bronze) !important;
}

/* ============================================================
   BANNER (parallax)
   ============================================================ */
.banner {
  position: relative; min-height: 70vh; display: flex; align-items: center;
  overflow: hidden; color: #fff; --bg: var(--ink);
}
.banner__bg { position: absolute; inset: 0; z-index: 0; }
.banner__bg img { width: 100%; height: 100%; object-fit: cover; }
.banner::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(33,33,30,.8), rgba(33,33,30,.35)); }
.banner__inner { position: relative; z-index: 2; }
.banner__inner h2 { font-size: var(--h1); max-width: 18ch; margin-bottom: 2rem; }

/* ============================================================
   COMPANY
   ============================================================ */
.company { padding: var(--s-large) 0; background: var(--stone); --bg: var(--stone); }
.company__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.company__media { position: relative; }
.company__img { aspect-ratio: 3 / 4; border-radius: var(--radius); overflow: hidden; }
.company__img img { width: 100%; height: 100%; object-fit: cover; }
.company__card {
  position: absolute; right: -1.5rem; bottom: -2rem; width: 58%; margin: 0;
  border-radius: var(--radius); overflow: hidden; background: var(--cream);
  box-shadow: 0 25px 60px rgba(33,33,30,.22);
}
.company__card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.company__card figcaption { padding: 1rem 1.25rem; font-size: 0.8125rem; color: rgba(33,33,30,.72); }
.company__text h2 { font-size: var(--h2); margin-bottom: 1.75rem; max-width: 16ch; }
.company__text p { color: rgba(33,33,30,.78); margin-bottom: 1.1rem; }
.company__text .btn { margin-top: 1rem; }

/* ============================================================
   CTA
   ============================================================ */
.cta { background: var(--forest); color: #fff; padding: var(--s-large) 0; text-align: center; --bg: var(--forest); }
.cta__inner { display: flex; flex-direction: column; align-items: center; }
.cta h2 { font-size: var(--huge); margin-bottom: 2.5rem; }
.cta__actions { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }
.cta__loc { font-size: 0.9375rem; color: rgba(255,255,255,.7); }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background: var(--ink); color: rgba(255,255,255,.75); padding: var(--s-medium) 0 2rem; }
.footer__inner { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem; padding-bottom: var(--s-small); border-bottom: 1px solid rgba(255,255,255,.12); }
.footer__logo svg { height: 26px; width: auto; color: #fff; margin-bottom: 1.25rem; }
.footer__brand p { font-size: 0.875rem; max-width: 34ch; }
.footer__nav a, .footer__contact a { font-size: 0.9rem; line-height: 2.1; transition: color .25s; }
.footer__nav a:hover, .footer__contact a:hover { color: var(--bronze); }
.footer__contact p { font-size: 0.875rem; margin-top: .5rem; }
.footer__legal { padding-top: 1.75rem; font-size: 0.8125rem; color: rgba(255,255,255,.5); display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: center; justify-content: space-between; }
.footer__legal-links a { color: rgba(255,255,255,.6); }
.footer__legal-links a:hover { color: var(--bronze); }

/* ============================================================
   SCROLL REVEAL ANIMATIONS  (recreated from reference spec)
   ============================================================ */
[data-animate="fade"] { transition: opacity .8s var(--ease); }
[data-animate="fade"]:not([data-animated]) { opacity: 0; }
[data-animate="fade"][data-animated] { opacity: 1; }

/* image wipe reveal: cover panel in section bg scales away from the top */
[data-animate="img"] { position: relative; }
[data-animate="img"]::after {
  content: ""; position: absolute; inset: -1px; z-index: 3;
  background: var(--bg); transform-origin: 50% 0; pointer-events: none;
}
[data-animate="img"]:not([data-animated])::after { transform: scaleY(1); }
[data-animate="img"][data-animated]::after { transform: scaleY(0); transition: transform .9s var(--ease); }

/* staggered children */
[data-animate="items"]:not([data-animated]) > * { transform: translateY(30px); opacity: 0; }
[data-animate="items"][data-animated] > * {
  transform: translateY(0); opacity: 1;
  transition: transform .8s var(--ease), opacity .8s ease;
}
[data-animate="items"][data-animated] > *:nth-child(1) { transition-delay: 0s; }
[data-animate="items"][data-animated] > *:nth-child(2) { transition-delay: .12s; }
[data-animate="items"][data-animated] > *:nth-child(3) { transition-delay: .24s; }
[data-animate="items"][data-animated] > *:nth-child(4) { transition-delay: .36s; }
[data-animate="items"][data-animated] > *:nth-child(5) { transition-delay: .48s; }
[data-animate="items"][data-animated] > *:nth-child(6) { transition-delay: .60s; }

/* word-by-word headline reveal */
[data-animate="words"] .word { display: inline-block; overflow: hidden; padding-bottom: 0.22em; margin-bottom: -0.22em; }
[data-animate="words"] .word > span { display: inline-block; will-change: transform, filter; }
[data-animate="words"]:not([data-animated]) .word > span { transform: translateY(20px); opacity: 0; filter: blur(5px); }
[data-animate="words"][data-animated] .word > span {
  transform: translateY(0); opacity: 1; filter: blur(0);
  transition: transform .6s var(--ease), opacity .6s var(--ease), filter .6s var(--ease);
  transition-delay: calc(var(--i, 0) * .06s);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .products__title { max-width: 24ch; }
  .footer__inner { grid-template-columns: 1fr 1fr; }
  .footer__contact { grid-column: span 2; }
}
@media (max-width: 860px) {
  :root { --header-h: 64px; }
  .header__nav, .header__mail, .btn--header { display: none; }
  .menu-toggle { display: block; width: 44px; height: 44px; margin-right: -10px; }
  .menu-toggle span { left: 50%; width: 24px; margin-left: -12px; }
  .menu-toggle span:nth-child(1) { top: 16px; }
  .menu-toggle span:nth-child(2) { bottom: 16px; }
  body.menu-open .menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  body.menu-open .menu-toggle span:nth-child(2) { transform: translateY(-6px) rotate(-45deg); }
  .lang__toggle { height: 38px; padding: 0 .8rem; }
  .stats { grid-template-columns: 1fr; gap: 2.5rem; }
  .features__grid { grid-template-columns: 1fr; gap: 3rem; }
  .feature__img { aspect-ratio: 16 / 10; }
  .carousel-nav { display: none; }
  .product-grid { grid-template-columns: 1fr; }
  .company__grid { grid-template-columns: 1fr; }
  .company__card { position: static; width: 70%; margin: 1.5rem 0 0 auto; }
  .company__img { aspect-ratio: 4 / 3; }
}
@media (max-width: 520px) {
  .hero__title { font-size: clamp(2.5rem, 13vw, 3.5rem); }
  .intro__cta { flex-direction: column; align-items: flex-start; }
  .footer__inner { grid-template-columns: 1fr; gap: 2rem; }
  .footer__contact { grid-column: auto; }
}

/* ============================================================
   REDUCED MOTION — disable all of the above, show statically
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  [data-animate] { opacity: 1 !important; }
  [data-animate="img"]::after { display: none !important; }
  [data-animate="items"] > *,
  [data-animate="words"] .word > span { transform: none !important; opacity: 1 !important; filter: none !important; }
  .hero__scroll i::after { display: none; }
}

/* ============================================================
   PRODUCT CARDS AS LINKS
   ============================================================ */
a.product-card { text-decoration: none; color: inherit; }
.product-card__more { margin: auto 1.5rem 1.5rem; font-size: 0.8125rem; font-weight: 600; letter-spacing: .02em; color: var(--bronze); display: inline-flex; align-items: center; gap: .4em; transition: gap .3s var(--ease); }
.product-card:hover .product-card__more { gap: .75em; }
.products--light .product-card__more { color: var(--bronze-dark); }

/* ============================================================
   PRODUCT DETAIL PAGES
   ============================================================ */
.product-hero { padding: calc(var(--header-h) + clamp(2.5rem, 6vw, 5rem)) 0 var(--s-medium); background: var(--cream); }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .5rem; font-size: 0.8125rem; color: rgba(33,33,30,.5); margin-bottom: 2.25rem; }
.breadcrumb a { transition: color .25s; }
.breadcrumb a:hover { color: var(--bronze-dark); }
.breadcrumb span { color: rgba(33,33,30,.3); }
.product-hero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.product-hero__text h1 { font-size: var(--h1); margin: .85rem 0 1.25rem; }
.product-hero .lead { font-size: var(--text-large); color: rgba(33,33,30,.75); max-width: 42ch; margin-bottom: 2rem; }
.product-hero__cta { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.product-hero__media { border-radius: var(--radius); overflow: hidden; aspect-ratio: 4 / 3; background: #f2efe9; }
.product-hero__media img { width: 100%; height: 100%; object-fit: cover; }

.product-detail { padding: var(--s-large) 0; }
.product-detail__grid { display: grid; grid-template-columns: 1.7fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.product-detail__main h2 { font-size: var(--h3); margin: 0 0 1.1rem; }
.product-detail__main h2:not(:first-child) { margin-top: 2.75rem; }
.product-detail__main p { color: rgba(33,33,30,.78); max-width: 62ch; margin-bottom: 1rem; }
.ticks { display: grid; gap: .85rem; }
.ticks li { position: relative; padding-left: 1.9rem; color: rgba(33,33,30,.82); }
.ticks li::before { content: ""; position: absolute; left: 2px; top: .4em; width: 13px; height: 7px; border-left: 2px solid var(--bronze); border-bottom: 2px solid var(--bronze); transform: rotate(-45deg); }
.chips { display: flex; flex-wrap: wrap; gap: .6rem; }
.chip { font-size: 0.8125rem; padding: .5rem .95rem; border: 1px solid #e0dcd3; border-radius: 100px; color: rgba(33,33,30,.75); }
.product-detail__aside { position: sticky; top: calc(var(--header-h) + 1.5rem); display: grid; gap: 1.25rem; }
.spec-card { background: #fff; border: 1px solid #e7e3dc; border-radius: 8px; padding: 1.5rem 1.6rem; }
.spec-card h3 { font-size: .7rem; text-transform: uppercase; letter-spacing: .14em; color: var(--bronze-dark); margin-bottom: 1.1rem; }
.spec-card dl { display: grid; grid-template-columns: auto 1fr; gap: .75rem 1rem; font-size: .9rem; margin: 0; }
.spec-card dt { color: rgba(33,33,30,.5); }
.spec-card dd { margin: 0; color: var(--ink); text-align: right; }
.spec-card dd a { color: var(--bronze-dark); text-decoration: underline; }
.spec-card p { font-size: .9rem; color: rgba(33,33,30,.72); margin: 0; }
.related { padding: var(--s-large) 0; }
.related__head { margin-bottom: var(--s-medium); }
.related__head h2 { font-size: var(--h2); }

@media (max-width: 860px) {
  .product-hero__grid { grid-template-columns: 1fr; }
  .product-hero__media { order: -1; }
  .product-detail__grid { grid-template-columns: 1fr; }
  .product-detail__aside { position: static; }
}

/* company value list */
.company__points { margin: 1.5rem 0 2rem; }
.company__points li { color: rgba(33,33,30,.82); }

/* ============================================================
   INDUSTRIES
   ============================================================ */
.industries { padding: var(--s-large) 0; background: var(--stone); }
.industries__head { max-width: 720px; margin-bottom: var(--s-medium); }
.industries__head h2 { font-size: var(--h2); margin-bottom: 1rem; }
.industries__intro { color: rgba(33,33,30,.7); font-size: var(--text-large); max-width: 58ch; }
.industries__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2.5vw, 1.75rem); }
.ind { background: #fff; border: 1px solid #e3dfd7; border-radius: 8px; padding: 1.85rem 1.85rem 2rem; transition: box-shadow .4s var(--ease), transform .4s var(--ease); }
.ind:hover { box-shadow: 0 18px 44px rgba(33,33,30,.10); transform: translateY(-4px); }
.ind__icon { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border-radius: 50%; background: var(--cream); color: var(--bronze-dark); margin-bottom: 1.15rem; }
.ind__icon svg { width: 24px; height: 24px; }
.ind h3 { font-size: 1.125rem; margin-bottom: .55rem; }
.ind p { font-size: 0.9rem; color: rgba(33,33,30,.72); }

/* ============================================================
   BRANDS (compatible printers marquee)
   ============================================================ */
.brands { padding: var(--s-medium) 0; background: var(--cream); overflow: hidden; }
.brands__label { text-align: center; font-size: 0.72rem; text-transform: uppercase; letter-spacing: .16em; color: rgba(33,33,30,.5); margin: 0 0 2.25rem; }
.brands__marquee { position: relative; width: 100%; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.brands__track { display: flex; align-items: center; gap: clamp(3rem, 7vw, 6rem); width: max-content; animation: brandscroll 36s linear infinite; }
.brands__marquee:hover .brands__track { animation-play-state: paused; }
.brands__track img { height: 28px; width: auto; flex: 0 0 auto; filter: grayscale(1); opacity: .5; transition: opacity .35s, filter .35s; }
.brands__track img:hover { filter: grayscale(0); opacity: 1; }
@keyframes brandscroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

@media (max-width: 860px) {
  .industries__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .brands__track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; gap: 2.5rem 4rem; }
}

/* ---------- intro CTA link ---------- */
.intro__cta-link { font-size: 0.9rem; font-weight: 600; color: var(--bronze-dark); display: inline-flex; align-items: center; gap: .4em; transition: gap .3s var(--ease), color .25s; }
.intro__cta-link:hover { gap: .75em; color: var(--ink); }

/* ---------- features header + numbered cards ---------- */
.features { padding: var(--s-large) 0; }
.features__head { max-width: 720px; margin-bottom: var(--s-medium); }
.features__heading { font-size: var(--h2); margin-bottom: 1rem; }
.features__intro { color: rgba(33,33,30,.7); font-size: var(--text-large); max-width: 52ch; }
.feature { position: relative; transition: transform .45s var(--ease); }
.feature:hover { transform: translateY(-4px); }
.feature__num { position: absolute; top: 14px; left: 14px; z-index: 2; width: 42px; height: 42px;
  border-radius: 50%; background: rgba(33,33,30,.5); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .82rem; font-weight: 600;
  transition: background-color .4s var(--ease); }
.feature:hover .feature__num { background: var(--bronze); }
.feature__title { transition: color .3s var(--ease); }
.feature:hover .feature__title { color: var(--bronze-dark); }

/* ribbons: 4-up grid when the Colour Ribbons card is present */
.product-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .product-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .product-grid--4 { grid-template-columns: 1fr; } }

/* ============================================================
   RIBBONS — expanding accordion (B4 cinematic)
   ============================================================ */
.ribbon-acc { display: flex; gap: 12px; height: 440px; }
.ribbon-acc__item { position: relative; flex: 1; min-width: 0; border-radius: 12px; overflow: hidden;
  text-decoration: none; color: #fff; transition: flex .65s var(--ease); }
.ribbon-acc:hover .ribbon-acc__item { flex: .7; }
.ribbon-acc:hover .ribbon-acc__item:hover { flex: 3.5; }
.ribbon-acc__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 7s linear; }
.ribbon-acc__item:hover img { transform: scale(1.14); }
.ribbon-acc__item::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(16,16,14,.9), rgba(16,16,14,.12) 60%, rgba(16,16,14,.4)); }
.ribbon-acc__num { position: absolute; top: 1.1rem; left: 1.4rem; z-index: 3;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; color: rgba(255,255,255,.7); }
/* fixed-width caption so text never re-wraps while panels resize (no glitch) */
.ribbon-acc__body { position: absolute; left: 0; bottom: 0; z-index: 3; padding: 1.5rem; width: 320px; }
.ribbon-acc__body h3 { font-size: 1.3rem; font-weight: 500; white-space: nowrap; margin: 0; }
.ribbon-acc__body p { font-size: .85rem; color: rgba(255,255,255,.88); margin-top: .4rem;
  max-height: 0; opacity: 0; overflow: hidden; transition: max-height .5s var(--ease), opacity .45s var(--ease) .1s; }
.ribbon-acc__item:hover .ribbon-acc__body p { max-height: 80px; opacity: 1; }
.ribbon-acc__pill { display: inline-flex; align-items: center; gap: .4em; margin-top: 1rem; white-space: nowrap;
  background: var(--bronze); color: #fff; font-size: .72rem; font-weight: 600; letter-spacing: .03em;
  padding: .5rem 1rem; border-radius: 100px; opacity: 0; transform: translateY(8px); transition: .45s var(--ease) .15s; }
.ribbon-acc__item:hover .ribbon-acc__pill { opacity: 1; transform: translateY(0); }

@media (max-width: 900px) {
  .ribbon-acc { flex-direction: column; height: auto; gap: 14px; }
  .ribbon-acc__item { height: 230px; flex: none !important; }
  /* stronger bottom scrim so the description stays legible over the photo */
  .ribbon-acc__item::after { background: linear-gradient(to top, rgba(16,16,14,.97), rgba(16,16,14,.62) 42%, rgba(16,16,14,.18)); }
  .ribbon-acc__body { width: auto; right: 0; padding: 1.4rem 1.45rem; }
  .ribbon-acc__body h3 { font-size: 1.35rem; }
  .ribbon-acc__body p { max-height: none; opacity: 1; font-size: .95rem; line-height: 1.5; margin-top: .5rem; color: rgba(255,255,255,.96); }
  .ribbon-acc__pill { opacity: 1; transform: none; margin-top: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  .ribbon-acc__item, .ribbon-acc__item img { transition: none; }
  .ribbon-acc__item:hover img { transform: none; }
}

/* ============================================================
   PRINTING SERVICE — homepage section
   ============================================================ */
.service { background: var(--forest); color: #fff; padding: var(--s-large) 0; }
.service__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 6vw, 5rem); align-items: center; }
.service .section-tag { color: var(--bronze); }
.service__intro h2 { font-size: var(--h2); margin: 0 0 1.25rem; max-width: 15ch; }
.service__intro > p { color: rgba(255,255,255,.82); font-size: var(--text-large); margin: 0 0 2rem; max-width: 42ch; }
.service__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.75rem; }
.service__step { position: relative; display: flex; gap: 1.25rem; align-items: flex-start; }
.service__step:not(:last-child)::before { content: ""; position: absolute; left: 21px; top: 48px; height: calc(100% + .4rem); width: 1px; background: rgba(255,255,255,.22); }
.service__step-n { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.06); display: flex; align-items: center; justify-content: center; font-weight: 600; position: relative; z-index: 1; }
.service__step h3 { font-size: 1.1rem; margin: .4rem 0 .35rem; }
.service__step p { font-size: .9rem; color: rgba(255,255,255,.72); margin: 0; max-width: 40ch; }

/* PRINTING SERVICE — page "how it works" steps */
.process { padding: var(--s-large) 0; background: var(--cream); }
.process__head { max-width: 640px; margin-bottom: var(--s-medium); }
.process__head h2 { font-size: var(--h2); }
.process__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.process__step { background: #fff; border: 1px solid #e7e3dc; border-radius: 10px; padding: 1.75rem 1.5rem 1.85rem; }
.process__n { display: inline-flex; width: 42px; height: 42px; border-radius: 50%; background: var(--forest); color: #fff; align-items: center; justify-content: center; font-weight: 600; margin-bottom: 1.1rem; }
.process__step h3 { font-size: 1.05rem; margin: 0 0 .5rem; }
.process__step p { font-size: .875rem; color: rgba(33,33,30,.72); margin: 0; }

@media (max-width: 980px) { .process__steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 860px) { .service__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .process__steps { grid-template-columns: 1fr; } }


/* ============================================================
   LABELS — asymmetric bento (Option D), expands in 2D on hover
   ============================================================ */
.label-bento{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;gap:14px;height:760px;
  transition:grid-template-columns .6s var(--ease),grid-template-rows .6s var(--ease);}
.lb1{grid-column:1;grid-row:1/3;} .lb2{grid-column:2;grid-row:1;} .lb3{grid-column:3/5;grid-row:1/3;}
.lb4{grid-column:2;grid-row:2;} .lb5{grid-column:1;grid-row:3;} .lb6{grid-column:2;grid-row:3;}
.lb7{grid-column:3;grid-row:3;} .lb8{grid-column:4;grid-row:3;}
.label-bento:has(.lb1:hover){grid-template-columns:1.85fr 1fr 1fr 1fr;grid-template-rows:1.4fr 1.4fr 1fr;}
.label-bento:has(.lb2:hover){grid-template-columns:1fr 1.85fr 1fr 1fr;grid-template-rows:1.7fr 1fr 1fr;}
.label-bento:has(.lb3:hover){grid-template-columns:1fr 1fr 1.55fr 1.55fr;grid-template-rows:1.5fr 1.5fr 1fr;}
.label-bento:has(.lb4:hover){grid-template-columns:1fr 1.85fr 1fr 1fr;grid-template-rows:1fr 1.7fr 1fr;}
.label-bento:has(.lb5:hover){grid-template-columns:1.85fr 1fr 1fr 1fr;grid-template-rows:1fr 1fr 1.7fr;}
.label-bento:has(.lb6:hover){grid-template-columns:1fr 1.85fr 1fr 1fr;grid-template-rows:1fr 1fr 1.7fr;}
.label-bento:has(.lb7:hover){grid-template-columns:1fr 1fr 1.85fr 1fr;grid-template-rows:1fr 1fr 1.7fr;}
.label-bento:has(.lb8:hover){grid-template-columns:1fr 1fr 1fr 1.85fr;grid-template-rows:1fr 1fr 1.7fr;}
.lb-item{position:relative;border-radius:14px;overflow:hidden;text-decoration:none;color:#fff;min-width:0;min-height:0;}
.lb-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.lb-item:hover img{transform:scale(1.05);}
.lb-item::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,13,11,.92),rgba(13,13,11,.04) 60%,rgba(13,13,11,.32));}
.lb-item__num{position:absolute;top:1rem;left:1.3rem;z-index:2;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;color:rgba(255,255,255,.72);}
.lb-item__more{position:absolute;top:1rem;right:1.2rem;z-index:2;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(-6px);transition:.4s var(--ease);}
.lb-item:hover .lb-item__more{opacity:1;transform:translateY(0);background:var(--bronze);border-color:var(--bronze);}
.lb-item__b{position:absolute;inset:auto 0 0 0;z-index:2;padding:1.2rem 1.4rem;transform:translateZ(0);backface-visibility:hidden;}
.lb-item__b h3{font-size:1.1rem;font-weight:500;white-space:nowrap;}
.lb-item__b p{font-size:.82rem;color:rgba(255,255,255,.88);margin-top:.38rem;max-width:42ch;opacity:.9;transition:opacity .4s var(--ease);}
.lb-item:hover .lb-item__b p{opacity:1;}
.lb-pill{display:inline-block;font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;background:var(--bronze);padding:.28rem .6rem;border-radius:100px;margin-bottom:.55rem;}
.lb3 .lb-item__b h3{font-size:1.5rem;} .lb3 .lb-item__b p, .lb1 .lb-item__b p{opacity:.92;}
@media(max-width:820px){
  .label-bento,.label-bento:has(.lb-item:hover){grid-template-columns:1fr 1fr;grid-auto-rows:226px;grid-template-rows:none;height:auto;}
  .lb-item{grid-column:auto!important;grid-row:auto!important;}
  /* no :hover on touch — reveal the tap affordance + CTA persistently so tiles read as links */
  .lb-item__more{opacity:1;transform:none;}
  .lb-item__b{padding:1.05rem 1.1rem;}
  /* bump tile type up to readable sizes (was 15px head / 12.5px body — too small) */
  .lb-item__b h3{white-space:normal;font-size:1.18rem;line-height:1.2;}
  .lb3 .lb-item__b h3{font-size:1.28rem;}
  .lb-item__b p{max-height:none;opacity:1;font-size:.88rem;line-height:1.5;margin-top:.42rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .lb-pill{font-size:.68rem;margin-bottom:.5rem;}
}
@media(max-width:480px){
  .label-bento{grid-auto-rows:212px;gap:11px;}
  .lb-item__b{padding:.95rem 1rem;}
  .lb-item__b h3{font-size:1.1rem;}
  .lb3 .lb-item__b h3{font-size:1.18rem;}
  .lb-item__b p{font-size:.84rem;}
  .lb-pill{font-size:.63rem;}
  .lb-item__more{width:30px;height:30px;top:.8rem;right:.85rem;}
}

/* labels section — distinct warm-sand background (dark image tiles pop on it) */
.products--labels{background:#f8f3ea;color:var(--ink);--bg:#f8f3ea;}
.products--labels .products__intro{color:rgba(33,33,30,.72);}

/* labels bento — hover glow + "view product" CTA */
.lb-item{transition:box-shadow .45s var(--ease);}
.lb-item:hover{z-index:5;box-shadow:0 0 0 2px rgba(152,140,108,.65),0 12px 44px rgba(152,140,108,.5);}
.lb-item__cta{display:inline-flex;align-items:center;gap:.4em;margin-top:0;max-height:0;line-height:0;font-size:.72rem;font-weight:600;letter-spacing:.03em;color:#fff;background:var(--bronze);padding:0 .95rem;border-radius:100px;opacity:0;overflow:hidden;transform:translateZ(0);transition:opacity .35s var(--ease) .05s,max-height .4s var(--ease),margin-top .4s var(--ease),padding .4s var(--ease);}
.lb-item:hover .lb-item__cta{opacity:1;max-height:2.4rem;line-height:1;margin-top:.85rem;padding:.48rem .95rem;}

/* labels bento — brighten image on hover */
.lb-item img{transition:transform 1.2s var(--ease),filter .5s var(--ease);}
.lb-item::after{transition:background .5s var(--ease);}
.lb-item:hover img{filter:brightness(1.14) saturate(1.04);}
.lb-item:hover::after{background:linear-gradient(to top,rgba(13,13,11,.82),rgba(13,13,11,.02) 62%,rgba(13,13,11,.16));}

/* labels bento — override: neutral lift (no gold) + stronger persistent brightness */
.lb-item:hover{box-shadow:0 22px 55px rgba(33,33,30,.45),0 6px 16px rgba(33,33,30,.22);}
.lb-item:hover img{filter:brightness(1.22) saturate(1.05);}
.lb-item:hover::after{background:linear-gradient(to top,rgba(13,13,11,.72),rgba(13,13,11,0) 62%,rgba(13,13,11,.12));}

/* labels bento — brightness via overlay (stable in Safari; image filter dropped) */
.lb-item:hover img{filter:none;}
.lb-item::after{background:linear-gradient(to top,rgba(13,13,11,.9),rgba(13,13,11,.13) 55%,rgba(13,13,11,.34));}
.lb-item:hover::after{background:linear-gradient(to top,rgba(13,13,11,.7),rgba(13,13,11,0) 62%,rgba(13,13,11,.05));}

/* mobile: stronger scrim + brighter body text so heading/description stay legible over the photo
   (declared after the base ::after overrides above so it wins on touch) */
@media(max-width:820px){
  .lb-item::after{background:linear-gradient(to top,rgba(13,13,11,.96),rgba(13,13,11,.5) 48%,rgba(13,13,11,.16));}
  .lb-item__b p{color:rgba(255,255,255,.96);}
}

/* ============ FAQ (AEO/GEO) ============ */
.faq{padding:7rem 0;background:var(--cream);color:var(--ink);}
.faq__head{max-width:720px;margin:0 auto 2.6rem;text-align:center;}
.faq__head h2{font-size:clamp(1.8rem,4vw,2.7rem);font-weight:500;margin:.4rem 0 .7rem;}
.faq__intro{color:rgba(33,33,30,.7);}
.faq__intro a{color:var(--bronze-dark);text-decoration:underline;text-underline-offset:2px;}
.faq__list{max-width:840px;margin:0 auto;}
.faq__item{border-top:1px solid rgba(33,33,30,.14);}
.faq__item:last-child{border-bottom:1px solid rgba(33,33,30,.14);}
.faq__item summary{list-style:none;cursor:pointer;display:block;padding:1.45rem 2.75rem 1.45rem 0;position:relative;font-size:1.06rem;font-weight:500;color:var(--ink);transition:color .3s var(--ease);}
.faq__item summary::-webkit-details-marker{display:none;}
.faq__item summary::after{content:"";position:absolute;right:.5rem;top:1.7rem;width:11px;height:11px;border-right:2px solid var(--bronze);border-bottom:2px solid var(--bronze);transform:rotate(45deg);transition:transform .35s var(--ease);}
.faq__item[open] summary::after{transform:rotate(-135deg);}
.faq__item summary:hover{color:var(--bronze-dark);}
.faq__item summary:focus-visible{outline:2px solid var(--bronze);outline-offset:3px;border-radius:4px;}
.faq__a{padding:0 2.75rem 1.55rem 0;}
.faq__a p{margin:0;max-width:66ch;line-height:1.68;color:rgba(33,33,30,.74);}

/* product-page FAQ variant (left-aligned, tighter) */
.faq--product{padding:5rem 0;}
.faq--product .faq__head{text-align:left;margin:0 0 1.8rem;max-width:none;}
.faq--product .faq__list{margin-left:0;}

/* language switcher */
.lang-switch{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:30px;padding:0 .55rem;border-radius:100px;border:1px solid currentColor;font-size:.74rem;font-weight:600;letter-spacing:.04em;opacity:.85;transition:opacity .3s var(--ease),background-color .3s var(--ease),color .3s var(--ease);}
.lang-switch:hover{opacity:1;background:var(--bronze);border-color:var(--bronze);color:#fff;}
.header__cta .lang-switch{margin-right:.2rem;}

/* ============ language dropdown ============ */
.lang{position:relative;}
.lang__toggle{display:inline-flex;align-items:center;gap:.35em;height:30px;padding:0 .6rem;border-radius:100px;border:1px solid currentColor;font-size:.74rem;font-weight:600;letter-spacing:.04em;opacity:.9;color:inherit;transition:opacity .3s var(--ease),background-color .3s var(--ease),color .3s var(--ease);}
.lang__toggle:hover{opacity:1;}
.lang__chev{width:9px;height:6px;transition:transform .3s var(--ease);}
.lang:hover .lang__chev,.lang.is-open .lang__chev{transform:rotate(180deg);}
.header--light .lang__toggle{color:#fff;}
.header.is-stuck .lang__toggle{color:var(--ink);}
.lang__menu{position:absolute;top:calc(100% + 8px);right:0;min-width:148px;background:var(--cream);color:var(--ink);border-radius:var(--radius);box-shadow:0 18px 50px rgba(33,33,30,.18);padding:.4rem;margin:0;list-style:none;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .28s var(--ease),transform .28s var(--ease),visibility .28s;z-index:60;}
.lang:hover .lang__menu,.lang.is-open .lang__menu{opacity:1;visibility:visible;transform:translateY(0);}
.lang__menu a{display:block;padding:.55rem .8rem;font-size:.86rem;border-radius:3px;color:var(--ink);transition:background-color .2s,color .2s;}
.lang__menu a:hover{background:var(--stone);color:var(--bronze-dark);}
.lang__menu a[aria-current="true"]{color:var(--bronze-dark);font-weight:600;}

/* ============ printing section — Option C (video beside text, steps row) ============ */
.service__top{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center;}
.service__video{margin:0;position:relative;}
.service__video video{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:14px;background:#0d0d0b;box-shadow:0 30px 70px rgba(0,0,0,.38);}
.service__video figcaption{margin-top:.95rem;font-size:.84rem;letter-spacing:.01em;color:rgba(255,255,255,.6);}
.service__steps--row{grid-template-columns:repeat(3,1fr);margin-top:clamp(2.6rem,5vw,3.6rem);gap:2rem;}
.service__steps--row .service__step:not(:last-child)::before{display:none;}
@media(max-width:860px){.service__top{grid-template-columns:1fr;}.service__steps--row{grid-template-columns:1fr;}}

/* ============ printers section ============ */
.printers{background:var(--white);color:var(--ink);padding:var(--s-large) 0;}
.printers__head{max-width:760px;margin:0 0 clamp(2rem,4vw,3rem);}
.printers__head h2{font-size:var(--h2);font-weight:500;margin:.5rem 0 1rem;}
.printers__intro{color:rgba(33,33,30,.72);font-size:var(--text-large);max-width:64ch;}
.printers__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;}
.pcard{border:1px solid rgba(33,33,30,.12);border-radius:12px;padding:1.7rem 1.5rem;background:var(--cream);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);}
.pcard:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(33,33,30,.1);border-color:rgba(152,140,108,.55);}
.pcard__icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:rgba(152,140,108,.15);color:var(--bronze-dark);margin-bottom:1.15rem;}
.pcard__icon svg{width:24px;height:24px;}
.pcard h3{font-size:1.08rem;font-weight:500;margin:0 0 .45rem;}
.pcard p{font-size:.9rem;color:rgba(33,33,30,.7);margin:0;line-height:1.55;}
.printers__foot{display:flex;align-items:center;justify-content:space-between;gap:1.5rem 2rem;flex-wrap:wrap;margin-top:clamp(2rem,4vw,2.8rem);padding-top:1.9rem;border-top:1px solid rgba(33,33,30,.12);}
.printers__foot p{font-size:1.05rem;font-weight:500;max-width:50ch;margin:0;}
@media(max-width:900px){.printers__grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.printers__grid{grid-template-columns:1fr;}}

/* printers section — brands we carry (chips) */
.printers__brands{margin-top:clamp(2.4rem,5vw,3.2rem);padding-top:2.2rem;border-top:1px solid rgba(33,33,30,.12);}
.printers__brands h3{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--bronze);text-align:center;margin:0 0 1.5rem;}
.brandchips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;max-width:920px;margin:0 auto;}
.brandchip{border:1px solid rgba(33,33,30,.16);border-radius:100px;padding:.52rem 1.05rem;font-size:.9rem;font-weight:500;color:var(--ink);background:#fff;transition:border-color .3s var(--ease),color .3s var(--ease);}
.brandchip:hover{border-color:var(--bronze);color:var(--bronze-dark);}

/* ============ contact page ============ */
.contact-page{padding:var(--s-large) 0;background:var(--cream);}
.contact-page .chead{max-width:760px;margin:0 0 clamp(2rem,4vw,3rem);}
.contact-page .chead h1{font-size:var(--h1);font-weight:500;margin:.4rem 0 .9rem;}
.contact-page .chead__intro{color:rgba(33,33,30,.72);font-size:var(--text-large);max-width:54ch;}
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.cform .cfield{margin-bottom:1rem;}
.cform-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.cfield label{display:block;font-size:.74rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(33,33,30,.6);margin-bottom:.4rem;}
.cfield input,.cfield textarea{width:100%;box-sizing:border-box;border:1px solid rgba(33,33,30,.18);border-radius:9px;padding:.78rem .9rem;font:inherit;font-size:.95rem;background:#fff;color:var(--ink);transition:border-color .25s var(--ease);}
.cfield input:focus,.cfield textarea:focus{outline:none;border-color:var(--bronze);}
.cfield textarea{min-height:140px;resize:vertical;}
.cform .btn{margin-top:.4rem;}
.cform__sent{display:none;margin-top:1rem;color:var(--forest);font-weight:500;}
.contact-side{display:flex;flex-direction:column;gap:1.6rem;}
.cdetails{list-style:none;margin:0;padding:0;}
.cdetail{display:flex;gap:1rem;align-items:flex-start;padding:1.05rem 0;border-bottom:1px solid rgba(33,33,30,.1);}
.cdetail:first-child{padding-top:0;}
.cdetail:last-child{border-bottom:0;}
.cdetail__i{flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:rgba(152,140,108,.15);color:var(--bronze-dark);display:flex;align-items:center;justify-content:center;}
.cdetail__i svg{width:20px;height:20px;}
.cdetail h4{margin:0 0 .15rem;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(33,33,30,.55);}
.cdetail p{margin:0;font-size:1rem;color:var(--ink);}
.cdetail p a{color:var(--ink);border-bottom:1px solid rgba(33,33,30,.25);}
.cdetail p.ph{color:rgba(33,33,30,.45);}
.cmap{border-radius:14px;overflow:hidden;border:1px solid rgba(33,33,30,.12);}
.cmap iframe{display:block;width:100%;height:300px;border:0;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;}.cform-row{grid-template-columns:1fr;}}

/* ============ spare parts section (dark band + cards) ============ */
.parts{background:var(--ink);color:#fff;padding:var(--s-large) 0;}
.parts .section-tag{color:var(--bronze);}
.parts__head{max-width:760px;margin:0 0 clamp(2rem,4vw,3rem);}
.parts__head h2{font-size:var(--h2);font-weight:500;margin:.5rem 0 1rem;max-width:20ch;}
.parts__intro{color:rgba(255,255,255,.75);font-size:var(--text-large);max-width:62ch;}
.parts__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;}
.pcard--dark{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14);}
.pcard--dark:hover{border-color:rgba(152,140,108,.6);box-shadow:0 18px 40px rgba(0,0,0,.4);}
.pcard--dark .pcard__icon{background:rgba(152,140,108,.22);color:#cfc3a0;}
.pcard--dark h3{color:#fff;}
.pcard--dark p{color:rgba(255,255,255,.7);}
.parts__brands{margin-top:clamp(2.2rem,4vw,3rem);padding-top:2rem;border-top:1px solid rgba(255,255,255,.16);text-align:center;}
.parts__brands h3{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--bronze);margin:0 0 1.3rem;}
.brandchips--dark{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;}
.brandchips--dark .brandchip{border-color:rgba(255,255,255,.28);color:#fff;background:transparent;}
.brandchips--dark .brandchip:hover{border-color:var(--bronze);color:#fff;}
@media(max-width:900px){.parts__grid{grid-template-columns:1fr;}}

.cform__err{display:none;margin-top:1rem;color:#b03636;font-weight:500;max-width:60ch;}

.spec-sample{margin-top:1.4rem;width:100%;justify-content:center;}

.cfield label.is-required::after{content:" *";color:var(--bronze-dark);}

/* ============ click-to-load map ============ */
.cmap[data-map]{position:relative;background:var(--stone,#ece6df);min-height:300px;display:flex;align-items:center;justify-content:center;}
.cmap__load{appearance:none;border:1px solid var(--ink);background:transparent;color:var(--ink);font:inherit;font-size:.9rem;font-weight:600;padding:.7rem 1.4rem;border-radius:999px;cursor:pointer;transition:background-color .25s,color .25s;}
.cmap__load:hover{background:var(--ink);color:#fff;}
.cmap.is-loaded{min-height:0;background:none;}

/* ============ legal / privacy page ============ */
.legal{padding:calc(var(--s-large) + 60px) 0 var(--s-large);}
.legal__inner{max-width:760px;}
.legal h1{font-size:var(--h1);font-weight:500;margin:0 0 1.25rem;}
.legal__lead{font-size:var(--text-large);color:rgba(33,33,30,.7);max-width:60ch;margin:0 0 2.5rem;}
.legal h2{font-size:1.25rem;font-weight:600;margin:2.2rem 0 .6rem;}
.legal p{max-width:68ch;line-height:1.7;color:rgba(33,33,30,.82);margin:0 0 1rem;}
.legal__updated{margin-top:2.5rem;font-size:.85rem;color:rgba(33,33,30,.5);font-style:italic;}

/* ============ cookie / privacy notice ============ */
.cookie{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:120;max-width:560px;margin:0 auto;background:var(--ink);color:#fff;border-radius:14px;padding:1.1rem 1.3rem;box-shadow:0 20px 50px rgba(0,0,0,.32);display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.2rem;opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .3s ease;}
.cookie.is-in{opacity:1;transform:none;}
.cookie__txt{flex:1 1 280px;margin:0;font-size:.85rem;line-height:1.55;color:rgba(255,255,255,.82);}
.cookie__actions{display:flex;align-items:center;gap:1.1rem;margin-left:auto;}
.cookie__link{font-size:.82rem;color:rgba(255,255,255,.65);border-bottom:1px solid rgba(255,255,255,.3);white-space:nowrap;}
.cookie__link:hover{color:#fff;}
.cookie__ok{appearance:none;border:0;background:var(--bronze);color:#fff;font:inherit;font-size:.85rem;font-weight:600;padding:.55rem 1.3rem;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background-color .25s;}
.cookie__ok:hover{background:var(--bronze-dark);}
@media(max-width:560px){.cookie{padding:1rem;}.cookie__actions{width:100%;justify-content:space-between;margin-left:0;}}
