:root{--paper:#f5f4f0;--ink:#18202b;--dark:#101820;--teal:#006b65;--rule:#c9cfcb;--gutter:clamp(1.1rem,5vw,5rem);font-family:"Bahnschrift","Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:.25em}a:hover{color:var(--teal)}:focus-visible{outline:3px solid var(--teal);outline-offset:4px}::selection{background:#a6ddd4;color:var(--dark)}[hidden]{display:none!important}
header,footer{padding-inline:var(--gutter)}header{background:var(--paper);border-bottom:1px solid var(--rule)}.mast,nav,footer{display:flex;align-items:center;gap:1.35rem;flex-wrap:wrap}.mast{padding-block:1rem}.brand{font-size:1.25rem;font-weight:750;letter-spacing:.055em;text-decoration:none}.languages{margin-inline-start:auto;display:flex;gap:.75rem;font-size:.85rem}.languages a[aria-current]{color:var(--teal);font-weight:700}nav{padding-block:.65rem;border-top:1px solid var(--rule)}nav a,footer a{text-decoration:none}
.button,button{display:inline-flex;align-items:center;justify-content:center;background:var(--teal);color:white;text-decoration:none;border:0;padding:.65rem 1rem;font:inherit;cursor:pointer}.button:hover,button:hover{background:#004f4b;color:white}
.hero{background:var(--dark);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(1rem,4vw,5rem);padding:clamp(2rem,6vw,6rem) var(--gutter)}.hero :focus-visible{outline-color:#8fe1d3}.hero h1,.intro h1{font-size:clamp(2.5rem,5.6vw,5.6rem);letter-spacing:-.038em;line-height:1.02;margin:0;text-wrap:balance}.hero p{font-size:clamp(1rem,1.5vw,1.24rem);color:#c3d2cf;max-width:42ch;margin:1.2rem 0 1.6rem}.hero figure{margin:0;background:#1d2b31;border:1px solid #4a6568}.hero svg{width:100%;display:block}.hero figcaption{padding:.55rem .85rem;border-top:1px solid #4a6568;color:#ccdad7;font-size:.85rem}
.entry{display:grid;grid-template-columns:repeat(3,1fr);background:#d7e8e2;padding-inline:var(--gutter)}.entry a{font-weight:650;padding:1.25rem 1rem;border-inline-start:1px solid #acc5be}.entry a:last-child{border-inline-end:1px solid #acc5be}
.section,.intro,.filters,main>.ledger,main>#empty{margin-inline:var(--gutter)}.section{padding-block:clamp(1.6rem,4vw,4rem);border-bottom:1px solid var(--rule)}.intro{padding-block:clamp(2rem,5vw,5rem) 1.4rem}.intro .section{margin-inline:0}h2{font-size:clamp(1.65rem,3vw,2.8rem);letter-spacing:-.025em;line-height:1.1;margin:0 0 1.2rem}p{max-width:70ch}.ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}.ledger>*{border-top:1px solid var(--rule);padding:.75rem 0;font-weight:600}.ledger small{font-weight:400;color:var(--teal)}.ledger p{font-weight:400;margin:.3rem 0 0}.filters{display:flex;flex-wrap:wrap;align-items:end;gap:.8rem;margin-bottom:1.5rem}label{display:block;margin-bottom:.25rem}.search{display:flex;max-width:35rem}.search input{flex:1;min-width:0}input,select{color:var(--ink);background:white;border:1px solid #87948d;padding:.65rem;font:inherit}footer{border-top:1px solid var(--rule);padding-block:1.5rem;margin-top:3rem}
@media(max-width:760px){.hero{grid-template-columns:1fr}.entry{grid-template-columns:1fr}.entry a{border-inline:0!important;border-bottom:1px solid #acc5be}.ledger{grid-template-columns:1fr}.mast,nav{gap:.65rem 1rem}.hero figure{max-width:32rem}}
.selection{margin-inline:var(--gutter);font-weight:650}
.workflow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 2rem;padding-inline-start:1.5rem;margin-block:0}
.workflow li{padding-inline-start:.35rem;border-top:1px solid var(--rule);padding-block:.65rem}
.workflow li::marker{color:var(--teal);font-weight:700}
.workflow p,.comparison p{margin:.4rem 0}
.comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 2rem;margin-bottom:1rem}
.comparison>div{border-top:1px solid var(--rule);padding-top:.75rem}
.comparison svg{display:block;width:min(100%,18rem);height:auto}
.comparison h3{margin:.4rem 0}
@media(max-width:760px){.workflow,.comparison{grid-template-columns:1fr}}
.part-diagram{margin:.65rem 0 0;background:#eaf0eb;color:#254c46;padding:.5rem;max-width:19rem}
.part-diagram svg{display:block;width:100%;height:auto}
.part-diagram figcaption{font-size:.78rem;font-weight:400}
.intro>.part-diagram{margin-top:1rem}
.part-diagram img{display:block;width:100%;height:auto}.part-diagram figcaption{padding-top:.3rem}
.ledger .item-purpose{font-weight:400;margin:.75rem 0}
.catalog-results,#result-count{margin-inline:var(--gutter)}
.languages{flex-wrap:wrap;align-items:center}.languages a{white-space:nowrap}
.languages a{position:relative;display:inline-grid;place-items:center;isolation:isolate;min-width:0;min-height:0;padding:.08rem .15rem;overflow:hidden;border-radius:.1rem;text-decoration:none}
.languages a span{color:#000;font-weight:700;line-height:1.15}
.languages a[aria-current]{outline:2px solid var(--teal);outline-offset:2px}

.mast>.languages{order:3;margin-inline-start:0;margin-inline-end:0}
.mast>.button{margin-inline-start:auto}
.mast>.brand{margin-inline-end:auto}
.language-menu{position:relative}
.language-menu summary{position:relative;isolation:isolate;display:flex;align-items:center;gap:.4rem;cursor:pointer;list-style:none;padding:.15rem .28rem;color:#000;font-weight:700;border-radius:.1rem}
.language-menu summary::-webkit-details-marker{display:none}
.language-menu summary::after{content:"";width:.35rem;height:.35rem;border-inline-end:1px solid;border-block-end:1px solid;transform:rotate(45deg);margin-block-start:-.15rem}
.language-options{position:absolute;inset-inline-end:0;top:calc(100% + .4rem);z-index:5;inline-size:max-content;max-inline-size:calc(100vw - 2 * var(--gutter));max-block-size:65vh;overflow:auto;display:grid;grid-template-columns:1fr;gap:.3rem;padding:.65rem;background:var(--paper);border:1px solid var(--rule)}

.language-options a{display:flex;gap:.55rem;justify-content:flex-start;padding:.28rem .45rem;overflow:visible;white-space:normal}.language-options span{min-width:3ch;flex-shrink:0}

#catalog-pagination{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.5rem var(--gutter) 0}
#catalog-pagination button{min-inline-size:2.5rem;padding:.4rem .55rem;color:var(--ink);background:transparent;border:1px solid var(--rule)}
#catalog-pagination button[aria-current="page"]{background:var(--teal);border-color:var(--teal);color:#fff}

/* Workshop visual system */
:root{--paper:#17191b;--ink:#f4f0e8;--dark:#111315;--teal:#ffb72a;--rule:#4a4946;color-scheme:dark}
header,footer{background:var(--dark)}
header .mast{padding-block:.8rem}
.brand{display:inline-flex;align-items:center;gap:.65rem;white-space:nowrap}
.brand img{inline-size:1.65rem;block-size:1.9rem}
.button,button,#catalog-pagination button[aria-current="page"]{color:#17130b;background:var(--teal)}
.button:hover,button:hover{background:#ffd075;color:#17130b}
.button.secondary{color:var(--ink);background:#18181880;border:1px solid #b3aaa0}
.button.secondary:hover{background:#34312d;color:var(--ink)}
.language-menu summary,.languages a span{color:var(--ink)}
.language-options{background:#222426}
.hero{display:flex;align-items:center;min-height:clamp(28rem,48vw,46rem);position:relative;background:#151719 url('/workshop-wall.jpg') center right/cover no-repeat}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#080909ed 0%,#080909bb 29%,#08090944 59%,transparent 85%)}
.hero-copy{position:relative;max-inline-size:min(100%,40rem)}
.hero h1{max-inline-size:12ch;font-size:clamp(2.55rem,5vw,5.25rem);text-wrap:initial}
.hero p{color:#f4f0e8;margin:1.1rem 0 0}
.hero-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-block-start:1.35rem}
.workshop-strip{display:grid;grid-template-columns:1.15fr 1fr .85fr;gap:.6rem;padding:.8rem var(--gutter);background:#111315}
.workshop-strip .part-diagram{margin:0;padding:0;max-width:none;background:#26282a}
.workshop-strip img{aspect-ratio:2/1;object-fit:cover}
.entry{background:#272723}
.entry a{border-color:#555044}
.part-diagram{background:#282a2b;color:var(--ink)}
.technical-figure{max-inline-size:25rem;margin:0 0 1.5rem;background:#1d2b31}
.technical-figure svg{display:block;width:100%}
.technical-figure figcaption{padding:.45rem .6rem}
input,select{background:#242629;color:var(--ink);border-color:#797670}
::selection{background:#ffcf73;color:#17130b}
@media(max-width:760px){.hero{background-position:65% center;min-height:31rem}.hero::before{background:#090a0ab0}.workshop-strip{gap:.3rem}.workshop-strip img{aspect-ratio:1}}

/* Reference-led homepage */
:root{--teal:#efa413;--dark:#141618}
.showcase-header{display:flex;align-items:center;gap:clamp(.75rem,2vw,2rem);padding-inline:var(--gutter);min-height:3.65rem;position:relative;z-index:2;background:#141618ed}
.showcase-header:has(+.showcase-home){margin-bottom:-3.65rem}
.showcase-header .mast{display:contents}
.showcase-header .brand{color:#fff;font-size:clamp(.95rem,1.8vw,1.7rem);letter-spacing:0}
.showcase-header .brand img{width:.85em;height:1.2em}
.showcase-header nav{border:0;padding:0;gap:clamp(.65rem,2vw,2rem);font-size:clamp(.85rem,1.15vw,1.12rem)}
.showcase-header nav a{padding-block:.95rem;white-space:nowrap}
.showcase-header .languages{margin:0}
.showcase-home .hero{min-height:max(31rem,41.7vw);padding-block:6.5rem 3rem;background-position:center}
.showcase-home .hero::before{background:linear-gradient(90deg,#090a0acf, #090a0a66 32%, transparent 58%)}
.showcase-home .hero h1{max-inline-size:16ch;font-size:clamp(2.5rem,4.25vw,4.65rem)}
.showcase-home .hero-actions{margin-top:clamp(1rem,2.4vw,2.7rem);gap:1rem}
.showcase-home .hero-actions .button{border-radius:.45rem;padding:.7rem 1.2rem}
.showcase-home .hero-actions .secondary{border-color:#fff;background:#14161850}
.showcase-home .hero p{margin-top:clamp(1rem,2.7vw,2.8rem);max-width:46ch}
.showcase-home .hero p::before{content:"";display:block;width:2.8rem;height:.2rem;background:var(--teal);margin-bottom:.55rem}
.showcase-home .workshop-strip{grid-template-columns:683fr 453fr 319fr;gap:1vw;padding:2.1vw 3.1vw;background:#141618}
.showcase-home .workshop-strip svg{display:block;width:100%;height:auto;aspect-ratio:auto}
.showcase-home+footer{margin-top:0}
@media(max-width:850px){.showcase-header{flex-wrap:wrap;gap:0 .8rem;padding-block:.55rem}.showcase-header:has(+.showcase-home){margin-bottom:0}.showcase-header nav{order:4;flex-basis:100%;gap:.15rem .9rem}.showcase-header nav a{padding-block:.25rem}.showcase-home .hero{padding-block:3rem;background-position:60% center}.showcase-home .hero::before{background:linear-gradient(90deg,#090a0ad9,#090a0a45)}}


.showcase-home .showcase-links{margin-inline:3.1vw;padding-block:.2rem 1.35rem;gap:.6rem clamp(.85rem,2.4vw,2.3rem);border:0}
.showcase-links .showcase-catalog{display:inline-flex;align-items:center;gap:.7rem;font-weight:700;font-size:1.15rem}
.showcase-catalog::before{content:"";inline-size:2.8rem;block-size:.2rem;background:var(--teal)}
.showcase-home+footer{padding-inline:3.1vw}
.showcase-home .workshop-strip a{display:block;min-inline-size:0}
@media(max-width:560px){.showcase-home .workshop-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.showcase-home .workshop-strip a:first-child{grid-column:1/-1}}
.showcase-header .brand{margin-inline-end:0;flex:none}
.showcase-header nav{margin-inline-start:auto;justify-content:flex-end;flex-wrap:nowrap;gap:clamp(.6rem,2vw,2.6rem)}
.showcase-header .languages{flex:none}
.showcase-home .hero{color:#fff;min-height:41.7vw;padding-block:clamp(5rem,10.5vw,10.4rem) 2rem;align-items:flex-start;background-position:center 45%}
.showcase-home .hero h1,.showcase-home .hero p{color:#fff}
.showcase-home .hero h1{font-size:clamp(2.2rem,4.22vw,4.65rem);max-inline-size:15ch}
.showcase-home .hero p{margin-top:1.55rem}
.showcase-home>.hero-actions{margin:0 3.1vw 1.15rem}
@media(max-width:1050px){.showcase-header nav{flex-wrap:wrap;gap:.15rem .85rem}.showcase-header nav a{padding-block:.35rem}}
@media(max-width:850px){.showcase-header nav{justify-content:flex-end}.showcase-header .languages{margin-inline-start:auto}.showcase-home .hero{min-height:29rem;padding-block:3.5rem 2rem;background-position:60% center}}

.showcase-header{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;gap:clamp(.45rem,1.7vw,1.6rem);min-block-size:3.65rem}
.showcase-header .brand{grid-column:1;grid-row:1;margin:0;font-size:clamp(1.05rem,2vw,1.85rem);color:#ffc34b}
.showcase-header nav{grid-column:2;grid-row:1;margin:0;min-inline-size:0;display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:clamp(.65rem,1.6vw,1.6rem);overflow-x:auto;scrollbar-width:thin}
.showcase-header nav a{flex:none;padding-block:.75rem}
.showcase-header nav a:first-child{margin-inline-start:auto}
.showcase-header .languages{grid-column:3;grid-row:1;margin:0;align-self:center}
.showcase-header .language-menu summary{font-size:.78rem;padding:.15rem .2rem;gap:.3rem}
@media(max-width:850px){.showcase-header{padding-block:0}.showcase-header nav{font-size:.84rem}}


#quote-form{display:grid;gap:.5rem;max-inline-size:42rem}
#quote-form label{margin-block-start:.65rem}
#quote-form textarea{font:inherit;background:#242629;color:var(--ink);border:1px solid #797670;padding:.65rem;resize:vertical;max-inline-size:100%}
#quote-form input{min-inline-size:0;max-inline-size:100%}
#quote-form button{justify-self:start;margin-top:.7rem}
#quote-file-help{font-size:.9rem;margin:.2rem 0}
#quote-form #quote-selection{margin:0;padding:.7rem;background:#292b2b}

.privacy-document {
  max-inline-size: 72ch;
  margin-inline: var(--gutter);
  padding-block-start: clamp(2rem, 5vw, 4.5rem);
  overflow-wrap: anywhere;
}

.privacy-document h1 {
  margin: 0 0 1.5rem;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.12;
  letter-spacing: -.025em;
}

.privacy-document p {
  max-inline-size: none;
  margin: 0 0 1rem;
}

.privacy-document #cookies {
  border-block: 1px solid var(--rule);
  margin-block: 1.75rem;
  padding-block: 1.5rem;
  scroll-margin-block-start: 1.5rem;
}

.privacy-document h2 {
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  margin-block-end: .75rem;
}

.privacy-document #cookies p:last-child {
  margin-block-end: 0;
}
