/*
Theme Name: Kiln
Theme URI: https://example.com/kiln
Author: Studio
Description: A quiet, minimal portfolio theme for makers — ceramic sculpture, tableware, products and furniture. Image-led, sans-serif only, built around a custom Work post type.
Version: 3.2.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kiln
Tags: portfolio, minimal, custom-menu, featured-images, translation-ready
*/

:root{
  --paper:#FBFBFB;
  --paper-2:#F2F2F2;
  --ink:#2B2825;
  --ink-60:#6B6B6B;
  --ink-30:#A8A8A8;
  --rule:#E5E5E5;
  --accent:#6E8577;
  --sans:"Instrument Sans","Geist","Helvetica Neue",Helvetica,Arial,sans-serif;
  --display:"Jost","Geist",-apple-system,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --thumb:4/3;
  --canvas:calc(780px + var(--pad) * 2);
  --pad:clamp(40px,8vw,112px);
  --gap:clamp(16px,2.2vw,32px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:#FBFBFB}
body{
  margin:0;background:#FBFBFB;background-color:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.55;
  font-weight:400;letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--accent)}
h1,h2,h3,h4{font-weight:450;letter-spacing:-.02em;line-height:1.15;margin:0}
p{text-wrap:pretty}
::selection{background:var(--accent);color:var(--paper)}

.wrap{padding-inline:var(--pad)}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-60)}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link:focus{position:fixed;top:12px;left:12px;width:auto;height:auto;clip:auto;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:100}

/* ---------- header ---------- */
.site-header{
  position:relative;z-index:50;
  display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  padding:var(--pad) var(--pad) 0;
  background:var(--paper);
}
.site-title{font-family:var(--display);font-size:clamp(28px,3vw,38px);font-weight:300;letter-spacing:.005em;line-height:1.05;text-transform:lowercase;white-space:nowrap;flex:none}
.site-title small{display:block;font-weight:400;color:var(--ink-60);letter-spacing:.02em;font-size:13px;margin-top:6px}
.site-nav{min-width:0;flex:1 1 auto}
.site-nav ul{display:flex;gap:clamp(14px,2vw,32px);list-style:none;margin:0;padding:0;flex-wrap:wrap;justify-content:flex-end}
.site-nav a{font-size:clamp(15px,1.35vw,18px);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--ink-60)}
.site-nav a:hover{color:var(--accent)}
.site-title a:hover{color:var(--accent)}
.site-nav .current-menu-item>a{color:var(--ink)}
.nav-toggle{display:none;background:none;border:0;font:inherit;font-size:18px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-60);cursor:pointer;padding:0}
.nav-toggle:hover{color:var(--ink)}
.nav-close,.nav-foot{display:none}

/* ---------- hero ---------- */
.hero{position:relative;margin-bottom:clamp(48px,9vw,120px)}
.hero-media img{width:100%;height:min(78vh,860px);object-fit:cover}
.hero-caption{display:flex;justify-content:space-between;gap:20px;padding:12px var(--pad) 0}
.intro{
  padding:clamp(48px,10vw,140px) var(--pad) clamp(40px,7vw,96px);
  max-width:34ch;font-size:clamp(20px,2.6vw,32px);line-height:1.35;letter-spacing:-.02em;font-weight:400;
}

