
.culhane-site-footer{
  --csf-bg:var(--culhane-workshop-header,var(--culhane-paper-bg,#fff));
  --csf-ink:var(--culhane-workshop-ink,#181512);
  --csf-muted:rgba(24,21,18,.64);
  --csf-border:rgba(24,21,18,.1);
  --csf-link:#8d78bf;
  margin:clamp(1.5rem,4vw,3rem) auto 0;
  padding:clamp(1.15rem,3vw,2rem) clamp(1rem,3vw,1.8rem);
  color:var(--csf-ink);
  background:var(--csf-bg);
  border-top:1px solid var(--csf-border);
}
.culhane-site-footer.is-style-paper,
.culhane-site-footer.is-style-clean{--csf-bg:#fff;--csf-ink:#181512;--csf-muted:rgba(24,21,18,.64);--csf-border:rgba(24,21,18,.1)}
.culhane-site-footer.is-style-ink{--csf-bg:#151313;--csf-ink:#fff9ef;--csf-muted:rgba(255,249,239,.7);--csf-border:rgba(255,255,255,.14);--csf-link:#d7c8ef}
.culhane-site-footer-inner{max-width:var(--csf-max-width,1280px);margin:0 auto;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
.culhane-footer-intro{display:grid;gap:.28rem;max-width:760px;margin:0 0 clamp(.9rem,2vw,1.25rem)}
.culhane-footer-kicker{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--csf-muted)}
.culhane-footer-intro h2{margin:0;font-size:clamp(1.1rem,2.1vw,1.62rem);line-height:1.08}
.culhane-footer-intro p:not(.culhane-footer-kicker){margin:.05rem 0 0;color:var(--csf-muted);line-height:1.45;font-size:.92rem;max-width:68ch}
.culhane-footer-links{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:clamp(1rem,3vw,2.4rem);padding:clamp(.85rem,2vw,1.15rem) 0;border-top:1px solid var(--csf-border);border-bottom:1px solid var(--csf-border)}
.culhane-footer-column{--csf-group-colour:var(--csf-link)}
.culhane-footer-column h3{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--csf-muted);margin:0 0 .48rem;line-height:1.2}
.culhane-footer-column ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.34rem .38rem}
.culhane-footer-column a{--link-colour:var(--csf-group-colour);color:var(--csf-ink);text-decoration:none;display:inline-flex;align-items:center;gap:.34rem;line-height:1;border-radius:999px;padding:.42rem .62rem;border:1px solid color-mix(in srgb,var(--link-colour) 28%, var(--csf-border));background:color-mix(in srgb,var(--link-colour) 8%, transparent);font-size:.82rem;font-weight:650;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}
.culhane-footer-column a:hover,.culhane-footer-column a:focus-visible{background:color-mix(in srgb,var(--link-colour) 18%, transparent);border-color:color-mix(in srgb,var(--link-colour) 55%, var(--csf-border));color:var(--link-colour);transform:translateY(-1px);outline:none}
.culhane-footer-column a[data-project-filter-link]:not([data-project-filter-link=""])::after{content:"";width:.38rem;height:.38rem;border-radius:999px;background:var(--link-colour);opacity:.72;flex:0 0 auto}
.culhane-footer-external{font-size:.78em;line-height:1;opacity:.72;transform:translateY(-.04em)}
.culhane-footer-bottom{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding-top:.82rem;color:var(--csf-muted);font-size:.82rem}
.culhane-footer-bottom p{margin:0}.culhane-footer-top{color:var(--csf-muted);text-decoration:none}.culhane-footer-top:hover{color:var(--csf-link)}
@media(max-width:860px){.culhane-footer-links{grid-template-columns:1fr;gap:.85rem}.culhane-footer-column ul{gap:.32rem}.culhane-site-footer{padding:1rem}.culhane-footer-bottom{display:grid;gap:.4rem}.culhane-footer-intro{margin-bottom:.8rem}}
@media(max-width:480px){.culhane-footer-column a{font-size:.8rem;padding:.4rem .55rem}.culhane-footer-intro h2{font-size:1.18rem}}


/* v1.2 — alignment pass: balanced, centred footer without the boxy feel */
.culhane-site-footer{
  margin:clamp(1.25rem,3vw,2.25rem) auto 0;
  padding:clamp(1rem,2.2vw,1.45rem) clamp(1rem,3vw,1.5rem) .9rem;
}
.culhane-site-footer-inner{
  width:min(100%, var(--csf-max-width,1120px));
}
.culhane-footer-intro{
  max-width:760px;
  margin:0 auto clamp(.85rem,1.8vw,1.1rem);
  text-align:center;
  justify-items:center;
}
.culhane-footer-intro h2{
  max-width:760px;
}
.culhane-footer-intro p:not(.culhane-footer-kicker){
  max-width:58ch;
}
.culhane-footer-links{
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:clamp(1.2rem,4vw,3rem);
  padding:.85rem 0 .9rem;
}
.culhane-footer-column{
  min-width:0;
  text-align:center;
}
.culhane-footer-column h3{
  margin-bottom:.45rem;
}
.culhane-footer-column ul{
  justify-content:center;
  align-items:center;
  gap:.34rem;
}
.culhane-footer-column a{
  padding:.38rem .58rem;
  font-size:.78rem;
  min-height:28px;
}
.culhane-footer-bottom{
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem;
  align-items:center;
  padding-top:.72rem;
  font-size:.76rem;
}
.culhane-footer-bottom p{
  text-align:left;
}
.culhane-footer-top{
  white-space:nowrap;
}
@media(max-width:900px){
  .culhane-footer-links{
    grid-template-columns:1fr;
    gap:.82rem;
    padding:.78rem 0;
  }
  .culhane-footer-column ul{
    max-width:620px;
    margin:0 auto;
  }
  .culhane-footer-bottom{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }
  .culhane-footer-bottom p{
    text-align:center;
  }
}
@media(min-width:901px){
  .culhane-footer-column:first-child ul{
    max-width:340px;
    margin:0 auto;
  }
  .culhane-footer-column:nth-child(2) ul,
  .culhane-footer-column:nth-child(3) ul{
    max-width:300px;
    margin:0 auto;
  }
}


/* v1.3 — aesthetics pass: no horizontal rulers, quieter footer shelf */
.culhane-site-footer{
  border-top:0 !important;
  margin:clamp(1rem,2.4vw,2rem) auto 0;
  padding:clamp(.85rem,1.8vw,1.25rem) clamp(1rem,3vw,1.5rem) .8rem;
}
.culhane-site-footer-inner{
  position:relative;
}
.culhane-footer-intro{
  margin-bottom:clamp(.72rem,1.4vw,.95rem);
}
.culhane-footer-kicker{
  font-size:.66rem;
  opacity:.55;
}
.culhane-footer-intro h2{
  font-size:clamp(1.08rem,1.9vw,1.48rem);
}
.culhane-footer-intro p:not(.culhane-footer-kicker){
  font-size:.86rem;
  line-height:1.38;
}
.culhane-footer-links{
  border-top:0 !important;
  border-bottom:0 !important;
  padding:.2rem 0 .52rem;
  gap:clamp(1rem,4vw,3rem);
}
.culhane-footer-column h3{
  font-size:.66rem;
  opacity:.72;
  margin-bottom:.38rem;
}
.culhane-footer-column a{
  padding:.34rem .54rem;
  min-height:26px;
  font-size:.75rem;
  border-color:color-mix(in srgb,var(--link-colour) 24%, transparent);
  box-shadow:0 1px 0 rgba(0,0,0,.035);
}
.culhane-footer-column a:hover,
.culhane-footer-column a:focus-visible{
  box-shadow:0 5px 14px rgba(0,0,0,.055);
}
.culhane-footer-bottom{
  padding-top:.35rem;
  font-size:.72rem;
  opacity:.88;
}
.culhane-footer-top{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:.2rem .4rem;
  border-radius:999px;
}
.culhane-footer-top:hover,
.culhane-footer-top:focus-visible{
  background:rgba(0,0,0,.04);
  outline:none;
}
@media(max-width:900px){
  .culhane-footer-links{
    padding:.1rem 0 .42rem;
  }
  .culhane-footer-column h3{
    margin-bottom:.3rem;
  }
}
@media(max-width:520px){
  .culhane-site-footer{
    padding-left:.9rem;
    padding-right:.9rem;
  }
  .culhane-footer-bottom{
    font-size:.7rem;
  }
}


/* v1.4 integrated Workshop palette */
body.culhane-workshop-theme .culhane-site-footer{
  --csf-bg:var(--culhane-workshop-header,var(--culhane-paper-bg,#fff));
  --csf-ink:var(--culhane-workshop-ink,#181512);
  --csf-link:var(--culhane-workshop-lavender,#aaa0c8);
  
}
body.culhane-workshop-theme .culhane-footer-intro h2{font-weight:400}

/* v1.5 — Workshop field-guide footer / WordPress menu integration */
body.culhane-workshop-theme .culhane-site-footer{
  --csf-bg:var(--culhane-workshop-header,var(--culhane-paper-bg,#fffdf8));
  --csf-ink:var(--culhane-workshop-ink,#171615);
  --csf-muted:color-mix(in srgb,var(--csf-ink) 56%,transparent);
  margin-top:clamp(2.5rem,7vw,6rem);
  padding:clamp(2rem,4.5vw,3.8rem) clamp(1rem,4vw,2rem) 1rem;
  background:
    radial-gradient(circle at 13% 0%,color-mix(in srgb,var(--culhane-workshop-lavender,#aaa0c8) 7%,transparent),transparent 24%),
    radial-gradient(circle at 88% 100%,color-mix(in srgb,var(--culhane-workshop-ochre,#d0a84b) 7%,transparent),transparent 25%),
    var(--csf-bg);
  color:var(--csf-ink);
}
body.culhane-workshop-theme .culhane-site-footer-inner{width:min(100%,var(--csf-max-width,1120px))}
body.culhane-workshop-theme .culhane-footer-intro{margin-bottom:1.25rem;gap:.38rem}
body.culhane-workshop-theme .culhane-footer-kicker{font-size:.61rem;font-weight:800;letter-spacing:.16em;opacity:.45}
body.culhane-workshop-theme .culhane-footer-intro h2{font-size:clamp(1.65rem,3.5vw,2.6rem);font-weight:400;line-height:1;margin:0}
body.culhane-workshop-theme .culhane-footer-intro p:not(.culhane-footer-kicker){font-size:.87rem;line-height:1.5;max-width:55ch}
.culhane-footer-thread{position:relative;width:min(620px,82%);height:25px;margin:.3rem auto 1.15rem}
.culhane-footer-thread > span{position:absolute;left:0;right:0;top:12px;height:1px;background:color-mix(in srgb,var(--csf-ink) 14%,transparent);transform:rotate(-.25deg)}
.culhane-footer-thread i{position:absolute;top:8px;width:9px;height:9px;border-radius:50%;background:var(--culhane-workshop-lavender,#aaa0c8);box-shadow:0 0 0 4px var(--csf-bg)}
.culhane-footer-thread i:nth-of-type(1){left:7%}.culhane-footer-thread i:nth-of-type(2){left:35%;background:var(--culhane-workshop-ochre,#d0a84b)}.culhane-footer-thread i:nth-of-type(3){left:64%;background:var(--culhane-workshop-clay,#d98277)}.culhane-footer-thread i:nth-of-type(4){right:7%;background:var(--culhane-workshop-moss,#71835a)}
body.culhane-workshop-theme .culhane-footer-links{grid-template-columns:1.1fr 1fr .9fr;gap:clamp(1.6rem,5vw,4rem);padding:.3rem 0 1.35rem;text-align:left}
body.culhane-workshop-theme .culhane-footer-column{text-align:left;min-width:0}
body.culhane-workshop-theme .culhane-footer-column h3{font-size:1.25rem;letter-spacing:0;text-transform:none;color:var(--csf-ink);opacity:1;margin:0 0 .65rem;font-weight:400}
body.culhane-workshop-theme .culhane-footer-column ul{display:grid;justify-content:start;gap:.12rem;max-width:none!important;margin:0}
body.culhane-workshop-theme .culhane-footer-column li{margin:0}
body.culhane-workshop-theme .culhane-footer-column a{
  position:relative;display:inline-flex;align-items:center;gap:.5rem;width:fit-content;min-height:30px;padding:.2rem .1rem .2rem 1rem;
  border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;color:var(--csf-ink);font-size:.82rem;font-weight:620;line-height:1.25;
  transform:none!important;
}
body.culhane-workshop-theme .culhane-footer-column a::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;border-radius:50%;background:var(--csf-group-colour,var(--culhane-workshop-lavender,#aaa0c8));transform:translateY(-50%);opacity:.7;transition:transform .15s ease,opacity .15s ease}
body.culhane-workshop-theme .culhane-footer-column a::after{content:"";position:absolute;left:1rem;right:0;bottom:2px;height:2px;border-radius:999px;background:var(--csf-group-colour,var(--culhane-workshop-lavender,#aaa0c8));transform:scaleX(0) rotate(-.5deg);transform-origin:left;transition:transform .15s ease;opacity:.7}
body.culhane-workshop-theme .culhane-footer-column a:hover,body.culhane-workshop-theme .culhane-footer-column a:focus-visible{color:var(--csf-ink);outline:none}
body.culhane-workshop-theme .culhane-footer-column a:hover::before,body.culhane-workshop-theme .culhane-footer-column a:focus-visible::before{transform:translateY(-50%) scale(1.35);opacity:1}
body.culhane-workshop-theme .culhane-footer-column a:hover::after,body.culhane-workshop-theme .culhane-footer-column a:focus-visible::after,body.culhane-workshop-theme .culhane-footer-column .current-menu-item > a::after{transform:scaleX(1) rotate(-.5deg)}
body.culhane-workshop-theme .culhane-footer-column .sub-menu{margin:.12rem 0 .35rem .9rem!important;padding:0!important;opacity:.72}
body.culhane-workshop-theme .culhane-footer-bottom{border-top:1px solid color-mix(in srgb,var(--csf-ink) 8%,transparent);padding-top:.7rem;font-size:.7rem}
body.culhane-workshop-theme .culhane-footer-top{font-size:1rem;opacity:.7}
@media(max-width:900px){
  body.culhane-workshop-theme .culhane-footer-links{grid-template-columns:1fr 1fr;gap:1.3rem 2rem}
  body.culhane-workshop-theme .culhane-footer-column:last-child{grid-column:1/-1}
  body.culhane-workshop-theme .culhane-footer-column:last-child ul{display:flex;flex-wrap:wrap;gap:.2rem 1rem}
}
@media(max-width:600px){
  body.culhane-workshop-theme .culhane-site-footer{padding-top:2.3rem}
  body.culhane-workshop-theme .culhane-footer-links{grid-template-columns:1fr;gap:1.1rem}
  body.culhane-workshop-theme .culhane-footer-column:last-child{grid-column:auto}
  body.culhane-workshop-theme .culhane-footer-column:last-child ul{display:grid;gap:.12rem}
  .culhane-footer-thread{width:88%;margin-bottom:.9rem}
}


/* v1.5.2 / CPC 2.9.5 — true full-bleed footer even when shortcode sits inside a constrained Blocksy widget.
   The outer paper/background escapes the parent; the inner footer still obeys --csf-max-width. */
.culhane-site-footer{
  width:auto!important;
  max-width:none!important;
  box-sizing:border-box;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  clear:both;
}
.culhane-site-footer-inner{width:min(100%,var(--csf-max-width,1120px));margin-left:auto;margin-right:auto}

/* v1.5.3 / CPC 2.12 — paper texture + quiet depth; full-bleed behaviour unchanged. */
body.culhane-workshop-theme.culhane-workshop-texture .culhane-site-footer{
  position:relative;
  isolation:isolate;
  background-color:var(--csf-bg);
  background-image:var(--culhane-paper-texture-a,url("paper-texture-soft.webp"));
  background-repeat:repeat;
  background-size:var(--culhane-paper-texture-a-size,180px) var(--culhane-paper-texture-a-size,180px);
  background-blend-mode:multiply;
}
body.culhane-workshop-theme.culhane-workshop-texture .culhane-site-footer-inner{position:relative;z-index:1}
body.culhane-workshop-theme.culhane-workshop-patterns .culhane-site-footer::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:var(--culhane-wave-color,#aaa0c8);opacity:var(--culhane-wave-opacity,.04);
  -webkit-mask-image:var(--culhane-wave-pattern,url("pattern-bank-note.svg"));mask-image:var(--culhane-wave-pattern,url("pattern-bank-note.svg"));
  -webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-size:var(--culhane-wave-size,150px) var(--culhane-wave-height,30px);mask-size:var(--culhane-wave-size,150px) var(--culhane-wave-height,30px);
}
body.culhane-workshop-theme.culhane-workshop-depth .culhane-site-footer{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 -12px 38px rgba(23,22,21,.025);
}

.culhane-footer-external{display:inline-grid;place-items:center}.culhane-footer-external .culhane-fa-fallback>svg,.culhane-footer-external .culhane-fa-fallback>i{width:.82em;height:.82em}


/* v1.5.4 / CPC 2.38 — remove the theme-row gutters that can show as white
   strips above/below a full-bleed Workshop footer. :has() is supported by the
   browsers targeted by the current site; the footer itself still works where
   it is unavailable. */
body.culhane-workshop-theme .culhane-site-footer{
  margin-top:0!important;
  margin-bottom:0!important;
}
@supports selector(:has(*)){
  body.culhane-workshop-theme :is(#footer,.ct-footer):has(.culhane-site-footer),
  body.culhane-workshop-theme :is(#footer,.ct-footer) [data-row]:has(.culhane-site-footer),
  body.culhane-workshop-theme :is(#footer,.ct-footer) .ct-container:has(.culhane-site-footer),
  body.culhane-workshop-theme :is(#footer,.ct-footer) [data-column]:has(.culhane-site-footer),
  body.culhane-workshop-theme :is(#footer,.ct-footer) .ct-widget:has(.culhane-site-footer){
    margin-top:0!important;
    margin-bottom:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
    min-height:0!important;
    background:transparent!important;
  }
  body.culhane-workshop-theme :is(#footer,.ct-footer) .ct-container:has(.culhane-site-footer){
    width:100%!important;
    max-width:none!important;
  }
}
body.culhane-workshop-home-page :is(#main,.site-main,.content-area,article,.entry-content),
body.culhane-design-showcase-page :is(#main,.site-main,.content-area,article,.entry-content){
  margin-bottom:0!important;
  padding-bottom:0!important;
}

/* v1.5.5 / CPC 2.39 — align footer typography with the public-site display system. */
body.culhane-workshop-theme .culhane-footer-intro h2,
body.culhane-workshop-theme .culhane-footer-column h3{
  font-family:var(--culhane-display-font,"Iowan Old Style","Palatino Linotype",Georgia,serif)!important;
  font-weight:600!important;
  letter-spacing:-.015em!important;
}
body.culhane-workshop-theme .culhane-footer-intro h2{
  font-size:clamp(1.7rem,3.2vw,2.65rem)!important;
  line-height:1!important;
}
body.culhane-workshop-theme .culhane-footer-column h3{font-size:1.12rem!important}
body.culhane-workshop-theme .culhane-footer-column a{font-family:var(--culhane-ui-font,system-ui,sans-serif)!important}
body.culhane-workshop-theme .culhane-footer-external .culhane-fa-fallback{color:var(--csf-group-colour,var(--culhane-workshop-moss,#71835a))}
