@font-face{font-family:Manrope;src:url('assets/fonts/manrope-400-latin.61ce790eab6a.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-500-latin.fbffb2ca2c9b.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-600-latin.c7276665153a.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-700-latin.9cc15b306047.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-800-latin.3a607d302fb3.woff2') format('woff2');font-weight:800;font-display:swap}
:root{--paper:#f5f3ed;--white:#fffefa;--ink:#282625;--muted:#6e6b66;--wine:#e30613;--wine-dark:#b80510;--line:#dedbd3;--rose:#f9d9dc;--font:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{touch-action:manipulation}button{color:inherit}a{color:inherit;text-decoration:none}p,h1,h2,h3,figure{margin:0}h1,h2,h3{line-height:1.15}img{display:block;max-width:100%}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button{border:0}::selection{background:var(--wine);color:white}:focus-visible{outline:3px solid #e30613;outline-offset:5px}button:disabled{cursor:default}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.container{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip-link{position:fixed;top:-100px;left:20px;background:var(--wine);color:white;padding:14px 24px;z-index:100}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;z-index:20;background:rgba(245,243,237,.96);backdrop-filter:blur(16px);border-bottom:1px solid transparent;transition:border-color .25s}.site-header.scrolled{border-color:var(--line)}.header-inner{height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:inline-flex;flex-shrink:0}.brand img{width:111px;height:auto;}.navigation{display:flex;gap:30px;margin-left:auto;margin-right:24px;align-items:center}.nav-link{font-size:12px;font-weight:600;position:relative;padding:12px 0;white-space:nowrap}.nav-link:after{content:'';position:absolute;bottom:5px;left:0;width:0;height:1px;background:var(--wine);transition:width .2s}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-link.active{color:var(--wine)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--wine);color:var(--white);padding:19px 24px;font-size:12px;font-weight:600;line-height:1.4;min-height:56px;transition:background .2s,transform .2s}.button svg{width:19px;height:19px;transition:transform .2s}.button:hover{background:var(--wine-dark)}.button:hover svg{transform:translate(2px,-2px)}.button-small{font-size:11px;min-height:43px;padding:13px 19px;gap:24px}.button-small svg{width:16px;height:16px}.menu-toggle{display:none;background:none;width:44px;height:44px;padding:10px}.menu-toggle span{display:block;height:1px;width:23px;background:var(--ink);margin:6px 0;transition:transform .2s}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;line-height:1.5;display:flex;align-items:center;gap:9px}.hero{width:min(1440px,calc(100% - 112px));display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:56px;padding-top:31px;padding-bottom:55px}.hero-copy{padding:32px 0 9px;display:flex;flex-direction:column;align-items:flex-start}.hero h1{font-size:clamp(64px,6.2vw,92px);letter-spacing:-5.5px;line-height:1.055;font-weight:800}.hero h1 span{color:var(--wine)}.hero-description{font-size:14px;line-height:1.9;color:var(--muted);margin-top:27px}.hero-actions{display:flex;align-items:center;gap:31px;margin-top:30px}.text-link{display:inline-flex;align-items:center;gap:15px;background:none;padding:0;font-size:12px;font-weight:700;line-height:1.5;position:relative}.text-link svg{width:18px;height:18px;transition:transform .2s}.text-link:hover{color:var(--wine)}.text-link:hover svg{transform:translate(3px,-2px)}.hero-visual{display:block;width:100%;min-width:0;height:clamp(640px,50vw,780px);padding:0;position:relative;background:#c3c0b8;overflow:hidden;cursor:zoom-in}.hero-visual picture{display:block;width:100%;height:100%}.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center}.section{padding-block:105px}.section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.section-top .eyebrow{color:var(--wine)}.section-note{color:var(--muted);font-size:10px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:45px}h2{font-size:clamp(34px,3.3vw,48px);font-weight:600;letter-spacing:-2px;line-height:1.18}.section-heading>p{max-width:370px;font-size:13px;color:var(--muted);line-height:1.85;padding-bottom:3px}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:flex;align-items:center;gap:19px;cursor:pointer;font-size:17px;font-weight:600;padding:25px 0;line-height:1.4}summary::-webkit-details-marker{display:none}.plus{width:17px;height:17px;position:relative;margin-left:auto;flex-shrink:0}.plus:before,.plus:after{position:absolute;content:'';background:currentColor;transition:transform .2s}.plus:before{width:13px;height:1px;top:8px;left:2px}.plus:after{width:1px;height:13px;left:8px;top:2px}details[open] summary{color:var(--wine);padding-bottom:12px}details[open] .plus:after{transform:rotate(90deg)}.site-footer{padding:38px 0 20px}.footer-top{display:flex;align-items:center;gap:35px;padding-bottom:30px}.footer-top .brand img{width:93px}.footer-top>p{font-size:10px;color:var(--muted)}.footer-top>.text-link{margin-left:auto;font-size:10px}.up-arrow{transform:rotate(-90deg)}.text-link:hover .up-arrow{transform:translateY(-3px) rotate(-90deg)}.footer-bottom{border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:9px}.footer-separator{padding:0 12px}.footer-legal{background:none;padding:0;font-size:9px}.footer-legal:hover{color:var(--wine)}
dialog{border:none;padding:45px;background:var(--paper);color:var(--ink);max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);overscroll-behavior:contain}dialog::backdrop{background:#201817a6;backdrop-filter:blur(5px)}.dialog-close{position:absolute;top:16px;right:16px;width:36px;height:36px;background:#e6e1d8;display:grid;place-items:center;border-radius:50%;z-index:2}.dialog-close:hover{background:var(--wine);color:white}.dialog-close svg{height:18px;width:18px}.inquiry-dialog{width:620px}.inquiry-dialog .eyebrow,.company-dialog .eyebrow{color:var(--wine);margin-bottom:17px}.inquiry-dialog h2{font-size:41px}.dialog-intro{font-size:12px;color:var(--muted);margin-top:17px;margin-bottom:24px}form{display:grid;gap:17px}form label{display:grid;gap:6px;font-size:10px;font-weight:700}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}input,select,textarea{width:100%;min-width:0;border:1px solid #cdc7bd;background:var(--white);border-radius:0;padding:12px;color:var(--ink);font-size:12px;font-weight:400}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--wine);outline-offset:1px}.form-note{font-size:10px;color:var(--muted);line-height:1.7}.form-status{padding:15px;background:#e8e4db;font-size:12px}.form-status p{margin-bottom:12px}.form-status a{text-decoration:underline}.form-status .text-link{font-size:11px}.form-status textarea{margin-top:14px}.gallery-dialog{padding:14px;background:var(--paper);width:auto;max-width:calc(100vw - 48px)}.gallery-dialog img{max-height:calc(100dvh - 145px);width:auto;object-fit:contain}.gallery-dialog>p{font-size:11px;padding:11px 8px 0}.company-dialog{width:550px}.company-dialog h2{font-size:32px}.company-dialog dl{margin:25px 0 0;font-size:12px}.company-dialog dl>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}.company-dialog dt{color:var(--muted)}.company-dialog dd{margin:0;text-align:right}.reveal{opacity:1;transform:none}.reveal.awaiting-reveal{opacity:0;transform:translateY(18px)}.reveal.is-visible{transition:opacity .65s ease,transform .65s ease;opacity:1;transform:none}.hero-copy{animation:enter .7s both}.hero-visual{animation:enter .85s .1s both}@keyframes enter{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}

@media(min-width:1600px){.hero h1{font-size:92px}.hero-description{font-size:15px}.hero-copy{padding-top:40px}}
@media(max-width:1200px){.container{width:calc(100% - 80px)}.header-inner{gap:22px}.navigation{gap:22px;margin-right:8px}.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px}.hero h1{font-size:clamp(60px,6.65vw,82px);letter-spacing:-4.5px}.hero-visual{height:620px}.hero-copy{padding-top:28px}.hero-actions{gap:21px}.hero-actions .button{padding:17px 19px;gap:17px;font-size:11px}.hero-actions .text-link{font-size:11px;gap:8px}.hero-description{font-size:12px}.section-heading{gap:45px}.section-heading>p{max-width:330px;font-size:12px}}
@media(max-width:980px){.container{width:calc(100% - 56px)}.header-inner{height:86px;gap:18px}.brand img{width:93px}.navigation{gap:19px}.nav-link{font-size:10px}.header-cta{padding:12px;gap:12px;font-size:10px}.header-cta svg{width:14px}.hero{gap:25px;padding-top:22px;padding-bottom:37px}.hero h1{font-size:66px;letter-spacing:-4px}.hero-copy{padding-top:26px}.hero-visual{height:545px}.hero-description{margin-top:24px;font-size:12px}.desktop-break{display:none}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px;margin-top:25px}.hero-actions .button{min-height:50px}.section{padding-block:78px}h2{font-size:37px}.section-heading{gap:35px}.section-heading>p{max-width:290px}summary{font-size:14px;gap:12px;padding-block:24px}.footer-bottom{font-size:8px}}
@media(max-width:760px){html{scroll-padding-top:90px}.container{width:calc(100% - 40px)}.header-inner{height:78px;gap:15px}.brand img{width:91px}.header-cta{margin-left:auto;font-size:10px;padding:11px 14px;min-height:40px}.menu-toggle{display:block;flex-shrink:0;margin-right:-9px}.navigation{position:absolute;left:0;right:0;top:78px;display:none;background:var(--paper);padding:12px 20px 24px;box-shadow:0 15px 20px #28262512;border-top:1px solid var(--line);margin:0;gap:0}.navigation.is-open{display:flex;flex-direction:column;align-items:stretch}.nav-link{font-size:15px;padding:15px 0;border-bottom:1px solid var(--line)}.nav-link:after{display:none}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero{grid-template-columns:1fr;gap:32px;padding-top:14px;padding-bottom:29px}.hero-copy{padding-top:22px}.hero h1{font-size:clamp(56px,11.4vw,80px);letter-spacing:-3.7px;line-height:1.06}.hero-description{font-size:13px;max-width:370px;line-height:1.8;margin-top:23px}.hero-actions{flex-direction:row;align-items:center;gap:24px;margin-top:25px}.hero-actions .button{font-size:10px;padding:17px 18px;gap:17px}.hero-actions .text-link{font-size:10px;gap:8px}.hero-visual{height:480px}.hero-photo{object-position:50% 47%}.section{padding-block:65px}.section-top{margin-bottom:24px}.section-note{display:none}.eyebrow{font-size:9px;letter-spacing:1.4px}.section-heading{display:block;margin-bottom:30px}h2{font-size:34px;letter-spacing:-1.6px;line-height:1.2}.section-heading>p{font-size:12px;max-width:430px;margin-top:21px}summary{font-size:16px;padding-block:22px;gap:17px}.footer-top{gap:25px;flex-wrap:wrap;padding-bottom:25px}.footer-top .brand img{width:84px}.footer-top>p{font-size:9px;max-width:130px}.footer-top>.text-link{font-size:9px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:8px;font-size:9px;padding-top:20px}.footer-legal{margin-top:4px}.site-footer{padding-top:29px}.inquiry-dialog,.company-dialog{padding:37px 24px 26px}.inquiry-dialog h2{font-size:34px}.dialog-intro{font-size:11px}.form-row{grid-template-columns:1fr;gap:17px}dialog{max-height:calc(100dvh - 28px)}.gallery-dialog{max-width:calc(100vw - 24px);padding:8px}.gallery-dialog>p{font-size:10px}.company-dialog h2{font-size:28px}.company-dialog dl{font-size:11px}.company-dialog dl>div{gap:15px}}
@media(max-width:380px){.container{width:calc(100% - 32px)}.hero h1{font-size:53px;letter-spacing:-3.2px}.hero-actions{gap:18px}.hero-actions .button{padding:15px;gap:10px;font-size:9px}.hero-actions .text-link{font-size:9px}.header-cta{font-size:9px;padding:11px;gap:10px}.header-inner{gap:12px}.hero-visual{height:420px}.footer-top{gap:16px}summary{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.awaiting-reveal{opacity:1;transform:none}}

/* Desktop hero: a viewport-tall photograph reaching the right edge. */
@media (min-width: 981px) {
  .hero {
    width: 100%;
    margin-inline: 0;
    padding: 0 0 0 max(56px, calc((100% - 1440px) / 2));
  }
  .hero-visual { height: 100vh; }
}
@media (min-width: 981px) and (max-width: 1200px) {
  .hero { padding-left: 40px; }
}

/* Telephone availability in the main navigation. */
.header-phone { display: flex; align-items: center; gap: 11px; padding-left: 26px; border-left: 1px solid var(--line); white-space: nowrap; }
.header-phone > svg { width: 20px; height: 20px; }
.header-phone-copy { display: flex; flex-direction: column; gap: 3px; font-size: 13px; font-weight: 700; line-height: 1.5; }
.header-phone:hover > svg, .header-phone:hover .header-phone-number { color: var(--wine); }
.header-phone-label { color: var(--muted); font-size: 10px; font-weight: 500; }
.phone-availability { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 600; }
.availability-dot { width: 7px; height: 7px; border-radius: 50%; background: #8a8780; flex-shrink: 0; }
.phone-availability[data-state="online"] { color: #28734b; }
.phone-availability[data-state="online"] .availability-dot { background: #328456; box-shadow: 0 0 0 3px #32845612; animation: availability-pulse 1.8s ease-in-out infinite; }
.phone-availability[data-state="offline"] .availability-dot { background: transparent; border: 1.5px solid currentColor; }
@keyframes availability-pulse {
  0%, 100% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 3px #32845620; }
  50% { opacity: .45; transform: scale(.85); box-shadow: 0 0 0 6px #32845608; }
}
@media (max-width: 1200px) {
  .header-phone { padding-left: 18px; gap: 8px; }
  .header-phone-copy { font-size: 12px; }
}
@media (max-width: 1200px) {
  .header-cta { margin-left: auto; }
  .menu-toggle { display: block; flex-shrink: 0; margin-right: -9px; }
  .navigation { position: absolute; left: 0; right: 0; top: 100px; max-height: calc(100dvh - 100px); overflow-y: auto; display: none; background: var(--paper); padding: 12px 28px 24px; box-shadow: 0 15px 20px #28262512; border-top: 1px solid var(--line); margin: 0; gap: 0; }
  .navigation.is-open { display: flex; flex-direction: column; align-items: stretch; }
  .nav-link { font-size: 15px; padding: 15px 0; border-bottom: 1px solid var(--line); }
  .nav-link:after { display: none; }
  .header-phone { border: 0; padding: 20px 0 0; gap: 12px; }
  .header-phone-copy { font-size: 16px; gap: 5px; }
  .phone-availability { font-size: 12px; }
  .menu-toggle[aria-expanded=true] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded=true] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
}
@media (max-width: 980px) {
  .navigation { top: 86px; max-height: calc(100dvh - 86px); }
}
@media (max-width: 760px) {
  .navigation { top: 78px; max-height: calc(100dvh - 78px); padding-inline: 20px; }
}

/* Manufacturing: one heading, one product list and one enquiry action. */
:root { --manufacturing-inset: clamp(48px, 6vw, 80px); }
.manufacturing { padding-top: var(--manufacturing-inset); }
.manufacturing-heading { margin-bottom: 58px; }
.manufacturing-heading h2 { font-size: clamp(42px, 4.5vw, 62px); letter-spacing: -2.6px; }
.manufacturing-heading h2 span { color: var(--wine); }
.manufacturing-heading > p { margin-top: 22px; max-width: 740px; font-size: 17px; line-height: 1.8; color: var(--muted); }
.manufacturing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.manufacturing-photo { min-height: 410px; aspect-ratio: 4 / 3; position: relative; overflow: hidden; background: #e9e7e0; }
.manufacturing-photo picture { position: absolute; inset: 0; opacity: 0; transition: opacity .25s ease; pointer-events: none; }
.manufacturing-photo picture.is-active { opacity: 1; }
.manufacturing-photo img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.manufacturing-photo .portrait-photo img { object-fit: contain; }
.manufacturing-products { min-width: 0; }
.product-list { border-top: 1px solid var(--line); }
.product-list summary { padding: 27px 0; font-size: 23px; line-height: 1.4; gap: 24px; }
.product-list summary:hover, .product-list summary:focus-visible { color: var(--wine); }
.product-list details[open] summary { padding-bottom: 16px; }
.detail-content { padding: 0 32px 28px 0; }
.detail-content p { max-width: 470px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.manufacturing-inquiry { margin-top: 32px; font-size: 14px; }
@media (max-width: 1100px) {
  .manufacturing-grid { gap: 42px; }
  .product-list summary { font-size: 20px; }
  .manufacturing-heading > p { font-size: 16px; }
}
@media (min-width: 981px) {
  :root { --manufacturing-inset: clamp(32px, 4dvh, 48px); }
  .manufacturing { padding-block: var(--manufacturing-inset); }
  .manufacturing-heading { margin-bottom: 24px; }
  .manufacturing-heading > p { margin-top: 14px; font-size: 16px; line-height: 1.7; }
  .manufacturing-photo { min-height: 0; height: clamp(280px, calc(100dvh - 420px), 440px); aspect-ratio: auto; }
  .product-list summary { padding-block: clamp(10px, 1.6dvh, 18px); font-size: clamp(18px, 2.4dvh, 22px); }
  .manufacturing-inquiry { margin-top: 20px; }
}
@media (min-width: 981px) and (max-height: 760px) {
  :root { --manufacturing-inset: 24px; }
  .manufacturing-heading { margin-bottom: 20px; }
}
@media (max-width: 760px) {
  .manufacturing-heading { margin-bottom: 34px; }
  .manufacturing-heading h2 { font-size: clamp(34px, 8.7vw, 46px); letter-spacing: -1.8px; }
  .manufacturing-heading > p { margin-top: 18px; font-size: 15px; }
  .manufacturing-grid { grid-template-columns: 1fr; gap: 32px; }
  .manufacturing-photo { min-height: 0; aspect-ratio: 4 / 3; }
  .product-list summary { padding-block: 24px; font-size: 20px; }
  .detail-content { padding-right: 20px; padding-bottom: 24px; }
  .detail-content p { font-size: 14px; }
  .manufacturing-inquiry { margin-top: 28px; }
}
@media (max-width: 380px) {
  .product-list summary { font-size: 18px; gap: 16px; }
}

/* A circuit-inspired route from the brief to installation. */
.process-section {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--wine); color: var(--white);
}
.process-section::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: radial-gradient(#fffefa1a .7px, transparent .7px);
  background-size: 24px 24px;
  mask-image: linear-gradient(110deg, transparent 12%, #000 100%);
}
.process-circuit {
  position: absolute; top: -20px; right: -30px; z-index: -1;
  width: min(42vw, 600px); height: 280px; color: #fffefa1c;
  stroke-width: 1; pointer-events: none;
}
.process-section .section { padding-block: 88px 94px; }
.process-heading h2 { font-size: clamp(48px, 5vw, 68px); letter-spacing: -3px; line-height: 1.12; }
.process-list {
  --marker-size: 96px;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none; padding: 0; margin: 70px 0 0;
}
.process-list li { position: relative; min-width: 0; padding-right: 30px; }
.process-list li:last-child { padding-right: 0; }
.step-marker {
  position: relative; display: grid; place-items: center;
  width: var(--marker-size); height: var(--marker-size);
  border: 1px solid #fffefa; border-radius: 8px;
  background: var(--white); color: var(--wine);
  box-shadow: 0 12px 24px #7a000014;
}
.step-marker > svg { width: 43px; height: 43px; stroke-width: 1.45; }
.step-number {
  position: absolute; top: -11px; left: -1px; display: grid; place-items: center;
  width: 32px; height: 25px; border: 1px solid #fffefa80; border-radius: 3px;
  background: var(--wine); color: var(--white); font-size: 11px; font-weight: 700;
  letter-spacing: 1px; font-variant-numeric: tabular-nums;
}
.step-connection {
  position: absolute; left: var(--marker-size); top: calc(var(--marker-size) / 2 - 16px);
  width: calc(100% - var(--marker-size)); height: 32px;
  color: #fffefa85; stroke-width: 1.3;
}
.step-connection path { vector-effect: non-scaling-stroke; }
.process-list h3 { margin-top: 30px; font-size: 25px; line-height: 1.3; font-weight: 700; letter-spacing: -.7px; }
.process-list p { margin-top: 14px; font-size: 15px; line-height: 1.8; max-width: 224px; color: #fff4ed; }
@media (min-width: 901px) and (max-width: 1100px) {
  .process-list { --marker-size: 82px; }
  .process-list li { padding-right: 22px; }
  .process-list h3 { font-size: 21px; }
  .process-list p { font-size: 14px; }
  .step-marker > svg { width: 38px; height: 38px; }
}
@media (max-width: 900px) {
  .process-section .section { padding-block: 60px 66px; }
  .process-heading h2 { font-size: 48px; letter-spacing: -2px; max-width: 580px; }
  .process-circuit { width: 300px; height: 180px; opacity: .6; }
  .process-list { --marker-size: 76px; grid-template-columns: 1fr; margin-top: 50px; }
  .process-list li { display: grid; grid-template-columns: var(--marker-size) 1fr; gap: 28px; padding: 0 0 38px; }
  .process-list li:last-child { padding-bottom: 0; }
  .process-list li:not(:last-child)::before {
    content: ''; position: absolute; left: calc(var(--marker-size) / 2); top: var(--marker-size);
    width: 1px; height: calc(100% - var(--marker-size)); background: #fffefa85;
  }
  .step-connection { display: none; }
  .step-marker > svg { width: 35px; height: 35px; }
  .process-list h3 { font-size: 25px; margin-top: 0; }
  .process-list p { max-width: 470px; margin-top: 9px; }
}
@media (max-width: 460px) {
  .process-heading h2 { font-size: clamp(32px, 9.7vw, 42px); }
  .process-circuit { display: none; }
  .process-list { --marker-size: 62px; margin-top: 42px; }
  .process-list li { gap: 21px; padding-bottom: 34px; }
  .step-marker { border-radius: 5px; }
  .step-marker > svg { width: 31px; height: 31px; }
  .step-number { width: 28px; height: 22px; font-size: 10px; top: -10px; }
  .process-list h3 { font-size: 22px; }
  .process-list p { font-size: 14px; line-height: 1.7; }
}

/* Client references supplied by AB Basic Company. */
.clients-section {
  --reference-spacing: 72px;
  padding: var(--reference-spacing) 0 max(0px, calc(var(--reference-spacing) - var(--manufacturing-inset)));
  border-top: 1px solid var(--line);
}
.clients-heading { text-align: center; }
.clients-heading h2 { font-size: clamp(48px, 5vw, 68px); letter-spacing: -3px; line-height: 1.12; }
.clients-heading h2 span { color: var(--wine); }
.clients-heading > p { max-width: 760px; margin: 26px auto 0; color: var(--muted); font-size: 20px; line-height: 1.7; }
.client-logos {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none; padding: 0; margin: 42px 0 0;
  border-block: 1px solid var(--line);
}
.client-logo { min-width: 0; min-height: 150px; display: flex; align-items: center; justify-content: center; padding: 18px; position: relative; }
.client-logo + .client-logo::before { content: ''; position: absolute; left: 0; top: 30px; bottom: 30px; width: 1px; background: var(--line); }
.client-logo:nth-child(n + 5) { border-top: 1px solid var(--line); }
.client-logo:nth-child(4n + 1)::before { display: none; }
.client-logo img { width: 100%; height: auto; object-fit: contain; mix-blend-mode: multiply; }
.client-volvo img { max-width: 174px; }
.client-tesco img { max-width: 145px; }
.client-kaufland img { max-width: 180px; }
.client-lidl img { width: 72px; height: 72px; }
.client-moebelix img { max-width: 160px; }
.client-zsr img { max-width: 165px; }
.client-airport img { max-width: 190px; }
.client-hagard img { max-width: 205px; }
.client-ussteel img { max-width: 200px; }
.client-billa img { max-width: 138px; padding: 11px 14px; background: #e30613; }
.client-magna img { max-width: 175px; }
.client-hospital { gap: 12px; }
.client-hospital img { width: 65px; height: 65px; flex-shrink: 0; }
.client-hospital p { font-size: 13px; font-weight: 700; line-height: 1.5; }
.client-hospital p span { display: block; margin-top: 3px; font-size: 10px; font-weight: 400; color: var(--muted); }
@media (min-width: 761px) and (max-width: 1100px) {
  .client-logo { padding: 24px; }
  .client-hospital { flex-direction: column; gap: 8px; text-align: center; }
  .client-hospital img { width: 54px; height: 54px; }
}
@media (max-width: 760px) {
  .clients-section { --reference-spacing: 52px; }
  .clients-heading h2 { font-size: clamp(40px, 8vw, 52px); letter-spacing: -1.8px; }
  .clients-heading > p { font-size: 16px; margin-top: 20px; }
  .client-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 30px; }
  .client-logo { min-height: 116px; padding: 22px; }
  .client-logo:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .client-logo:nth-child(odd)::before { display: none; }
  .client-hospital { flex-direction: column; gap: 8px; text-align: center; }
  .client-hospital img { width: 50px; height: 50px; }
  .client-lidl img { width: 62px; height: 62px; }
}

/* Shop: readable hours and directions across the full content panel. */
.shop-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: #eae7df;
  margin-bottom: 105px;
}
.shop-heading { grid-column: 1 / -1; padding-top: clamp(64px, 8vw, 112px); padding-bottom: 48px; background: var(--paper); text-align: center; }
.shop-heading h2 { font-size: clamp(44px, 4.5vw, 62px); letter-spacing: -2.6px; line-height: 1.16; }
.shop-heading h2 span { color: var(--wine); }
.shop-assortment {
  min-width: 0; display: flex; flex-direction: column; gap: 16px;
  padding: 22px; background: #e1ddd4;
}
.assortment-grid {
  flex: 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(3, minmax(145px, 1fr)); gap: 10px;
}
.assortment-item {
  min-width: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 18px;
  padding: 14px 12px; background: var(--white);
  border: 1px solid transparent; text-align: center;
}
.assortment-item img {
  width: 100%; height: 150px; object-fit: contain; mix-blend-mode: multiply;
}
.assortment-item > span { font-size: 13px; font-weight: 700; line-height: 1.4; }
.assortment-item-wide {
  grid-column: 1 / -1; flex-direction: row; justify-content: flex-start;
  padding: 14px 24px; gap: 25px; text-align: left;
}
.assortment-item-wide img { width: 150px; height: 150px; }
.assortment-item-wide > span { font-size: 22px; letter-spacing: -.5px; }
.shop-copy {
  min-width: 0;
  display: flex; flex-direction: column; justify-content: center;
  padding: 36px 40px;
}
.shop-copy > p {
  color: #625e58; font-size: 16px; line-height: 1.7;
  max-width: none;
}
.shop-hours { margin-top: 28px; }
.shop-hours h3 {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  font-size: 14px; font-weight: 700; color: var(--wine);
}
.shop-hours h3 svg { width: 20px; height: 20px; }
.shop-status {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  width: fit-content; max-width: 100%; margin: 18px auto 6px; padding: 9px 16px;
  border-radius: 999px; background: #ded9d0; color: #625e58;
  font-size: 14px; font-weight: 700; line-height: 1.5; text-align: center;
}
.shop-status[hidden] { display: none; }
.shop-status[data-state="open"] { background: #e0ebdf; color: #28734b; }
.shop-status[data-state="open"] .availability-dot { background: #328456; animation: availability-pulse 1.8s ease-in-out infinite; }
.shop-status[data-state="closed"] .availability-dot { background: transparent; border: 1.5px solid currentColor; }
.opening-hours { margin: 12px 0 14px; }
.shop-hours-note { margin-bottom: 25px; color: #625e58; font-size: 14px; line-height: 1.65; text-align: center; }
.opening-hours > div {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px; padding: 13px 0; border-bottom: 1px solid #ccc6ba;
}
.opening-hours dt { color: var(--ink); font-size: 14px; font-weight: 500; }
.opening-hours dd {
  margin: 0; color: var(--ink); font-size: 19px; font-weight: 800;
  line-height: 1.5; font-variant-numeric: tabular-nums; text-align: right;
}
.opening-hours .hours-times { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.hours-times > span { white-space: nowrap; }
.opening-hours .hours-separator { color: #978b80; font-weight: 400; }
.shop-directions {
  align-self: center; width: fit-content; max-width: 100%; min-height: 48px; padding: 13px 24px;
  justify-content: center; gap: 10px; font-size: 14px; font-weight: 700;
}
.shop-directions .directions-pin { width: 21px; height: 21px; }
.shop-directions:hover .directions-pin { transform: none; }
@media (min-width: 761px) and (max-width: 1200px) {
  .assortment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(125px, 1fr)); }
  .assortment-item img { height: 90px; }
  .assortment-item-wide img { height: 100px; width: 100px; }
  .assortment-item-wide > span { font-size: 20px; }
  .assortment-item-wide { gap: 15px; padding-inline: 18px; }
  .shop-copy { padding: 32px; }
  .shop-copy > p { font-size: 15px; }
  .opening-hours > .weekday-hours { flex-direction: column; gap: 6px; }
  .opening-hours .hours-times { justify-content: flex-start; }
  .opening-hours dd { font-size: 18px; }
}
@media (min-width: 761px) and (max-width: 980px) {
  .shop-section { grid-template-columns: .85fr 1.15fr; margin-bottom: 78px; }
  .shop-assortment { padding: 14px; }
  .assortment-item > span { font-size: 12px; }
  .assortment-item-wide { gap: 10px; padding-inline: 12px; }
  .assortment-item-wide img { width: 85px; }
  .assortment-item-wide > span { font-size: 17px; }
  .shop-copy { padding: 28px; }
}
@media (max-width: 760px) {
  .shop-section { grid-template-columns: 1fr; margin-bottom: 65px; }
  .shop-heading { padding-bottom: 32px; }
  .shop-heading h2 { font-size: clamp(32px, 6.8vw, 46px); letter-spacing: -1.4px; }
  .shop-assortment { padding: 18px; }
  .shop-copy { padding: 30px 25px; }
  .shop-copy > p { font-size: 15px; }
  .opening-hours > .weekday-hours { flex-direction: column; gap: 7px; }
  .opening-hours .hours-times { justify-content: flex-start; gap: 8px; }
  .opening-hours dd { font-size: 19px; }
}
@media (max-width: 380px) {
  .shop-copy { padding: 26px 20px; }
  .shop-copy > p { font-size: 14px; }
  .opening-hours dt { font-size: 13px; }
  .opening-hours dd { font-size: 17px; }
  .opening-hours .hours-times { column-gap: 7px; }
}
@media (max-width: 460px) {
  .shop-assortment { padding: 15px; gap: 14px; }
  .assortment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(135px, 1fr)); }
  .assortment-item { padding: 12px 10px; }
  .assortment-item img { height: 90px; }
  .assortment-item > span { font-size: 12px; }
  .assortment-item-wide { gap: 16px; padding-inline: 16px; }
  .assortment-item-wide img { width: 100px; height: 100px; }
  .assortment-item-wide > span { font-size: 18px; }
}

/* Store address and personal contact beside the assortment. */
.shop-contacts {
  display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
  margin-top: 24px; padding-top: 22px; border-top: 1px solid #ccc6ba;
}
.shop-contacts > a {
  display: flex; align-items: center; gap: 11px;
  font-size: 15px; font-weight: 600; line-height: 1.65;
}
.shop-contacts svg { width: 23px; height: 23px; flex-shrink: 0; color: var(--wine); }
.shop-contacts strong { display: block; font-size: 17px; font-weight: 800; white-space: nowrap; }
.shop-contacts > a:hover { color: var(--wine); }
@media (max-width: 1200px) {
  .shop-contacts { grid-template-columns: 1fr; gap: 14px; }
}

/* Direct contact links beside the retained headline. */
.contact-section {
  background: #e9e2db;
  border-top: 1px solid #e1d8cf;
  padding: 74px 0;
}
.contact-layout {
  display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  align-items: center; gap: 72px;
}
.contact-layout h2 { font-size: 62px; letter-spacing: -3.2px; line-height: 1.16; }
.contact-layout h2 > span { color: var(--wine); }
.contact-links { display: flex; flex-direction: column; gap: 8px; }
.contact-links > a {
  display: flex; align-items: center; gap: 20px; min-height: 68px;
  width: fit-content; max-width: 100%;
  font-size: 26px; font-weight: 600; letter-spacing: -.6px; line-height: 1.5;
  transition: color .2s;
}
.contact-links > a:hover { color: var(--wine); }
.contact-icon {
  display: grid; place-items: center; flex-shrink: 0;
  width: 48px; height: 48px; border: 1px solid #cfc5bd; border-radius: 50%;
  color: var(--wine); transition: background .2s, border-color .2s, color .2s;
}
.contact-icon svg { width: 22px; height: 22px; }
.contact-links > a:hover .contact-icon { color: white; background: var(--wine); border-color: var(--wine); }
.contact-links > .contact-map { font-size: 19px; letter-spacing: 0; }
@media (max-width: 1200px) {
  .contact-layout { gap: 45px; }
  .contact-layout h2 { font-size: 50px; letter-spacing: -2.5px; }
  .contact-links > a { font-size: 22px; gap: 16px; }
  .contact-links > .contact-map { font-size: 17px; }
}
@media (min-width: 761px) and (max-width: 980px) {
  .contact-layout { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 30px; }
  .contact-layout h2 { font-size: 39px; letter-spacing: -2px; }
  .contact-links > a { font-size: 19px; gap: 12px; }
  .contact-icon { width: 42px; height: 42px; }
  .contact-links > .contact-map { font-size: 16px; }
}
@media (max-width: 760px) {
  .contact-section { padding: 48px 0; }
  .contact-layout { grid-template-columns: 1fr; gap: 28px; }
  .contact-layout h2 { font-size: 44px; letter-spacing: -2.1px; }
  .contact-links { gap: 4px; }
  .contact-links > a { min-height: 66px; font-size: 22px; }
  .contact-links > .contact-map { font-size: 17px; }
}
@media (max-width: 380px) {
  .contact-layout h2 { font-size: 37px; letter-spacing: -1.8px; }
  .contact-links > a { font-size: 20px; gap: 14px; }
}

.product-list h3 { font: inherit; line-height: inherit; }
.error-page { min-height: 100svh; padding-block: 64px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 24px; }
.error-page .brand { margin-bottom: 24px; }
.error-page .eyebrow { color: var(--wine); }
.error-page h1 { font-size: clamp(42px, 6vw, 76px); letter-spacing: -2px; }
.error-page > p:not(.eyebrow) { color: var(--muted); max-width: 480px; }