/* ---------- home filmstrip ---------- */
.strip{
  display:flex;flex-direction:column;justify-content:flex-end;
  min-height:calc(100vh - 260px);
  padding-bottom:clamp(32px,6vw,80px);
}
.strip-track{
  display:flex;gap:var(--gap);
  padding:0 var(--pad);
  overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;scroll-behavior:smooth;
  scrollbar-width:none;
}
.strip-track::-webkit-scrollbar{display:none}
.strip-track:focus-visible{outline:1px solid var(--ink);outline-offset:8px}
.strip-item{
  margin:0;flex:0 0 auto;
  width:clamp(180px,17vw,240px);
  scroll-snap-align:start;
}
.strip-num{
  display:block;
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ink-30);
  padding-bottom:8px;
}
.strip-item img,.strip-empty{
  display:block;width:100%;aspect-ratio:1/1;object-fit:cover;
  background:var(--paper-2);
}
.strip-item figcaption{
  padding-top:10px;
  font-family:var(--sans);font-size:12px;letter-spacing:0;text-transform:none;
  color:var(--ink-60);
  opacity:0;transition:opacity .3s ease;
}
.strip-item:hover figcaption,.strip-item a:focus-visible figcaption{opacity:1}
.strip-nav{display:flex;gap:18px;padding:clamp(28px,4vw,56px) var(--pad) 0}
.strip-nav button{
  font:inherit;font-size:18px;line-height:1;color:var(--ink-30);
  background:none;border:0;padding:4px 2px;cursor:pointer;
}
.strip-nav button:hover{color:var(--ink)}
.strip-nav button[disabled]{opacity:.3;cursor:default}
@media (max-width:600px){.strip{min-height:0;padding-top:var(--pad)}.strip-item{width:62vw}}

/* ---------- grid ---------- *//* ---------- grid ---------- */
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:0 var(--pad) 20px;border-bottom:1px solid var(--rule);margin-bottom:clamp(24px,4vw,48px)}
.section-head h2{font-size:15px;font-weight:500;letter-spacing:.01em}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gap) var(--gap);padding-inline:var(--pad)}
.card{grid-column:span 4;min-width:0}
.card figure{margin:0;background:var(--paper-2);overflow:hidden}
.card img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .4s}
.card:hover img{transform:scale(1.02)}
.card-meta{display:flex;justify-content:space-between;gap:12px;padding-top:10px}
.card-title{font-size:15px;font-weight:450;letter-spacing:-.01em}
.card-sub{font-size:13px;color:var(--ink-60)}
.card-year{display:none}
/* home grid — continuous feed, 3 across; only 315x315 and 315x402 frames */
.grid--editorial .card{grid-column:span 4;align-self:start}
.grid.grid--editorial .card img{aspect-ratio:1/1}
.grid--editorial .card>a{position:relative;display:block}
.grid--editorial .card .card-meta{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:16px;text-align:center;
  background:rgba(251,251,251,.9);
  color:var(--ink);
  opacity:0;transition:opacity .35s ease;
}
.grid--editorial .card:hover .card-meta,.grid--editorial .card>a:focus-visible .card-meta{opacity:1}
.grid--editorial .card .card-title{font-size:clamp(19px,1.7vw,25px);font-weight:400;letter-spacing:-.02em;color:var(--ink)}
.grid--editorial .card .card-sub{display:none}
.grid--editorial .card .card-year{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink-60)}
@media (hover:none){.grid--editorial .card .card-meta{opacity:1;background:linear-gradient(to top,rgba(251,251,251,.94) 0%,rgba(251,251,251,.7) 40%,rgba(251,251,251,0) 100%);justify-content:flex-end}}

/* works index / collections — staggered squares, captions on hover */
.grid .card img{aspect-ratio:1/1}
.grid:not(.grid--editorial) .card>a{position:relative;display:block}
.grid:not(.grid--editorial) .card .card-meta{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:16px;text-align:center;
  background:rgba(251,251,251,.9);color:var(--ink);
  opacity:0;transition:opacity .35s ease;
}
.grid:not(.grid--editorial) .card:hover .card-meta,
.grid:not(.grid--editorial) .card>a:focus-visible .card-meta{opacity:1}
.grid:not(.grid--editorial) .card .card-title{font-size:clamp(19px,1.7vw,25px);font-weight:400;letter-spacing:-.02em;color:var(--ink)}
.grid:not(.grid--editorial) .card .card-sub{display:none}
.grid:not(.grid--editorial) .card .card-year{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink-60)}
@media (hover:none){.grid:not(.grid--editorial) .card .card-meta{opacity:1;background:linear-gradient(to top,rgba(251,251,251,.94) 0%,rgba(251,251,251,.7) 40%,rgba(251,251,251,0) 100%);justify-content:flex-end}}

