/* ---------- custom widgets ---------- */

/* Pulse band */
.pulse-band{position:relative;height:90px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink-2)}
.pulse-svg{position:absolute;top:0;left:0;height:100%;width:200%;animation:slide 14s linear infinite}
.pulse-svg path{fill:none;stroke:var(--arterial);stroke-width:1.6}
.pulse-svg path.glow{stroke:var(--oxygen);stroke-width:1.6;stroke-dasharray:90 1400;animation:dash 4.5s linear infinite}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes dash{from{stroke-dashoffset:1490}to{stroke-dashoffset:0}}

/* Hero stats */
.hero-stats{
  margin-top:0;display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
}
.hero-stats div{padding:22px 18px 6px 0;border-right:1px solid var(--line)}
.hero-stats div:last-child{border-right:none}
.hero-stats b{font-family:'Instrument Serif',serif;font-weight:400;font-size:34px;display:block;color:var(--bone)}
.hero-stats span{font-size:12.5px;color:var(--mute);letter-spacing:.06em;text-transform:uppercase}

/* Pillars */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.pillar{background:var(--ink);padding:38px 30px;transition:background .3s}
.pillar:hover{background:var(--ink-2)}
.pillar .num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--arterial);letter-spacing:.2em}
.pillar h3{font-family:'Instrument Serif',serif;font-weight:400;font-size:26px;margin:16px 0 10px;color:var(--bone)}
.pillar p{font-size:15.5px;color:var(--mute)}

