@font-face { font-family:'Rubik'; src:url('/assets/fonts/artisans/rubik-regular.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Rubik'; src:url('/assets/fonts/artisans/rubik-medium.ttf') format('truetype'); font-style:normal; font-weight:500; font-display:swap; }
@font-face { font-family:'Rubik'; src:url('/assets/fonts/artisans/rubik-semibold.ttf') format('truetype'); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:'Rubik'; src:url('/assets/fonts/artisans/rubik-bold.ttf') format('truetype'); font-style:normal; font-weight:700; font-display:swap; }
:root { --artisan-ink:#17232a; --artisan-carbon:#10242c; --artisan-paper:#e8eeeb; --artisan-sand:#b9c9c5; --artisan-line:rgba(23,35,42,.24); --artisan-metal:#81959b; --artisan-orange:#2d7182; }
body.theme-artisans { margin:0; color:var(--artisan-ink); background:var(--artisan-paper); font-family:'Avenir Next','Helvetica Neue',Arial,sans-serif; }
body.theme-artisans h1,body.theme-artisans h2,body.theme-artisans h3 { font-family:'Rubik','Avenir Next','Helvetica Neue',Arial,sans-serif; font-weight:500; letter-spacing:-.055em; }
.artisans-site { overflow:hidden; }
.artisans-header { position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:28px; width:min(1240px,calc(100% - 56px)); margin:0 auto; padding:78px 0 25px; border-bottom:1px solid var(--artisan-line); }
.artisans-wordmark { display:inline-flex; flex-direction:column; color:var(--artisan-ink); font-size:11px; letter-spacing:.17em; line-height:1.05; text-decoration:none; }
.artisans-wordmark strong { margin-top:3px; font-size:24px; letter-spacing:.08em; font-weight:700; }.artisans-wordmark span { font-size:9px; }
.artisans-header nav { display:flex; gap:28px; margin-left:auto; }.artisans-header nav a,.artisans-footer a { color:inherit; font-size:12px; text-decoration:none; }.artisans-header nav a:hover,.artisans-footer a:hover { color:var(--artisan-orange); }
.artisans-header-cta,.artisan-button { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-height:45px; padding:0 20px; border:1px solid var(--artisan-ink); color:var(--artisan-ink); background:transparent; font:700 11px Arial,sans-serif; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; text-decoration:none; transition:background .25s ease,color .25s ease,transform .25s ease; }
.artisans-header-cta:hover,.artisan-button:hover { color:var(--artisan-paper); background:var(--artisan-ink); transform:translateY(-2px); }.artisan-button-solid { border-color:var(--artisan-orange); color:#fff; background:var(--artisan-orange); }.artisan-button-solid:hover { border-color:#205665; background:#205665; }.artisan-button-light { border-color:var(--artisan-paper); color:var(--artisan-paper); }.artisan-button-light:hover { color:var(--artisan-carbon); background:var(--artisan-paper); }
.artisan-overline { margin:0 0 22px; color:var(--artisan-orange); font:700 11px Arial,sans-serif; letter-spacing:.17em; text-transform:uppercase; }
.artisan-hero { display:grid; grid-template-columns:1.15fr .85fr; min-height:680px; background:var(--artisan-carbon); color:var(--artisan-paper); }.artisan-hero-image { position:relative; min-height:680px; order:2; }.artisan-hero-image img,.artisan-making-image img,.artisan-story-image img { display:block; width:100%; height:100%; object-fit:cover; }.artisan-hero-image img { filter:grayscale(.15) contrast(1.05); }.artisan-hero-image span,.artisan-making-image figcaption,.artisan-story-image span { position:absolute; right:25px; bottom:24px; color:var(--artisan-paper); font:10px Arial,sans-serif; letter-spacing:.13em; text-transform:uppercase; }.artisan-hero-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(45px,8vw,120px); }.artisan-hero-copy h1 { max-width:700px; margin:0; font-size:clamp(4.8rem,9vw,9.5rem); line-height:.86; }.artisan-hero-copy > p:not(.artisan-overline) { max-width:430px; margin:34px 0 0; color:#d2c9bc; font-size:18px; line-height:1.55; }.artisan-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:40px; }.artisan-hero .artisan-button:not(.artisan-button-solid) { border-color:rgba(232,225,214,.5); color:var(--artisan-paper); }.artisan-hero .artisan-button:not(.artisan-button-solid):hover { color:var(--artisan-carbon); background:var(--artisan-paper); }
.artisan-intro { padding:clamp(90px,12vw,170px) max(28px,calc((100% - 1240px)/2)); }.artisan-intro-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:100px; align-items:end; }.artisan-intro h2,.artisan-making h2,.artisan-process h2,.artisan-projects h2,.artisan-story h2 { margin:0; font-size:clamp(4rem,7vw,8rem); line-height:.88; }.artisan-intro-grid > div { padding-bottom:8px; }.artisan-intro-grid p,.artisan-making-copy > p:not(.artisan-overline),.artisan-story-copy > p:not(.artisan-overline):not(.artisan-signature) { max-width:420px; color:#625d56; font-size:17px; line-height:1.65; }.artisan-text-link { display:inline-flex; gap:16px; margin-top:25px; color:var(--artisan-orange); font:700 11px Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; }.artisan-text-link span { transition:transform .2s ease; }.artisan-text-link:hover span { transform:translateX(4px); }
.artisan-making { display:grid; grid-template-columns:.8fr 1.2fr; min-height:680px; color:var(--artisan-paper); background:var(--artisan-carbon); }.artisan-making-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(50px,8vw,120px); }.artisan-making-copy > p:not(.artisan-overline) { color:#d1c7b9; }.artisan-making-image { position:relative; min-height:680px; margin:0; order:2; }.artisan-making-image img { filter:sepia(.12) contrast(1.08); }.material-list { display:grid; gap:0; margin-top:45px; border-top:1px solid rgba(232,225,214,.25); }.material-list span { padding:17px 0; border-bottom:1px solid rgba(232,225,214,.25); color:#d8d0c5; font-size:14px; }.material-list b { display:inline-block; width:40px; color:var(--artisan-orange); font:11px Arial,sans-serif; }
.artisan-process { padding:clamp(90px,11vw,150px) max(28px,calc((100% - 1240px)/2)); }.process-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; }.process-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:100px; border-top:1px solid var(--artisan-line); }.process-steps article { min-height:210px; padding:24px 28px 0 0; border-right:1px solid var(--artisan-line); }.process-steps article:not(:first-child) { padding-left:25px; }.process-steps article:last-child { border-right:0; }.process-steps span,.project-card-meta > span { color:var(--artisan-orange); font:700 11px Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }.process-steps h3 { margin:55px 0 13px; font-size:32px; }.process-steps p { max-width:210px; margin:0; color:#6c665e; font-size:14px; line-height:1.5; }
.artisan-projects { padding:clamp(90px,10vw,140px) max(28px,calc((100% - 1240px)/2)); background:#ddd4c7; }.section-top { display:flex; align-items:end; justify-content:space-between; gap:30px; }.project-preview-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; margin-top:75px; }.project-preview { position:relative; min-height:330px; overflow:hidden; color:#fff; text-decoration:none; background:var(--artisan-carbon); }.project-preview-wide { grid-row:span 2; min-height:680px; }.project-preview img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease,filter .4s ease; }.project-preview:after { position:absolute; inset:42% 0 0; content:''; background:linear-gradient(transparent,rgba(20,19,17,.82)); }.project-preview:hover img { transform:scale(1.03); filter:contrast(1.08); }.project-preview div { position:absolute; z-index:1; right:25px; bottom:25px; left:25px; }.project-preview span { font:10px Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }.project-preview h3 { margin:9px 0 0; font-size:36px; }
.artisan-story { display:grid; grid-template-columns:1fr 1fr; background:var(--artisan-sand); }.artisan-story-image { position:relative; min-height:620px; }.artisan-story-image img { filter:grayscale(.35) sepia(.15); }.artisan-story-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(45px,8vw,120px); }.artisan-story-copy h2 { font-size:clamp(4rem,7vw,7rem); }.artisan-story-copy > p:not(.artisan-overline):not(.artisan-signature) { color:#5e5952; }.artisan-signature { margin-top:38px; color:var(--artisan-ink); font:700 12px Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; }.artisan-signature small { display:block; margin-top:8px; color:#70695f; font-weight:400; }
.artisan-contact { display:grid; grid-template-columns:1fr 1.2fr .7fr; gap:35px; align-items:end; padding:90px max(28px,calc((100% - 1240px)/2)); color:var(--artisan-paper); background:var(--artisan-carbon); }.artisan-contact h2 { margin:0; font-size:clamp(4.4rem,8vw,8.5rem); line-height:.84; }.artisan-contact .artisan-button { margin-top:35px; }.artisan-contact > p:last-child { margin:0; color:#cfc5b6; font-size:14px; line-height:1.7; }
.artisans-footer { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:38px max(28px,calc((100% - 1240px)/2)); color:var(--artisan-paper); background:#1d1d1b; }.artisans-footer .artisans-wordmark { color:var(--artisan-paper); }.artisans-footer p { margin:0 auto 0 0; color:#aaa195; font-size:12px; }
.artisan-modal { position:fixed; z-index:100; inset:0; display:none; place-items:center; padding:20px; }.artisan-modal.is-open { display:grid; }.artisan-modal-backdrop { position:absolute; inset:0; background:rgba(20,19,17,.76); backdrop-filter:blur(8px); }.artisan-modal-card { position:relative; width:min(620px,100%); max-height:calc(100vh - 40px); overflow:auto; padding:42px; color:var(--artisan-ink); background:var(--artisan-paper); box-shadow:0 25px 80px rgba(0,0,0,.35); }.artisan-modal-card h2 { margin:0; font-size:clamp(3rem,6vw,5rem); line-height:.9; }.artisan-modal-card > p:not(.artisan-overline):not(.artisan-success) { color:#6d665d; font-size:14px; line-height:1.5; }.artisan-modal-close { position:absolute; top:13px; right:17px; border:0; color:#706960; background:none; font-size:30px; cursor:pointer; }.artisan-form { display:grid; gap:14px; margin-top:25px; }.artisan-form label { display:grid; gap:7px; color:#655f57; font:10px Arial,sans-serif; letter-spacing:.09em; text-transform:uppercase; }.artisan-form input,.artisan-form select,.artisan-form textarea { width:100%; box-sizing:border-box; padding:12px; border:1px solid var(--artisan-line); color:var(--artisan-ink); background:#f5f0e8; font:15px Arial,sans-serif; }.artisan-form textarea { resize:vertical; }.artisan-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.artisan-success { color:var(--artisan-orange); font-weight:700; }
.projects-intro { padding:clamp(110px,14vw,190px) max(28px,calc((100% - 1240px)/2)) 80px; }.projects-intro h1 { margin:0; font-size:clamp(5rem,10vw,11rem); line-height:.82; }.projects-intro > p:last-child { max-width:390px; margin:32px 0 0; color:#655f57; font-size:18px; line-height:1.5; }.projects-filter { display:flex; flex-wrap:wrap; gap:10px; padding:0 max(28px,calc((100% - 1240px)/2)) 45px; }.projects-filter button { padding:11px 15px; border:1px solid var(--artisan-line); color:var(--artisan-ink); background:transparent; font:11px Arial,sans-serif; cursor:pointer; }.projects-filter button.is-active,.projects-filter button:hover { color:var(--artisan-paper); background:var(--artisan-ink); }.projects-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:45px 18px; padding:0 max(28px,calc((100% - 1240px)/2)) 130px; }.project-card { display:grid; grid-template-columns:1fr 1fr; min-height:350px; border-top:1px solid var(--artisan-line); }.project-card-featured,.project-card-wide { grid-column:span 2; grid-template-columns:1.45fr .55fr; }.project-card img { width:100%; height:100%; min-height:350px; object-fit:cover; }.project-card-meta { display:flex; flex-direction:column; justify-content:center; padding:30px; }.project-card-meta h2 { margin:16px 0 12px; font-size:clamp(2.5rem,4vw,4.3rem); line-height:.9; }.project-card-meta p { max-width:260px; color:#6c665e; font-size:14px; line-height:1.55; }.project-card-meta a { margin-top:25px; color:var(--artisan-orange); font:700 11px Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; }.project-card-meta a span { margin-left:8px; }.project-card.is-hidden { display:none; }
@media (max-width:760px) { .artisans-header { width:calc(100% - 28px); padding:76px 0 18px; }.artisans-header nav { display:none; }.artisans-header-cta { min-height:40px; padding:0 13px; font-size:10px; }.artisan-hero,.artisan-making,.artisan-story { grid-template-columns:1fr; }.artisan-hero-image { min-height:430px; order:0; }.artisan-hero-copy { padding:72px 14px 82px; }.artisan-hero-copy h1 { font-size:clamp(4rem,17vw,7rem); }.artisan-intro,.artisan-process,.artisan-projects { padding-right:14px; padding-left:14px; }.artisan-intro-grid,.process-heading { grid-template-columns:1fr; display:grid; gap:36px; }.artisan-intro h2,.artisan-making h2,.artisan-process h2,.artisan-projects h2,.artisan-story h2 { font-size:clamp(3.8rem,16vw,6rem); }.artisan-making-copy { padding:78px 14px; }.artisan-making-image,.artisan-story-image { min-height:420px; }.process-steps { grid-template-columns:1fr 1fr; margin-top:60px; }.process-steps article { min-height:190px; }.process-steps article:nth-child(3) { border-top:1px solid var(--artisan-line); }.artisan-projects .section-top { align-items:start; flex-direction:column; }.project-preview-grid { grid-template-columns:1fr; margin-top:48px; }.project-preview-wide { grid-row:auto; min-height:480px; }.project-preview { min-height:350px; }.artisan-story-copy { padding:78px 14px; }.artisan-contact { grid-template-columns:1fr; padding:78px 14px; }.artisans-footer { align-items:flex-start; flex-direction:column; padding:40px 14px 80px; }.artisans-footer p { margin:0; }.artisan-modal-card { padding:35px 24px 28px; }.artisan-form-grid { grid-template-columns:1fr; }.projects-intro { padding:105px 14px 70px; }.projects-filter { padding:0 14px 35px; }.projects-grid { grid-template-columns:1fr; gap:35px; padding:0 14px 90px; }.project-card,.project-card-featured,.project-card-wide { grid-column:auto; grid-template-columns:1fr; }.project-card img { min-height:300px; }.project-card-meta { padding:25px 0; } }
@media (prefers-reduced-motion:reduce) { .artisan-button,.project-preview img { transition:none; } }

/* Officina Forma type system: technical grotesk for metadata, human serif for the craft story. */
body.theme-artisans .artisan-button,
body.theme-artisans .artisans-header-cta,
body.theme-artisans .artisan-overline,
body.theme-artisans .artisan-text-link,
body.theme-artisans .process-steps span,
body.theme-artisans .project-card-meta > span,
body.theme-artisans .project-preview span,
body.theme-artisans .artisan-form label { font-family:'Avenir Next','Helvetica Neue',Arial,sans-serif; }

/* Mineral palette: cool slate, chalk, sage and petrol blue. */
body.theme-artisans .artisan-hero-copy > p:not(.artisan-overline),
body.theme-artisans .artisan-making-copy > p:not(.artisan-overline) { color:#c7d5d3; }
body.theme-artisans .artisan-intro-grid p,
body.theme-artisans .artisan-story-copy > p:not(.artisan-overline):not(.artisan-signature),
body.theme-artisans .process-steps p,
body.theme-artisans .project-card-meta p,
body.theme-artisans .projects-intro > p:last-child { color:#52636a; }
body.theme-artisans .artisan-projects { background:#cbd8d4; }
body.theme-artisans .artisan-story { background:#b9c9c5; }
body.theme-artisans .artisans-footer { background:#0b1a21; }
body.theme-artisans .artisans-footer p { color:#a8bab8; }
body.theme-artisans .artisan-form input,
body.theme-artisans .artisan-form select,
body.theme-artisans .artisan-form textarea { background:#f4f7f4; }
body.theme-artisans .artisan-hero-image img,
body.theme-artisans .artisan-making-image img,
body.theme-artisans .artisan-story-image img { filter:saturate(.72) contrast(1.05); }
