/* Culhane Contact Card v1.2 */
.culhane-contact-card-wrap{--ccc-paper:#fbf6ec;--ccc-panel:#fff;--ccc-ink:#171717;--ccc-border:rgba(0,0,0,.09);--ccc-shadow:0 18px 56px rgba(0,0,0,.085);max-width:var(--ccc-max-width,1100px);margin:0 auto;display:grid;gap:1.75rem}
.culhane-contact-card-wrap.is-style-clean{--ccc-paper:#fff;--ccc-panel:#fff}.culhane-contact-card-wrap.is-style-ink{--ccc-paper:#171717;--ccc-panel:#202020;--ccc-ink:#fff;--ccc-border:rgba(255,255,255,.14);--ccc-shadow:0 20px 70px rgba(0,0,0,.28)}
.culhane-contact-notice{padding:.9rem 1rem;border-radius:14px;border:1px solid var(--ccc-border)}.culhane-contact-notice.is-success{background:#eef9ef;color:#166534}.culhane-contact-notice.is-error{background:#fff2f2;color:#991b1b}
.culhane-contact-card-block{display:grid;grid-template-columns:minmax(320px,1.16fr) minmax(280px,.84fr);gap:clamp(1rem,3vw,2rem);align-items:center}
.culhane-contact-card{position:relative;border-radius:30px;overflow:hidden;background:var(--ccc-paper);box-shadow:var(--ccc-shadow);transform-style:preserve-3d;transition:transform .18s ease,box-shadow .18s ease;isolation:isolate}
.has-motion-none .culhane-contact-card{transition:none}.culhane-contact-card img{display:block;width:100%;height:auto;position:relative;z-index:0}.culhane-contact-card:focus-visible{outline:3px solid rgba(0,0,0,.4);outline-offset:6px}
.ccc-glow{pointer-events:none;position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.34),transparent 35%);opacity:.55;z-index:2;mix-blend-mode:soft-light}
.ccc-icon-highlight{pointer-events:none;position:absolute;z-index:2;border-radius:999px;opacity:0;transform:scale(.88);transition:opacity .14s ease,transform .14s ease,left .14s ease,top .14s ease,width .14s ease,height .14s ease,box-shadow .14s ease;background:rgba(255,255,255,.16)}
.culhane-contact-card.is-hovering .ccc-icon-highlight{opacity:1;transform:scale(1)}
.culhane-contact-card.is-active-about .ccc-icon-highlight{left:39.5%;top:32%;width:5.8%;height:8.8%;box-shadow:0 0 0 2px #b8a7d7,0 8px 24px rgba(80,50,120,.22)}
.culhane-contact-card.is-active-home .ccc-icon-highlight{left:70.2%;top:32%;width:5.8%;height:8.8%;box-shadow:0 0 0 2px #f0c63a,0 8px 24px rgba(160,120,0,.22)}
.culhane-contact-card.is-active-social .ccc-icon-highlight{left:67.3%;top:58.6%;width:5.9%;height:8.8%;box-shadow:0 0 0 2px #f27a7a,0 8px 24px rgba(170,40,40,.22)}
.culhane-contact-card.is-active-contact .ccc-icon-highlight{left:59%;top:66.1%;width:5.8%;height:8.8%;box-shadow:0 0 0 2px #8fd67b,0 8px 24px rgba(30,120,40,.22)}
.ccc-icon-hotspot{position:absolute;background:transparent;border:0;cursor:pointer;z-index:5;padding:0;border-radius:999px}
.ccc-icon-hotspot span{position:absolute;left:50%;top:-.7rem;translate:-50% -100%;width:max-content;padding:.35rem .55rem;border-radius:999px;background:rgba(20,20,20,.9);color:#fff;font-size:.78rem;line-height:1.1;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease}
.shows-hints .ccc-icon-hotspot:hover span,.shows-hints .ccc-icon-hotspot:focus-visible span{opacity:1;transform:translateY(0)}.ccc-icon-hotspot:focus-visible{outline:2px solid rgba(0,0,0,.55);outline-offset:3px}
.ccc-icon-hotspot.is-about{left:39.1%;top:31.4%;width:6.7%;height:9.8%}.ccc-icon-hotspot.is-home{left:69.8%;top:31.4%;width:6.7%;height:9.8%}.ccc-icon-hotspot.is-social{left:66.9%;top:58%;width:6.8%;height:9.8%}.ccc-icon-hotspot.is-contact{left:58.6%;top:65.5%;width:6.8%;height:9.8%}
.culhane-contact-side-panel,.culhane-contact-panels{background:var(--ccc-panel);color:var(--ccc-ink);border:1px solid var(--ccc-border);border-radius:24px;box-shadow:0 14px 36px rgba(0,0,0,.05)}
.culhane-contact-side-panel{padding:clamp(1.2rem,2.6vw,1.7rem);min-height:250px;display:flex;flex-direction:column;justify-content:center}
.ccc-kicker{margin:0 0 .35rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;opacity:.64}.culhane-contact-side-panel h2,.ccc-panel h3{margin:.1rem 0 .5rem;line-height:1.02}.culhane-contact-side-panel p[data-ccc-side-text],.ccc-panel p{line-height:1.6}
.ccc-side-actions,.ccc-social-links,.ccc-panel-actions,.ccc-form-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}
.ccc-side-actions button,.ccc-social-links a,.ccc-panel-actions a,.ccc-direct-email,.culhane-contact-form button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.72rem 1rem;border-radius:999px;text-decoration:none;font-weight:600}
.ccc-side-actions button,.ccc-social-links a,.ccc-panel-actions a,.ccc-direct-email{color:inherit;border:1px solid var(--ccc-border);background:color-mix(in srgb,var(--ccc-panel) 88%, var(--ccc-ink) 4%);cursor:pointer}
.culhane-contact-panels{padding:clamp(1.15rem,3vw,1.65rem)}.ccc-panel{display:none}.ccc-panel.is-active{display:block}.ccc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.culhane-contact-form label{display:block;font-weight:600;margin-bottom:.35rem}.culhane-contact-form input,.culhane-contact-form textarea{width:100%;padding:.8rem .95rem;border:1px solid var(--ccc-border);border-radius:14px;background:#fff;color:#171717}.culhane-contact-form textarea{resize:vertical;min-height:160px}.culhane-contact-form button{border:0;cursor:pointer;background:#171717;color:#fff}.ccc-hp{position:absolute;left:-9999px;opacity:0}
@media(max-width:840px){.culhane-contact-card-block{grid-template-columns:1fr}.ccc-form-grid{grid-template-columns:1fr}.ccc-icon-hotspot span{display:none}}


/* v1.3 block/editor and small resilience fixes */
.wp-block-culhane-contact-card .culhane-contact-card-wrap{margin-top:0;margin-bottom:0}
.ccc-side-actions button.is-active{box-shadow:inset 0 0 0 2px currentColor}
.ccc-panel.is-active{animation:cccPanelIn .16s ease both}
@keyframes cccPanelIn{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}


/* v1.4 — icon-locked alignment and coloured compact tabs */
.ccc-icon-hotspot span{
  font-size:.72rem;
  padding:.28rem .48rem;
}
.ccc-icon-hotspot.is-about{left:40.6%;top:33.6%;width:6.4%;height:10.4%}
.ccc-icon-hotspot.is-home{left:71.1%;top:33.4%;width:6.4%;height:10.4%}
.ccc-icon-hotspot.is-social{left:68.2%;top:61.4%;width:6.4%;height:10.4%}
.ccc-icon-hotspot.is-contact{left:59.7%;top:67.7%;width:6.4%;height:10.4%}
.culhane-contact-card.is-active-about .ccc-icon-highlight{left:40.85%;top:33.85%;width:5.9%;height:9.8%;box-shadow:0 0 0 2px #b8a7d7,0 8px 24px rgba(80,50,120,.22)}
.culhane-contact-card.is-active-home .ccc-icon-highlight{left:71.35%;top:33.65%;width:5.9%;height:9.8%;box-shadow:0 0 0 2px #f0c63a,0 8px 24px rgba(160,120,0,.22)}
.culhane-contact-card.is-active-social .ccc-icon-highlight{left:68.45%;top:61.65%;width:5.9%;height:9.8%;box-shadow:0 0 0 2px #f27a7a,0 8px 24px rgba(170,40,40,.22)}
.culhane-contact-card.is-active-contact .ccc-icon-highlight{left:59.95%;top:67.95%;width:5.9%;height:9.8%;box-shadow:0 0 0 2px #8fd67b,0 8px 24px rgba(30,120,40,.22)}
.culhane-contact-card.is-active-place .ccc-icon-highlight{left:59.95%;top:67.95%;width:5.9%;height:9.8%;box-shadow:0 0 0 2px #8fd67b,0 8px 24px rgba(30,120,40,.22)}

.ccc-side-actions{
  order:-1;
  margin:0 0 1rem;
  gap:.45rem;
}
.ccc-side-actions .ccc-tab,
.ccc-side-actions button.ccc-tab{
  min-height:34px;
  padding:.42rem .68rem;
  font-size:.82rem;
  line-height:1;
  border:1px solid var(--ccc-border);
  border-radius:999px;
  background:color-mix(in srgb,var(--ccc-panel) 92%, var(--ccc-ink) 4%);
  color:inherit;
  text-decoration:none;
  cursor:pointer;
  font-weight:650;
}
.ccc-side-actions .ccc-tab.is-active{color:#171717}
.ccc-side-actions .ccc-tab.is-home.is-active{background:#f7d956;border-color:#e2ba17}
.ccc-side-actions .ccc-tab.is-contact.is-active{background:#aee58e;border-color:#7bc45c}
.ccc-side-actions .ccc-tab.is-about.is-active{background:#d7c8ef;border-color:#b8a7d7}
.ccc-side-actions .ccc-tab.is-social.is-active{background:#ff9a9a;border-color:#f27a7a}
.ccc-side-actions .ccc-tab.is-place.is-active{background:#aee58e;border-color:#7bc45c}


/* v1.5 — icon hit-area correction: a little wider, lifted back up */
.ccc-icon-hotspot.is-about{left:39.2%;top:30.2%;width:9.2%;height:12.4%}
.ccc-icon-hotspot.is-home{left:69.6%;top:30.2%;width:9.2%;height:12.4%}
.ccc-icon-hotspot.is-social{left:66.8%;top:57.6%;width:9.2%;height:12.4%}
.ccc-icon-hotspot.is-contact{left:58.2%;top:64.2%;width:9.2%;height:12.4%}
.culhane-contact-card.is-active-about .ccc-icon-highlight{left:40.25%;top:31.1%;width:6.9%;height:10.5%}
.culhane-contact-card.is-active-home .ccc-icon-highlight{left:70.65%;top:31.1%;width:6.9%;height:10.5%}
.culhane-contact-card.is-active-social .ccc-icon-highlight{left:67.85%;top:58.5%;width:6.9%;height:10.5%}
.culhane-contact-card.is-active-contact .ccc-icon-highlight{left:59.25%;top:65.1%;width:6.9%;height:10.5%}
.culhane-contact-card.is-active-place .ccc-icon-highlight{left:59.25%;top:65.1%;width:6.9%;height:10.5%}

/* v1.5 — larger social panel links with simple site icons */
.ccc-social-links.has-icons{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:.75rem;
  margin-top:1rem;
}
.ccc-social-links.has-icons .ccc-social-link{
  justify-content:flex-start;
  gap:.7rem;
  min-height:54px;
  border-radius:16px;
  padding:.7rem .85rem;
}
.ccc-social-icon{
  width:34px;
  height:34px;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  font-size:.9rem;
  font-weight:800;
  background:rgba(0,0,0,.08);
}
.ccc-social-link.is-instagram .ccc-social-icon{background:#ffb6c1}
.ccc-social-link.is-facebook .ccc-social-icon{background:#bcd6ff}
.ccc-social-link.is-linkedin .ccc-social-icon{background:#bfe4ff}
.ccc-social-link.is-behance .ccc-social-icon{background:#d9d9ff}
.ccc-social-link.is-github .ccc-social-icon{background:#ddd}
.ccc-social-link.is-youtube .ccc-social-icon{background:#ffb7b7}
.ccc-social-link.is-vimeo .ccc-social-icon{background:#ccefff}
.ccc-social-link.is-bluesky .ccc-social-icon{background:#cce7ff}
.ccc-social-link.is-other .ccc-social-icon{background:#e9e0cf}


/* v1.6 — hotspot calibration after live test */
.ccc-icon-hotspot.is-home{left:71.6%;top:30.0%;width:9.4%;height:12.2%}
.ccc-icon-hotspot.is-social{left:69.1%;top:56.2%;width:9.4%;height:12.2%}
.ccc-icon-hotspot.is-contact{left:60.8%;top:62.7%;width:9.4%;height:12.2%}
.culhane-contact-card.is-active-home .ccc-icon-highlight{left:72.65%;top:30.95%;width:7.0%;height:10.4%}
.culhane-contact-card.is-active-social .ccc-icon-highlight{left:70.15%;top:57.15%;width:7.0%;height:10.4%}
.culhane-contact-card.is-active-contact .ccc-icon-highlight{left:61.85%;top:63.65%;width:7.0%;height:10.4%}

/* v1.6 — keep form status inside the contact panel and make it dismissible */
.culhane-contact-panels .culhane-contact-notice{
  margin:0 0 1rem;
}
.culhane-contact-notice.is-temporary{
  transition:opacity .24s ease, transform .24s ease;
}
.culhane-contact-notice.is-hidden{
  opacity:0;
  transform:translateY(-4px);
  pointer-events:none;
}

/* v1.7 - manual hotspot positioning from admin editor */
.ccc-icon-hotspot{
  left:var(--x) !important;
  top:var(--y) !important;
  width:var(--w) !important;
  height:var(--h) !important;
}
.ccc-icon-highlight{
  left:var(--active-x, -100%) !important;
  top:var(--active-y, -100%) !important;
  width:var(--active-w, 0%) !important;
  height:var(--active-h, 0%) !important;
}
.ccc-social-icon svg{
  width:21px;
  height:21px;
  display:block;
}
.ccc-social-icon svg path{
  fill:currentColor;
  stroke:none;
}
.ccc-social-icon svg rect,
.ccc-social-icon svg circle{
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}


/* v1.8 — reduce doubled-up contact copy and improve mobile layout */
.culhane-contact-side-panel [data-ccc-side-text]{
  max-width:42rem;
}
.culhane-contact-card-wrap.is-panel-contact .culhane-contact-side-panel [data-ccc-side-text]{
  opacity:.72;
}
.ccc-form-head{
  max-width:48rem;
}
.ccc-form-head p:last-child{
  margin-bottom:1rem;
}
@media(max-width:840px){
  .culhane-contact-card-wrap{gap:1rem;}
  .culhane-contact-card-block{gap:.85rem;}
  .culhane-contact-side-panel{
    min-height:0;
    padding:.72rem;
    border-radius:18px;
  }
  .culhane-contact-side-panel .ccc-kicker,
  .culhane-contact-side-panel h2,
  .culhane-contact-side-panel [data-ccc-side-text]{
    display:none;
  }
  .ccc-side-actions{
    margin:0;
    justify-content:center;
    gap:.38rem;
  }
  .ccc-side-actions .ccc-tab,
  .ccc-side-actions button.ccc-tab{
    min-height:32px;
    padding:.4rem .56rem;
    font-size:.78rem;
  }
  .culhane-contact-panels{
    padding:1rem;
    border-radius:18px;
  }
  .ccc-form-head .ccc-kicker{
    margin-bottom:.2rem;
  }
  .ccc-form-head h3{
    margin-bottom:.35rem;
  }
  .ccc-form-head p{
    font-size:.95rem;
    line-height:1.5;
  }
  .culhane-contact-form p{
    margin-block:.75rem;
  }
  .culhane-contact-form textarea{
    min-height:132px;
  }
  .ccc-form-actions{
    gap:.55rem;
  }
  .ccc-form-actions button,
  .ccc-form-actions .ccc-direct-email{
    width:100%;
  }
}
@media(max-width:520px){
  .culhane-contact-card{border-radius:22px;}
  .ccc-side-actions{justify-content:flex-start;overflow-x:auto;padding-bottom:.08rem;}
  .ccc-side-actions .ccc-tab{white-space:nowrap;}
}


/* v1.9 dynamic hotspot colours */
.ccc-icon-hotspot{left:var(--x)!important;top:var(--y)!important;width:var(--w)!important;height:var(--h)!important;}
.ccc-icon-hotspot:focus-visible{outline-color:var(--hotspot-color,#8d78bf)!important;}
.shows-hints .ccc-icon-hotspot:hover span,.shows-hints .ccc-icon-hotspot:focus-visible span{background:var(--hotspot-color,#171717);color:#fff;}
.ccc-icon-highlight{left:var(--active-x,-100%)!important;top:var(--active-y,-100%)!important;width:var(--active-w,0%)!important;height:var(--active-h,0%)!important;box-shadow:0 0 0 2px var(--active-color,#8d78bf),0 8px 24px color-mix(in srgb,var(--active-color,#8d78bf) 35%, transparent)!important;}


/* v1.10 — UI polish pass: cleaner surfaces, tighter rhythm, better mobile */
.culhane-contact-card-wrap{
  --ccc-accent:#8d78bf;
  --ccc-muted:color-mix(in srgb,var(--ccc-ink) 58%, transparent);
  --ccc-soft-line:color-mix(in srgb,var(--ccc-border) 78%, transparent);
  --ccc-surface:color-mix(in srgb,var(--ccc-panel) 94%, var(--ccc-paper) 6%);
  gap:clamp(1rem,2.2vw,1.45rem) !important;
}
.culhane-contact-card-block{
  grid-template-columns:minmax(340px,1.18fr) minmax(260px,.82fr) !important;
  gap:clamp(.9rem,2.2vw,1.35rem) !important;
  align-items:stretch !important;
}
.culhane-contact-card{
  border-radius:clamp(20px,2.8vw,30px) !important;
  box-shadow:0 16px 44px rgba(0,0,0,.075) !important;
  border:1px solid color-mix(in srgb,var(--ccc-border) 75%, transparent);
}
.culhane-contact-card:hover{
  box-shadow:0 20px 54px rgba(0,0,0,.09) !important;
}
.culhane-contact-side-panel,
.culhane-contact-panels{
  border-radius:clamp(18px,2vw,24px) !important;
  box-shadow:0 10px 30px rgba(0,0,0,.045) !important;
  border:1px solid var(--ccc-soft-line) !important;
  background:var(--ccc-surface) !important;
}
.culhane-contact-side-panel{
  min-height:0 !important;
  padding:clamp(.95rem,2vw,1.35rem) !important;
  justify-content:flex-start !important;
  gap:.55rem;
}
.culhane-contact-side-panel .ccc-kicker,
.ccc-panel .ccc-kicker,
.ccc-form-head .ccc-kicker{
  font-size:.72rem !important;
  letter-spacing:.105em !important;
  opacity:.52 !important;
  margin:0 0 .24rem !important;
}
.culhane-contact-side-panel h2,
.ccc-panel h3,
.ccc-form-head h3{
  font-size:clamp(1.28rem,2vw,1.72rem);
  line-height:1.08 !important;
  margin:.05rem 0 .42rem !important;
  letter-spacing:-.02em;
}
.culhane-contact-side-panel [data-ccc-side-text],
.ccc-panel p,
.ccc-form-head p{
  color:var(--ccc-muted);
  line-height:1.58 !important;
}
.ccc-side-actions{
  order:-2 !important;
  margin:0 0 .85rem !important;
  gap:.4rem !important;
  align-items:center;
}
.ccc-side-actions .ccc-tab,
.ccc-side-actions button.ccc-tab{
  min-height:30px !important;
  padding:.38rem .58rem !important;
  font-size:.76rem !important;
  letter-spacing:.01em;
  border-radius:999px !important;
  box-shadow:none !important;
  transition:background .14s ease,border-color .14s ease,transform .14s ease;
}
.ccc-side-actions .ccc-tab:hover{
  transform:translateY(-1px);
}
.ccc-side-actions .ccc-tab.is-active{
  color:#151515 !important;
  box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 6px 14px rgba(0,0,0,.055) !important;
}
.culhane-contact-panels{
  padding:clamp(1rem,2.4vw,1.45rem) !important;
}
.ccc-panel.is-active{
  animation:cccPanelIn .18s ease both !important;
}
.ccc-panel > p:last-child,
.ccc-form-head > p:last-child{
  margin-bottom:0;
}
.ccc-panel-actions,
.ccc-form-actions,
.ccc-social-links{
  margin-top:1.1rem !important;
}
.culhane-contact-form{
  margin-top:1rem;
}
.culhane-contact-form p{
  margin:.78rem 0 !important;
}
.culhane-contact-form label{
  font-size:.88rem;
  letter-spacing:.01em;
  color:color-mix(in srgb,var(--ccc-ink) 78%, transparent);
}
.culhane-contact-form input,
.culhane-contact-form textarea{
  border-radius:13px !important;
  border:1px solid color-mix(in srgb,var(--ccc-border) 82%, transparent) !important;
  background:color-mix(in srgb,#fff 92%, var(--ccc-paper) 8%) !important;
  box-shadow:0 1px 0 rgba(255,255,255,.85) inset;
  transition:border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
.culhane-contact-form input:focus,
.culhane-contact-form textarea:focus{
  outline:none;
  border-color:var(--ccc-accent) !important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ccc-accent) 18%, transparent) !important;
  background:#fff !important;
}
.culhane-contact-form button,
.ccc-panel-actions a,
.ccc-direct-email,
.ccc-social-links a{
  min-height:40px !important;
}
.culhane-contact-form button{
  background:var(--ccc-accent) !important;
  color:#fff !important;
  padding:.72rem 1.05rem !important;
  border-radius:999px !important;
  box-shadow:0 9px 18px color-mix(in srgb,var(--ccc-accent) 22%, transparent);
}
.ccc-direct-email,
.ccc-panel-actions a{
  background:color-mix(in srgb,var(--ccc-panel) 88%, var(--ccc-paper) 12%) !important;
}
.ccc-social-links.has-icons{
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important;
  gap:.65rem !important;
}
.ccc-social-links.has-icons .ccc-social-link{
  min-height:50px !important;
  border-radius:15px !important;
  padding:.62rem .72rem !important;
  background:color-mix(in srgb,var(--ccc-panel) 90%, var(--ccc-paper) 10%) !important;
  border-color:var(--ccc-soft-line) !important;
}
.ccc-social-links.has-icons .ccc-social-link:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(0,0,0,.055);
}
.ccc-social-icon{
  width:32px !important;
  height:32px !important;
}
.ccc-icon-hotspot span{
  font-size:.7rem !important;
  padding:.28rem .46rem !important;
  box-shadow:0 8px 18px rgba(0,0,0,.14);
}
.ccc-icon-highlight{
  background:color-mix(in srgb,var(--active-color,#8d78bf) 12%, white 30%) !important;
  outline:1px solid rgba(255,255,255,.45);
}
.culhane-contact-notice{
  padding:.72rem .86rem !important;
  border-radius:13px !important;
  font-size:.94rem;
}
@media(max-width:840px){
  .culhane-contact-card-wrap{
    gap:.8rem !important;
  }
  .culhane-contact-card-block{
    grid-template-columns:1fr !important;
    gap:.65rem !important;
  }
  .culhane-contact-side-panel{
    padding:.58rem !important;
    border-radius:16px !important;
    position:relative;
  }
  .ccc-side-actions{
    margin:0 !important;
    justify-content:flex-start !important;
    overflow-x:auto;
    flex-wrap:nowrap !important;
    padding:.02rem .02rem .14rem;
    scrollbar-width:thin;
  }
  .ccc-side-actions .ccc-tab,
  .ccc-side-actions button.ccc-tab{
    flex:0 0 auto;
    min-height:30px !important;
    font-size:.74rem !important;
    padding:.36rem .54rem !important;
  }
  .culhane-contact-panels{
    padding:.9rem !important;
    border-radius:16px !important;
  }
  .ccc-form-grid{
    gap:.05rem !important;
  }
  .culhane-contact-form textarea{
    min-height:118px !important;
  }
  .ccc-form-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:.48rem !important;
  }
  .ccc-form-actions button,
  .ccc-form-actions .ccc-direct-email{
    width:100%;
  }
  .ccc-social-links.has-icons{
    grid-template-columns:1fr !important;
  }
}
@media(max-width:520px){
  .culhane-contact-card{border-radius:18px !important;}
  .culhane-contact-card-wrap{--ccc-shadow:0 10px 26px rgba(0,0,0,.07);}
  .ccc-form-head p{font-size:.93rem;}
}

/* v1.11 — custom panels and consistent panel pattern */
.ccc-side-actions .ccc-tab.is-active{
  background:var(--tab-color, #8d78bf) !important;
  border-color:color-mix(in srgb, var(--tab-color, #8d78bf) 78%, black 10%) !important;
  color:#171717;
}
.ccc-custom-panel .ccc-panel-actions a{
  border-color:color-mix(in srgb, currentColor 24%, transparent);
}
.culhane-contact-panels .ccc-panel p{
  max-width:72ch;
}
@media(max-width:840px){
  .ccc-side-actions .ccc-tab{
    flex:1 1 auto;
  }
}


/* v1.13 — side-panel buttons inherit hotspot / tooltip colours */
.ccc-side-actions .ccc-tab,
.ccc-side-actions button.ccc-tab{
  position:relative;
  gap:.38rem;
  border-color:color-mix(in srgb, var(--tab-color, #8d78bf) 42%, var(--ccc-border)) !important;
  background:color-mix(in srgb, var(--tab-color, #8d78bf) 9%, var(--ccc-panel) 91%) !important;
}
.ccc-side-actions .ccc-tab::before,
.ccc-side-actions button.ccc-tab::before{
  content:"";
  width:.46rem;
  height:.46rem;
  border-radius:999px;
  display:inline-block;
  flex:0 0 auto;
  background:var(--tab-color, #8d78bf);
  box-shadow:0 0 0 2px color-mix(in srgb, var(--tab-color, #8d78bf) 16%, transparent);
}
.ccc-side-actions .ccc-tab:hover,
.ccc-side-actions button.ccc-tab:hover{
  border-color:color-mix(in srgb, var(--tab-color, #8d78bf) 72%, black 6%) !important;
  background:color-mix(in srgb, var(--tab-color, #8d78bf) 17%, var(--ccc-panel) 83%) !important;
}
.ccc-side-actions .ccc-tab.is-active,
.ccc-side-actions button.ccc-tab.is-active{
  background:var(--tab-color, #8d78bf) !important;
  border-color:color-mix(in srgb, var(--tab-color, #8d78bf) 82%, black 12%) !important;
  color:var(--tab-text-color, #171717) !important;
}
.ccc-side-actions .ccc-tab.is-active::before,
.ccc-side-actions button.ccc-tab.is-active::before{
  background:currentColor;
  box-shadow:0 0 0 2px color-mix(in srgb, currentColor 24%, transparent);
}
.ccc-side-actions .ccc-tab:focus-visible,
.ccc-side-actions button.ccc-tab:focus-visible{
  outline:2px solid var(--tab-color, #8d78bf) !important;
  outline-offset:2px;
}


/* Two Ranges Contact Hub v0.1.0 */
.culhane-contact-card-wrap{
  --ccc-paper:#f8f1d8;
  --ccc-panel:#fffaf0;
  --ccc-ink:#203027;
  --ccc-border:rgba(46,60,44,.14);
  --ccc-shadow:0 22px 70px rgba(22,31,24,.12);
}

.culhane-contact-card-wrap::before{
  content:"Two Ranges contact hub";
  display:block;
  width:max-content;
  max-width:100%;
  margin:0 auto -.8rem;
  padding:.35rem .7rem;
  border:1px solid rgba(79,122,86,.26);
  border-radius:999px;
  color:#4f7a56;
  background:rgba(248,241,216,.72);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.culhane-contact-card{
  background:transparent;
  box-shadow:none;
  border-radius:0;
  overflow:visible;
}

.culhane-contact-card img{
  filter:drop-shadow(0 18px 36px rgba(22,31,24,.18));
}

.ccc-icon-highlight{
  border-radius:22px;
  background:rgba(255,250,240,.2);
  backdrop-filter:blur(1px);
}

.culhane-contact-side-panel,
.culhane-contact-panels .ccc-panel{
  border-color:rgba(46,60,44,.12);
}

.ccc-form-actions button,
.culhane-contact-card-wrap .ccc-tab.is-active{
  background:#4f7a56;
}

.culhane-contact-card-wrap .ccc-direct-email,
.culhane-contact-card-wrap a{
  color:#3f6548;
}

@media(max-width:840px){
  .culhane-contact-card-wrap::before{
    margin-bottom:.25rem;
  }
}


/* v0.1.1 compatibility bridge
   The plugin keeps the original Culhane frontend class names as stable structural hooks
   because the CSS/JS were built around them. These Two Ranges classes are additive. */
.two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
  max-width:var(--ccc-max-width,1180px);
}
.two-ranges-contact-hub.culhane-contact-card{
  background:transparent;
}


/* Two Ranges Contact Hub v0.1.2 — style pass
   Less business-card bubble, more field desk / ridgeline / topo map. */
.two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
  --ccc-paper:#f3ebcf;
  --ccc-panel:#f8f1d8;
  --ccc-ink:#1f2d23;
  --ccc-border:rgba(49,71,52,.16);
  --ccc-shadow:0 28px 85px rgba(17,27,20,.12);
  --tr-green:#425d42;
  --tr-deep:#1f2d23;
  --tr-gold:#f0c63a;
  --tr-cream:#f8f1d8;
  --tr-rust:#c86643;
  position:relative;
  width:min(var(--ccc-max-width,1180px), calc(100% - 28px));
  padding:clamp(1rem,3vw,2rem);
  border-radius:0;
  background:
    linear-gradient(180deg, rgba(248,241,216,.88), rgba(243,235,207,.82)),
    radial-gradient(circle at 12% 8%, rgba(240,198,58,.18), transparent 28%),
    radial-gradient(circle at 86% 18%, rgba(66,93,66,.14), transparent 32%);
  box-shadow:none;
  overflow:hidden;
  isolation:isolate;
}

.two-ranges-contact-hub-wrap.culhane-contact-card-wrap::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.09;
  background-color:var(--tr-green);
  -webkit-mask-image:url("topography.svg");
          mask-image:url("topography.svg");
  -webkit-mask-repeat:repeat;
          mask-repeat:repeat;
  -webkit-mask-size:720px auto;
          mask-size:720px auto;
  pointer-events:none;
}

.two-ranges-contact-hub-wrap.culhane-contact-card-wrap::before{
  content:"Two Ranges · story leads / local yarns / hidden places";
  position:relative;
  display:block;
  width:max-content;
  max-width:100%;
  margin:0 auto clamp(.9rem,2vw,1.4rem);
  padding:.42rem .82rem;
  border:1px solid rgba(66,93,66,.28);
  border-radius:0;
  color:var(--tr-green);
  background:rgba(248,241,216,.72);
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
  box-shadow:0 8px 20px rgba(17,27,20,.06);
}

/* A small ridge line sitting behind the hub title. */
.two-ranges-contact-hub-wrap.culhane-contact-card-wrap .culhane-contact-card-block::before{
  content:"";
  position:absolute;
  left:50%;
  top:clamp(2.6rem,5vw,4.2rem);
  width:100vw;
  height:96px;
  transform:translateX(-50%);
  opacity:.22;
  background:
    linear-gradient(135deg, transparent 0 38%, rgba(66,93,66,.34) 38% 43%, transparent 43% 100%),
    linear-gradient(165deg, transparent 0 48%, rgba(31,45,35,.28) 48% 53%, transparent 53% 100%);
  clip-path:polygon(0 70%, 7% 58%, 16% 66%, 27% 42%, 37% 54%, 48% 31%, 60% 46%, 72% 27%, 84% 44%, 100% 31%, 100% 100%, 0 100%);
  pointer-events:none;
}

.two-ranges-contact-hub-wrap .culhane-contact-card-block{
  position:relative;
  grid-template-columns:minmax(360px,1.35fr) minmax(300px,.75fr);
  gap:clamp(1.2rem,4vw,3.25rem);
  align-items:center;
}

/* Illustration should feel like it sits on the page, not inside a card. */
.two-ranges-contact-hub.culhane-contact-card{
  overflow:visible;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.two-ranges-contact-hub.culhane-contact-card img{
  filter:drop-shadow(0 22px 34px rgba(17,27,20,.18));
}

/* Hotspots: flatter map markers, not shiny app bubbles. */
.two-ranges-contact-hub .ccc-icon-hotspot{
  border-radius:10px;
}

.two-ranges-contact-hub .ccc-icon-hotspot:focus-visible{
  outline:2px dashed var(--hotspot-color, var(--tr-gold));
  outline-offset:5px;
}

.two-ranges-contact-hub .ccc-icon-hotspot span{
  border-radius:0;
  background:rgba(31,45,35,.94);
  color:#fffaf0;
  font-weight:800;
  letter-spacing:.03em;
  box-shadow:0 10px 26px rgba(17,27,20,.18);
}

.two-ranges-contact-hub .ccc-icon-highlight{
  border-radius:12px;
  background:rgba(248,241,216,.18);
  box-shadow:0 0 0 2px var(--active-color, var(--tr-gold)), 0 12px 34px rgba(17,27,20,.18) !important;
  backdrop-filter:none;
}

/* Side panel: field-note/map margin rather than floating pill card. */
.two-ranges-contact-hub-wrap .culhane-contact-side-panel,
.two-ranges-contact-hub-wrap .culhane-contact-panels .ccc-panel{
  border-radius:0;
  border:1px solid rgba(66,93,66,.22);
  background:
    linear-gradient(180deg, rgba(255,250,240,.86), rgba(248,241,216,.82)),
    repeating-linear-gradient(0deg, rgba(66,93,66,.045) 0 1px, transparent 1px 30px);
  box-shadow:0 18px 42px rgba(17,27,20,.08);
}

.two-ranges-contact-hub-wrap .culhane-contact-side-panel{
  position:relative;
  min-height:unset;
  padding:clamp(1rem,2.4vw,1.6rem);
  border-left:5px solid var(--active-color, var(--tr-green));
}

.two-ranges-contact-hub-wrap .ccc-kicker{
  color:var(--tr-green);
  font-weight:900;
  letter-spacing:.11em;
}

.two-ranges-contact-hub-wrap .culhane-contact-side-panel h2,
.two-ranges-contact-hub-wrap .ccc-panel h3{
  color:var(--tr-deep);
  font-family:inherit;
  line-height:1.05;
}

.two-ranges-contact-hub-wrap .culhane-contact-side-panel p,
.two-ranges-contact-hub-wrap .ccc-panel p{
  color:rgba(31,45,35,.86);
}

/* Tabs as labels on a field-notebook strip, not rounded app buttons. */
.two-ranges-contact-hub-wrap .ccc-side-actions{
  gap:.45rem;
}

.two-ranges-contact-hub-wrap .ccc-tab{
  border-radius:0;
  border:1px solid rgba(66,93,66,.22);
  background:rgba(248,241,216,.7);
  color:var(--tr-deep);
  box-shadow:none;
  font-weight:850;
  letter-spacing:.02em;
}

.two-ranges-contact-hub-wrap .ccc-tab:hover,
.two-ranges-contact-hub-wrap .ccc-tab:focus-visible{
  transform:translateY(-1px);
}

.two-ranges-contact-hub-wrap .ccc-tab.is-active{
  background:var(--tab-color, var(--tr-green));
  color:var(--tab-text-color,#fff);
  border-color:transparent;
}

/* Form: flatter, more editorial. */
.two-ranges-contact-hub-wrap input,
.two-ranges-contact-hub-wrap textarea{
  border-radius:0 !important;
  border-color:rgba(66,93,66,.28) !important;
  background:rgba(255,250,240,.86) !important;
}

.two-ranges-contact-hub-wrap .ccc-form-actions button{
  border-radius:0;
  background:var(--tr-green);
  color:#fffaf0;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.two-ranges-contact-hub-wrap .ccc-direct-email,
.two-ranges-contact-hub-wrap a{
  color:#35523b;
  text-decoration-thickness:2px;
  text-underline-offset:.18em;
}

/* Generic custom panels: give their links the same field-note treatment. */
.two-ranges-contact-hub-wrap .ccc-panel a{
  font-weight:850;
}

/* Mobile: stack naturally, keep illustration generous. */
@media(max-width:840px){
  .two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
    width:min(100%, calc(100% - 18px));
    padding:.8rem;
  }
  .two-ranges-contact-hub-wrap .culhane-contact-card-block{
    grid-template-columns:1fr;
  }
  .two-ranges-contact-hub-wrap.culhane-contact-card-wrap::before{
    width:auto;
    max-width:calc(100% - 1rem);
    text-align:center;
    line-height:1.35;
  }
  .two-ranges-contact-hub-wrap .culhane-contact-side-panel{
    border-left-width:4px;
  }
}


/* v0.1.3 — Local contacts panel */
.tr-local-contact-list{
  display:grid;
  gap:clamp(.85rem,2vw,1.2rem);
  margin-top:1.15rem;
}

.tr-local-contact-card{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:1rem;
  align-items:start;
  padding:1rem;
  border:1px solid rgba(66,93,66,.18);
  background:
    linear-gradient(180deg, rgba(255,250,240,.72), rgba(248,241,216,.6)),
    repeating-linear-gradient(0deg, rgba(66,93,66,.035) 0 1px, transparent 1px 24px);
  box-shadow:0 10px 28px rgba(17,27,20,.06);
}

.tr-local-contact-image{
  width:86px;
  height:86px;
  margin:0;
  border:1px solid rgba(66,93,66,.18);
  background:#f8f1d8;
  display:grid;
  place-items:center;
  overflow:hidden;
}

.tr-local-contact-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.tr-local-contact-placeholder{
  color:#425d42;
  font-weight:900;
  font-size:2.2rem;
  line-height:1;
}

.tr-local-contact-copy h4{
  margin:0 0 .2rem;
  font-size:clamp(1.1rem,1.6vw,1.35rem);
  line-height:1.1;
  color:#1f2d23;
}

.tr-local-contact-role{
  margin:0 0 .45rem !important;
  color:#425d42 !important;
  font-weight:850;
}

.tr-local-contact-copy p{
  margin:.35rem 0;
}

.tr-local-contact-copy .ccc-panel-actions{
  margin-top:.65rem;
}

@media(max-width:560px){
  .tr-local-contact-card{
    grid-template-columns:64px minmax(0,1fr);
    gap:.8rem;
    padding:.8rem;
  }
  .tr-local-contact-image{
    width:64px;
    height:64px;
  }
}


/* Two Ranges Contact Hub v0.1.4 — calmer visual correction
   - remove loud full-background topography
   - remove leftover purple buttons
   - reduce contained bubble/card feel
   - keep the illustration as the hero/focal point */
.two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
  --ccc-paper:#f8f1d8 !important;
  --ccc-panel:#fbf6e8 !important;
  --ccc-ink:#1f2d23 !important;
  --ccc-border:rgba(66,93,66,.16) !important;
  --ccc-shadow:none !important;
  --tr-green:#425d42;
  --tr-deep:#1f2d23;
  --tr-gold:#f0c63a;
  --tr-cream:#f8f1d8;
  --tr-rust:#c86643;
  background:transparent !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:clamp(.75rem,2.4vw,1.5rem) clamp(.5rem,2vw,1rem) !important;
  width:min(var(--ccc-max-width,1180px), calc(100% - 32px)) !important;
}

/* Kill the full panel topo wash from v0.1.2. */
.two-ranges-contact-hub-wrap.culhane-contact-card-wrap::after{
  content:none !important;
  display:none !important;
}

/* Simpler heading label; no boxy badge. */
.two-ranges-contact-hub-wrap.culhane-contact-card-wrap::before{
  content:"Two Ranges · story leads / local yarns / hidden places" !important;
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 0 clamp(1rem,2vw,1.35rem) !important;
  padding:0 0 .45rem !important;
  border:0 !important;
  border-bottom:1px solid rgba(66,93,66,.24) !important;
  border-radius:0 !important;
  color:rgba(66,93,66,.9) !important;
  background:transparent !important;
  box-shadow:none !important;
  text-align:center !important;
  font-size:.72rem !important;
  font-weight:900 !important;
  letter-spacing:.13em !important;
  text-transform:uppercase !important;
}

/* Remove the heavy artificial ridge graphic for now; it was competing with the drawing. */
.two-ranges-contact-hub-wrap .culhane-contact-card-block::before{
  content:none !important;
  display:none !important;
}

.two-ranges-contact-hub-wrap .culhane-contact-card-block{
  grid-template-columns:minmax(360px,1.28fr) minmax(300px,.72fr) !important;
  gap:clamp(1.4rem,4vw,3.2rem) !important;
  align-items:center !important;
}

/* Illustration sits freely, not inside a card. */
.two-ranges-contact-hub.culhane-contact-card{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
}

.two-ranges-contact-hub.culhane-contact-card img{
  filter:drop-shadow(0 14px 24px rgba(17,27,20,.16)) !important;
}

/* Side panel: less contained, more like a note beside the drawing. */
.two-ranges-contact-hub-wrap .culhane-contact-side-panel{
  background:transparent !important;
  border:0 !important;
  border-left:3px solid var(--active-color, var(--tr-green)) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:clamp(.65rem,2vw,1.25rem) 0 clamp(.65rem,2vw,1.25rem) clamp(1rem,2vw,1.35rem) !important;
  min-height:0 !important;
}

.two-ranges-contact-hub-wrap .culhane-contact-side-panel h2{
  margin-top:.2rem !important;
  color:var(--tr-deep) !important;
}

.two-ranges-contact-hub-wrap .culhane-contact-side-panel [data-ccc-side-text]{
  max-width:34rem !important;
  color:rgba(31,45,35,.72) !important;
}

/* Tabs: flatter chips, no bubbly app buttons. */
.two-ranges-contact-hub-wrap .ccc-side-actions{
  gap:.35rem !important;
  margin-bottom:1rem !important;
}

.two-ranges-contact-hub-wrap .ccc-tab,
.two-ranges-contact-hub-wrap .ccc-tab.is-home{
  border-radius:0 !important;
  border:1px solid rgba(66,93,66,.22) !important;
  background:rgba(248,241,216,.56) !important;
  color:var(--tr-deep) !important;
  box-shadow:none !important;
  padding:.35rem .55rem !important;
  font-size:.72rem !important;
  line-height:1.1 !important;
  font-weight:850 !important;
  letter-spacing:.02em !important;
}

.two-ranges-contact-hub-wrap .ccc-tab.is-active,
.two-ranges-contact-hub-wrap .ccc-tab:hover,
.two-ranges-contact-hub-wrap .ccc-tab:focus-visible{
  background:var(--tab-color, var(--tr-green)) !important;
  color:var(--tab-text-color,#fffaf0) !important;
  border-color:transparent !important;
  transform:none !important;
}

/* Panels below: remove floating bubble feeling; use a simple field-note slab. */
.two-ranges-contact-hub-wrap .culhane-contact-panels{
  margin-top:clamp(1.5rem,3vw,2.2rem) !important;
}

.two-ranges-contact-hub-wrap .culhane-contact-panels .ccc-panel{
  border-radius:0 !important;
  border:1px solid rgba(66,93,66,.18) !important;
  border-top:4px solid var(--active-color, var(--tr-green)) !important;
  background:linear-gradient(180deg, rgba(255,250,240,.78), rgba(248,241,216,.66)) !important;
  box-shadow:none !important;
  padding:clamp(1rem,2.4vw,1.6rem) !important;
}

/* Optional texture only inside panels, extremely subtle and not over the whole page. */
.two-ranges-contact-hub-wrap .culhane-contact-panels .ccc-panel::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  opacity:.028 !important;
  background-color:var(--tr-green) !important;
  -webkit-mask-image:url("topography.svg") !important;
          mask-image:url("topography.svg") !important;
  -webkit-mask-repeat:repeat !important;
          mask-repeat:repeat !important;
  -webkit-mask-size:900px auto !important;
          mask-size:900px auto !important;
}

.two-ranges-contact-hub-wrap .culhane-contact-panels .ccc-panel > *{
  position:relative !important;
}

/* Force Two Ranges button colours and remove inherited purple. */
.two-ranges-contact-hub-wrap .ccc-form-actions button,
.two-ranges-contact-hub-wrap .culhane-contact-form button,
.two-ranges-contact-hub-wrap button[type="submit"],
.two-ranges-contact-hub-wrap input[type="submit"]{
  background:#425d42 !important;
  color:#fffaf0 !important;
  border:1px solid #425d42 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-transform:uppercase !important;
  letter-spacing:.05em !important;
  font-weight:900 !important;
}

.two-ranges-contact-hub-wrap .ccc-form-actions button:hover,
.two-ranges-contact-hub-wrap .culhane-contact-form button:hover,
.two-ranges-contact-hub-wrap button[type="submit"]:hover{
  background:#1f2d23 !important;
  border-color:#1f2d23 !important;
}

.two-ranges-contact-hub-wrap .ccc-direct-email{
  border-radius:0 !important;
  border:1px solid rgba(66,93,66,.25) !important;
  background:transparent !important;
  color:#425d42 !important;
  box-shadow:none !important;
  font-weight:850 !important;
}

/* Inputs: no soft rounded bubble style. */
.two-ranges-contact-hub-wrap input,
.two-ranges-contact-hub-wrap textarea{
  border-radius:0 !important;
  background:rgba(255,250,240,.86) !important;
  border:1px solid rgba(66,93,66,.26) !important;
  box-shadow:none !important;
}

/* Local contact cards should be flat list items, not mini bubbles. */
.two-ranges-contact-hub-wrap .tr-local-contact-card{
  border-radius:0 !important;
  box-shadow:none !important;
  border:1px solid rgba(66,93,66,.18) !important;
  background:rgba(255,250,240,.54) !important;
}

.two-ranges-contact-hub-wrap .tr-local-contact-image{
  border-radius:0 !important;
}

@media(max-width:840px){
  .two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
    width:min(100%, calc(100% - 18px)) !important;
    padding:.5rem !important;
  }
  .two-ranges-contact-hub-wrap .culhane-contact-card-block{
    grid-template-columns:1fr !important;
    gap:1rem !important;
  }
  .two-ranges-contact-hub-wrap .culhane-contact-side-panel{
    border-left:0 !important;
    border-top:3px solid var(--active-color, var(--tr-green)) !important;
    padding:.9rem 0 0 !important;
  }
}


/* v0.1.6 — editable CTA and no redundant Home tab */
.two-ranges-contact-hub-wrap.culhane-contact-card-wrap::before{
  content:none !important;
  display:none !important;
}

.tr-contact-hub-intro{
  max-width:760px;
  margin:0 auto clamp(1.25rem,3vw,2rem);
  text-align:center;
  padding-bottom:clamp(.8rem,2vw,1rem);
  border-bottom:1px solid rgba(66,93,66,.20);
}

.tr-contact-hub-kicker{
  margin:0 0 .45rem !important;
  color:#425d42 !important;
  font-size:.78rem !important;
  line-height:1.3 !important;
  letter-spacing:.11em !important;
  text-transform:uppercase !important;
  font-weight:900 !important;
}

.tr-contact-hub-intro h2{
  margin:0 !important;
  color:#1f2d23 !important;
  font-size:clamp(2rem,4vw,3.8rem) !important;
  line-height:.98 !important;
  letter-spacing:-.04em !important;
}

.tr-contact-hub-intro > p:not(.tr-contact-hub-kicker){
  max-width:620px;
  margin:.75rem auto 0 !important;
  color:rgba(31,45,35,.74) !important;
  font-size:clamp(1rem,1.35vw,1.18rem) !important;
  line-height:1.55 !important;
}

/* Hard guard for any legacy saved Home button/tab. */
.two-ranges-contact-hub-wrap .ccc-tab.is-home,
.two-ranges-contact-hub-wrap .ccc-icon-hotspot[data-ccc-key="home"]{
  display:none !important;
}


/* v0.1.7 — mobile layout repair
   The desktop layout was fine, but mobile inherited a few min-width/grid/button
   assumptions from the original contact-card build. This pass prevents horizontal
   overflow and turns the hub into a clean single-column mobile layout. */
.two-ranges-contact-hub-wrap,
.two-ranges-contact-hub-wrap *,
.two-ranges-contact-hub-wrap *::before,
.two-ranges-contact-hub-wrap *::after{
  box-sizing:border-box !important;
}

.two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
  max-width:100% !important;
  overflow-x:clip !important;
}

/* Keep the CTA readable on narrow phones. */
.tr-contact-hub-intro{
  width:100% !important;
  max-width:min(760px,100%) !important;
  overflow:hidden !important;
}

.tr-contact-hub-intro h2,
.tr-contact-hub-intro p{
  overflow-wrap:break-word !important;
  word-break:normal !important;
}

/* General overflow guards. */
.two-ranges-contact-hub-wrap .culhane-contact-card-block,
.two-ranges-contact-hub-wrap .culhane-contact-card,
.two-ranges-contact-hub-wrap .culhane-contact-side-panel,
.two-ranges-contact-hub-wrap .culhane-contact-panels,
.two-ranges-contact-hub-wrap .ccc-panel,
.two-ranges-contact-hub-wrap form{
  max-width:100% !important;
  min-width:0 !important;
}

/* The illustration is a wide transparent PNG; keep it contained. */
.two-ranges-contact-hub.culhane-contact-card img{
  width:100% !important;
  max-width:760px !important;
  height:auto !important;
  margin-inline:auto !important;
  object-fit:contain !important;
}

/* Tabs should wrap rather than create a sideways-scroll strip. */
.two-ranges-contact-hub-wrap .ccc-side-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:flex-start !important;
  align-items:center !important;
  max-width:100% !important;
  overflow:visible !important;
}

.two-ranges-contact-hub-wrap .ccc-tab,
.two-ranges-contact-hub-wrap .ccc-tab.is-home{
  flex:0 1 auto !important;
  max-width:100% !important;
  white-space:normal !important;
  text-align:center !important;
}

/* Form fields must never exceed the phone viewport. */
.two-ranges-contact-hub-wrap .ccc-form-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:1rem !important;
}

.two-ranges-contact-hub-wrap label,
.two-ranges-contact-hub-wrap input,
.two-ranges-contact-hub-wrap textarea,
.two-ranges-contact-hub-wrap select{
  max-width:100% !important;
}

.two-ranges-contact-hub-wrap input,
.two-ranges-contact-hub-wrap textarea,
.two-ranges-contact-hub-wrap select{
  width:100% !important;
}

/* Better mobile actions. */
.two-ranges-contact-hub-wrap .ccc-form-actions{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:.8rem !important;
}

.two-ranges-contact-hub-wrap .ccc-form-actions button,
.two-ranges-contact-hub-wrap .ccc-direct-email{
  width:100% !important;
  justify-content:center !important;
  text-align:center !important;
}

/* Local contact cards: avoid cramped two-column cards on very small screens. */
@media(max-width:560px){
  .two-ranges-contact-hub-wrap .tr-local-contact-card{
    grid-template-columns:1fr !important;
  }
  .two-ranges-contact-hub-wrap .tr-local-contact-image{
    width:76px !important;
    height:76px !important;
  }
}

/* Phone-specific composition. */
@media(max-width:720px){
  body{
    overflow-x:hidden;
  }

  .two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
    width:100% !important;
    padding:1.05rem 1rem !important;
    margin-inline:auto !important;
  }

  .tr-contact-hub-intro{
    margin:0 auto 1.2rem !important;
    padding:0 0 .95rem !important;
  }

  .tr-contact-hub-kicker{
    font-size:.72rem !important;
    line-height:1.35 !important;
    letter-spacing:.09em !important;
  }

  .tr-contact-hub-intro h2{
    font-size:clamp(2.05rem,11vw,3.05rem) !important;
    line-height:1 !important;
    letter-spacing:-.045em !important;
    max-width:100% !important;
  }

  .tr-contact-hub-intro > p:not(.tr-contact-hub-kicker){
    font-size:1rem !important;
    line-height:1.48 !important;
    max-width:100% !important;
  }

  .two-ranges-contact-hub-wrap .culhane-contact-card-block{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:1rem !important;
    width:100% !important;
  }

  .two-ranges-contact-hub.culhane-contact-card{
    width:100% !important;
    margin:0 auto !important;
  }

  .two-ranges-contact-hub.culhane-contact-card img{
    width:100% !important;
    max-width:100% !important;
    transform:none !important;
    filter:drop-shadow(0 10px 16px rgba(17,27,20,.14)) !important;
  }

  .two-ranges-contact-hub-wrap .culhane-contact-side-panel{
    width:100% !important;
    border-left:0 !important;
    border-top:3px solid var(--active-color, var(--tr-green)) !important;
    padding:1rem 0 0 !important;
    margin:0 !important;
  }

  .two-ranges-contact-hub-wrap .ccc-side-actions{
    justify-content:center !important;
    gap:.42rem !important;
    padding:0 !important;
  }

  .two-ranges-contact-hub-wrap .ccc-tab{
    padding:.48rem .66rem !important;
    font-size:.78rem !important;
    line-height:1.1 !important;
  }

  .two-ranges-contact-hub-wrap .culhane-contact-side-panel h2{
    font-size:1.45rem !important;
  }

  .two-ranges-contact-hub-wrap .culhane-contact-panels{
    width:100% !important;
    margin-top:1.25rem !important;
  }

  .two-ranges-contact-hub-wrap .culhane-contact-panels .ccc-panel{
    width:100% !important;
    padding:1.15rem 1rem !important;
    overflow:hidden !important;
  }

  .two-ranges-contact-hub-wrap .ccc-form-head p,
  .two-ranges-contact-hub-wrap .ccc-panel p{
    overflow-wrap:break-word !important;
  }

  .two-ranges-contact-hub-wrap .culhane-contact-form textarea{
    min-height:190px !important;
  }
}


/* v0.1.8 — hard mobile-first layout reset */
html body .two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
  width:100% !important;
  max-width:min(var(--ccc-max-width,1180px), 100%) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:clamp(.9rem,4vw,1.25rem) !important;
  padding-right:clamp(.9rem,4vw,1.25rem) !important;
  overflow:hidden !important;
}
html body .two-ranges-contact-hub-wrap,
html body .two-ranges-contact-hub-wrap *,
html body .two-ranges-contact-hub-wrap *::before,
html body .two-ranges-contact-hub-wrap *::after{
  box-sizing:border-box !important;
}
html body .two-ranges-contact-hub-wrap .culhane-contact-card-block{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:1rem !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
}
html body .two-ranges-contact-hub-wrap .culhane-contact-card,
html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel,
html body .two-ranges-contact-hub-wrap .culhane-contact-panels,
html body .two-ranges-contact-hub-wrap .ccc-panel,
html body .two-ranges-contact-hub-wrap .culhane-contact-form,
html body .two-ranges-contact-hub-wrap .ccc-form-grid,
html body .two-ranges-contact-hub-wrap .ccc-form-actions{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
}
html body .two-ranges-contact-hub-wrap .culhane-contact-card img{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  object-fit:contain !important;
  margin:0 auto !important;
}
html body .two-ranges-contact-hub-wrap .ccc-side-actions{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:.5rem !important;
  width:100% !important;
  max-width:100% !important;
  overflow:visible !important;
}
html body .two-ranges-contact-hub-wrap .ccc-tab,
html body .two-ranges-contact-hub-wrap .ccc-tab.is-home{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:normal !important;
  text-align:center !important;
  padding:.58rem .55rem !important;
}
html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel{
  border-left:0 !important;
  border-top:3px solid var(--active-color, var(--tr-green)) !important;
  padding:1rem 0 0 !important;
  margin:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel > .ccc-kicker,
html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel > h2,
html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel > p{
  display:none !important;
}
html body .two-ranges-contact-hub-wrap .ccc-form-grid{
  display:block !important;
}
html body .two-ranges-contact-hub-wrap .ccc-form-grid > p{
  margin:0 0 1rem !important;
}
html body .two-ranges-contact-hub-wrap label,
html body .two-ranges-contact-hub-wrap input,
html body .two-ranges-contact-hub-wrap textarea,
html body .two-ranges-contact-hub-wrap select{
  max-width:100% !important;
  min-width:0 !important;
}
html body .two-ranges-contact-hub-wrap input,
html body .two-ranges-contact-hub-wrap textarea,
html body .two-ranges-contact-hub-wrap select{
  width:100% !important;
  display:block !important;
}
html body .two-ranges-contact-hub-wrap .ccc-form-actions{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:.85rem !important;
}
html body .two-ranges-contact-hub-wrap .ccc-form-actions button,
html body .two-ranges-contact-hub-wrap .ccc-direct-email{
  width:100% !important;
  max-width:100% !important;
  text-align:center !important;
  justify-content:center !important;
}
html body .two-ranges-contact-hub-wrap .tr-contact-hub-intro{
  width:100% !important;
  max-width:100% !important;
  margin:0 auto 1.1rem !important;
  overflow:hidden !important;
}
html body .two-ranges-contact-hub-wrap .tr-contact-hub-intro h2{
  font-size:clamp(2rem, 10.5vw, 3.2rem) !important;
  line-height:1 !important;
  overflow-wrap:break-word !important;
}
html body .two-ranges-contact-hub-wrap .tr-contact-hub-intro p{
  overflow-wrap:break-word !important;
}
html body .two-ranges-contact-hub-wrap .culhane-contact-panels .ccc-panel{
  padding:1rem !important;
  overflow:hidden !important;
}
html body .two-ranges-contact-hub-wrap .tr-local-contact-card{
  grid-template-columns:1fr !important;
}
@media(min-width:901px){
  html body .two-ranges-contact-hub-wrap.culhane-contact-card-wrap{
    overflow:visible !important;
  }
  html body .two-ranges-contact-hub-wrap .culhane-contact-card-block{
    display:grid !important;
    grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr) !important;
    gap:clamp(1.4rem,4vw,3.2rem) !important;
    align-items:center !important;
  }
  html body .two-ranges-contact-hub-wrap .ccc-side-actions{
    display:flex !important;
    flex-wrap:wrap !important;
    justify-content:flex-start !important;
  }
  html body .two-ranges-contact-hub-wrap .ccc-tab{
    width:auto !important;
  }
  html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel{
    border-top:0 !important;
    border-left:3px solid var(--active-color, var(--tr-green)) !important;
    padding:clamp(.65rem,2vw,1.25rem) 0 clamp(.65rem,2vw,1.25rem) clamp(1rem,2vw,1.35rem) !important;
  }
  html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel > .ccc-kicker,
  html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel > h2,
  html body .two-ranges-contact-hub-wrap .culhane-contact-side-panel > p{
    display:block !important;
  }
  html body .two-ranges-contact-hub-wrap .ccc-form-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:1rem !important;
  }
  html body .two-ranges-contact-hub-wrap .ccc-form-actions{
    display:flex !important;
    flex-wrap:wrap !important;
  }
  html body .two-ranges-contact-hub-wrap .ccc-form-actions button,
  html body .two-ranges-contact-hub-wrap .ccc-direct-email{
    width:auto !important;
  }
  html body .two-ranges-contact-hub-wrap .tr-local-contact-card{
    grid-template-columns:86px minmax(0,1fr) !important;
  }
}