/* Services catalog */
.svc-layout{display:grid;grid-template-columns:230px 1fr;gap:56px;align-items:start}
.svc-index{position:sticky;top:calc(var(--header-total, 102px) + 28px);display:flex;flex-direction:column;gap:2px}
.svc-index a{
  padding:10px 14px;font-size:13.5px;letter-spacing:.03em;color:#6d625d;
  border-left:2px solid var(--line-dark);transition:all .2s;
}
.svc-index a:hover,.svc-index a.active{color:var(--arterial);border-left-color:var(--arterial)}
.svc-cat{margin-bottom:78px;scroll-margin-top:calc(var(--header-total, 102px) + 32px)}
.svc-cat-head{display:flex;align-items:baseline;gap:18px;border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:8px}
.svc-cat-head h3{font-family:'Instrument Serif',serif;font-weight:400;font-size:32px;color:var(--ink)}
.svc-cat-head .mono{font-size:12px;color:var(--arterial);letter-spacing:.18em}
.svc-cat > p.catnote{color:#6d625d;font-size:15.5px;margin:12px 0 22px;max-width:64ch}
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.svc-item{
  padding:17px 4px;border-bottom:1px solid var(--line-dark);
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  transition:padding-left .2s;
}
.svc-item:hover{padding-left:12px}
.svc-item b{font-weight:600;font-size:16px;color:var(--ink)}
.svc-item span{font-size:13.5px;color:#8a7e78;text-align:right;white-space:nowrap}

/* Programs */
#programs,
.elementor-element[data-id="programs"],
.regenred-section#programs{
  background:#1A0C10;
}
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.prog{
  border:1px solid rgba(21,10,13,.12);padding:40px 32px;border-radius:6px;
  display:flex;flex-direction:column;background:var(--bone);color:var(--ink);
  box-shadow:0 18px 40px rgba(0,0,0,.28);
  transition:border-color .3s, transform .3s, box-shadow .3s;
}
.prog:hover{border-color:var(--arterial);transform:translateY(-4px);box-shadow:0 22px 48px rgba(179,19,41,.22)}
.prog .tag{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--arterial)}
.prog h3{font-family:'Instrument Serif',serif;font-weight:400;font-size:30px;margin:14px 0 6px;color:var(--ink)}
.prog .price{font-size:14px;color:#6d625d;margin-bottom:22px}
.prog ul{list-style:none;margin-bottom:30px;flex:1}
.prog li{padding:9px 0;border-bottom:1px solid var(--line-dark);font-size:15px;color:#5d5450;display:flex;gap:10px}
.prog li::before{content:"—";color:var(--arterial)}
.prog .btn.ghost{border-color:rgba(21,10,13,.22);color:var(--ink)}
.prog .btn.ghost:hover{border-color:var(--arterial);color:var(--arterial);background:transparent}
.prog.feature{
  background:linear-gradient(165deg, #C9182E 0%, #8E0F21 72%);
  border-color:#FF4D5E;
  color:var(--bone);
  box-shadow:0 22px 50px rgba(179,19,41,.38);
}
.prog.feature .tag{color:#FFD0D5}
.prog.feature h3{color:var(--bone)}
.prog.feature .price{color:rgba(245,239,233,.82)}
.prog.feature li{color:rgba(245,239,233,.88);border-bottom-color:rgba(245,239,233,.18)}
.prog.feature li::before{color:#FFD0D5}
.prog.feature .btn{background:var(--bone);color:var(--arterial)}
.prog.feature .btn:hover{background:#fff;color:var(--arterial);transform:translateY(-1px)}

/* Markers */
.marker-list{display:flex;flex-direction:column;gap:0}
.marker{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--bone)}
.marker .mono{color:var(--oxygen);font-size:13px}

/* Consult form — native Elementor Form styled to match Regenred */
.form{display:flex;flex-direction:column;gap:14px}
.form input,.form select,.form textarea{
  background:var(--ink-2);border:1px solid var(--line);color:var(--bone);
  padding:15px 18px;font-family:inherit;font-size:15px;border-radius:2px;width:100%;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--arterial);outline-offset:-1px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form small,
.regenred-form-note{color:var(--mute);font-size:12.5px;line-height:1.5;display:block}
.form .regenred-form-success{
  font-family:'Instrument Serif',serif;font-size:26px;color:var(--bone);
}

.regenred-elementor-form .elementor-form,
#visit .elementor-form,
.visit-grid .elementor-form{
  display:flex;flex-wrap:wrap;gap:14px;
}
.regenred-elementor-form .elementor-form .elementor-form-fields-wrapper,
#visit .elementor-form .elementor-form-fields-wrapper,
.visit-grid .elementor-form .elementor-form-fields-wrapper{
  display:flex;flex-wrap:wrap;width:100%;margin:0;gap:14px;
}
.regenred-elementor-form .elementor-field-group,
#visit .elementor-field-group,
.visit-grid .elementor-field-group{
  margin:0;padding:0;
}
.regenred-elementor-form .elementor-field-textual,
.regenred-elementor-form input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.regenred-elementor-form select,
.regenred-elementor-form textarea,
#visit .elementor-field-textual,
#visit .elementor-form input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
#visit .elementor-form select,
#visit .elementor-form textarea,
.visit-grid .elementor-field-textual,
.visit-grid .elementor-form input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.visit-grid .elementor-form select,
.visit-grid .elementor-form textarea{
  background:var(--ink-2) !important;
  border:1px solid var(--line) !important;
  color:var(--bone) !important;
  padding:15px 18px !important;
  font-family:inherit !important;
  font-size:15px !important;
  border-radius:2px !important;
  width:100%;
  min-height:0;
  box-shadow:none !important;
}
.regenred-elementor-form .elementor-field-textual:focus,
.regenred-elementor-form input:focus,
.regenred-elementor-form select:focus,
.regenred-elementor-form textarea:focus,
#visit .elementor-form input:focus,
#visit .elementor-form select:focus,
#visit .elementor-form textarea:focus,
.visit-grid .elementor-form input:focus,
.visit-grid .elementor-form select:focus,
.visit-grid .elementor-form textarea:focus{
  outline:2px solid var(--arterial);
  outline-offset:-1px;
  border-color:var(--arterial) !important;
}
.regenred-elementor-form .elementor-field-group select,
#visit .elementor-form select,
.visit-grid .elementor-form select{
  appearance:none;
  background-image:linear-gradient(45deg, transparent 50%, var(--mute) 50%),linear-gradient(135deg, var(--mute) 50%, transparent 50%);
  background-position:calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
}
.regenred-elementor-form .elementor-field-type-html,
#visit .elementor-field-type-html{
  margin-top:0;
}
.regenred-elementor-form .elementor-button[type=submit],
#visit .elementor-form .elementor-button,
.visit-grid .elementor-form .elementor-button{
  display:inline-block;
  width:100%;
  padding:12px 26px !important;
  border-radius:100px !important;
  font-size:14px !important;
  font-weight:600 !important;
  letter-spacing:.05em !important;
  text-transform:uppercase !important;
  background:var(--arterial) !important;
  color:var(--bone) !important;
  border:none !important;
  transition:background .25s, transform .25s;
  font-family:'Instrument Sans',sans-serif !important;
}
.regenred-elementor-form .elementor-button[type=submit]:hover,
#visit .elementor-form .elementor-button:hover,
.visit-grid .elementor-form .elementor-button:hover{
  background:var(--oxygen) !important;
  transform:translateY(-1px);
}
.regenred-elementor-form .elementor-message-success,
#visit .elementor-message-success{
  font-family:'Instrument Serif',serif;
  font-size:26px;
  color:var(--bone);
  background:transparent;
  border:none;
  padding:0;
}