/* ---------- filters ---------- */
.filters{display:flex;flex-wrap:wrap;gap:18px;padding:var(--pad) var(--pad) 28px}
.filters a{font-size:14px;color:var(--ink-60)}
.filters a.is-active{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}

/* ---------- single work ---------- */
.work{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gap);padding:clamp(24px,5vw,64px) var(--pad) 0}
.work-side{grid-column:span 4}
.work-side-inner{position:sticky;top:32px}
.work-body{grid-column:6/span 7}
.work h1{font-size:clamp(25px,3.2vw,41px);margin-bottom:18px}
.spec{border-top:1px solid var(--rule);margin-top:26px}
.spec div{display:flex;gap:12px;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--rule);font-size:14px}
.spec dt{color:var(--ink-60)}
.spec dd{margin:0;text-align:right}
.work-note{margin-top:22px;max-width:42ch;font-size:15px;line-height:1.65;color:var(--ink-60)}
.work-note p{margin:0 0 .9em}
.work-note p:last-child{margin:0}
.work-desc{font-size:16px;line-height:1.65;color:var(--ink);margin-top:24px;display:grid;gap:var(--gap)}
.work-desc > *{margin:0;max-width:56ch}
.work-desc figure,.work-desc .wp-block-image,.work-desc .wp-block-gallery,
.work-desc img,.work-desc .wp-block-embed{max-width:none;width:100%}
.work-desc img{width:100%;height:auto;display:block}
.work-desc .wp-block-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
.work-desc .wp-block-gallery figure{margin:0}
.work-images{display:grid;gap:var(--gap)}
.work-images img{width:100%;height:auto}
.work-images figure{margin:0}
.work-images figcaption{padding-top:8px}
.work-nav{display:flex;justify-content:space-between;gap:20px;margin-top:clamp(64px,10vw,140px);padding:20px var(--pad);border-top:1px solid var(--rule);font-size:14px}

/* ---------- post list (exhibitions) ---------- */
.posts{padding:var(--pad) var(--pad) clamp(64px,10vw,140px);display:grid;gap:clamp(40px,6vw,84px)}
.post-row{display:grid;grid-template-columns:minmax(360px,44%) 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.post-thumb{margin:0;background:var(--paper-2)}
.post-thumb img{width:100%;aspect-ratio:var(--thumb);object-fit:cover;display:block}
.post-thumb--empty{aspect-ratio:var(--thumb)}
.post-copy{max-width:70ch}
.post-copy h2{font-size:clamp(21px,2vw,26px);font-weight:450;letter-spacing:-.02em;margin:8px 0 12px}
.post-meta{display:flex;flex-wrap:wrap;gap:8px}
.post-copy p{margin:0 0 1em;font-size:17px;line-height:1.55}
@media (max-width:900px){
  .grid:not(.grid--editorial) .card:nth-child(n){margin-top:0}.post-row{grid-template-columns:1fr}.post-thumb{max-width:520px}}

/* ---------- single post ---------- */
.post-head{padding:var(--pad) var(--pad) 0;max-width:var(--canvas);margin-inline:auto}
.post-head h1{font-size:clamp(30px,3.4vw,42px);margin:12px 0 0}
.post-hero{padding:clamp(32px,4vw,48px) var(--pad) 0;max-width:var(--canvas);margin-inline:auto}
.post-hero img{width:100%;height:auto}
.post-entry{max-width:var(--canvas);margin-inline:auto}
.post-entry .wp-block-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gap)}
.post-entry .wp-block-gallery figure{margin:0}

/* ---------- pages / editor content ---------- */
.page-head{padding:0}
.page-head h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.page-head > *:not(h1){padding:var(--pad) var(--pad) 0}
.entry{padding:var(--pad) var(--pad) clamp(64px,10vw,140px);max-width:var(--canvas);margin-inline:auto;font-size:17px;line-height:1.7}
.entry p{margin:0 0 1.2em}
.entry h2{font-size:23px;margin:44px 0 12px}
.entry > *:first-child{margin-top:0}
.entry a{text-decoration:underline;text-underline-offset:3px}
.entry ul,.entry ol{padding-left:18px}
.alignwide{max-width:none}
.wp-caption-text,figcaption{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-60)}

/* ---------- page with portrait ---------- */
.page-split{
  display:grid;grid-template-columns:minmax(160px,30%) 1fr;
  gap:clamp(24px,3vw,40px);
  padding:var(--pad) var(--pad) clamp(64px,10vw,140px);
  max-width:var(--canvas);margin-inline:auto;
  align-items:start;
}
.page-portrait img{width:100%;height:auto}
.page-body{font-size:15px;line-height:1.67;max-width:none}
.page-body > *:first-child{margin-top:0}
.page-body p{margin:0 0 1.2em}
.page-body h2{font-size:23px;font-weight:450;letter-spacing:-.02em;margin:44px 0 12px}
.page-body a{text-decoration:underline;text-underline-offset:3px}
.page-body ul,.page-body ol{padding-left:18px}
@media (max-width:700px){.page-split{grid-template-columns:1fr}.page-portrait{max-width:280px}}

/* ---------- contact form ---------- */
.form-wrap{padding:0 var(--pad) clamp(64px,10vw,140px);max-width:720px;margin-inline:auto}
.form-note{font-size:15px;color:var(--ink);border:1px solid var(--rule);padding:14px 16px;margin:0 0 28px}
.kiln-form{display:grid;gap:34px}
.kiln-form .field-group{border:0;margin:0;padding:0}
.kiln-form legend,.kiln-form label.field-label{font-size:21px;font-weight:400;letter-spacing:-.01em;color:var(--ink);padding:0}
.kiln-form .two-up{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:14px}
.kiln-form .field{display:grid;gap:8px;margin:0}
.kiln-form .two-up .field label{font-size:16px;color:var(--ink)}
.kiln-form .field label span{font-size:14px;color:var(--ink-30);letter-spacing:0}
.kiln-form input,.kiln-form textarea{
  width:100%;font:inherit;font-size:16px;color:var(--ink);
  background:var(--paper);border:1px solid #B9B9B9;border-radius:0;
  padding:14px 14px;
}
.kiln-form input{height:45px}
.kiln-form textarea{min-height:266px;resize:vertical}
.kiln-form input:focus,.kiln-form textarea:focus{outline:0;border-color:var(--ink)}
.kiln-form .submit{
  font:inherit;font-size:15px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--paper);background:#252525;border:0;border-radius:0;
  padding:14px 44px;border-radius:5px;cursor:pointer;
}
.kiln-form .submit:hover{background:var(--ink)}
@media (max-width:600px){.kiln-form .two-up{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.site-footer{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gap);padding:clamp(48px,8vw,96px) var(--pad) 40px;border-top:1px solid var(--rule);margin-top:clamp(64px,10vw,160px)}
.site-footer .col{grid-column:span 3;min-width:0}
.site-footer h3{font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-30);margin-bottom:12px}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px}
.colophon{grid-column:1/-1;display:flex;justify-content:space-between;gap:16px;padding-top:0;font-size:13px;color:var(--ink-30)}

@media (max-width:900px){
  .grid:not(.grid--editorial) .card:nth-child(n){margin-top:0}
  .grid .card,.grid--editorial .card{grid-column:span 4;align-self:start}
  .work-side,.work-body{grid-column:1/-1}
  .work-side-inner{position:static}
  .site-footer .col{grid-column:span 6}
}
@media (max-width:600px){
  .grid .card,.grid--editorial .card:nth-child(n){grid-column:1/-1}
  .site-nav{display:none}
  .site-nav.is-open{display:block;position:absolute;top:100%;right:var(--pad);background:var(--paper);padding:16px 18px;border:1px solid var(--rule)}
  .site-nav.is-open ul{flex-direction:column;gap:10px}
  .nav-toggle{display:block}
  .colophon{flex-direction:column;gap:6px}
}

