/* Custom Button by Crafted Campus — all selectors are scoped to this widget. CSS is loaded only when Elementor renders the widget. */
.cc-button-wrap { display:block; max-width:100%; }
.cc-custom-button {
  --cc-btn-bg:#3155d9;
  --cc-btn-color:#fff;
  --cc-btn-hover-bg:#203db1;
  --cc-btn-hover-color:#fff;
  --cc-btn-border:transparent;
  --cc-btn-radius:12px;
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  max-width:100%; min-height:44px; padding:14px 24px; border:1px solid var(--cc-btn-border);
  border-radius:var(--cc-btn-radius); background:var(--cc-btn-bg); color:var(--cc-btn-color);
  font-family:inherit; font-size:15px; font-weight:600; line-height:1.2; text-decoration:none; text-align:center; vertical-align:middle;
  cursor:pointer; overflow:hidden; isolation:isolate; box-sizing:border-box;
  transition: color .26s ease, background-color .26s ease, border-color .26s ease, box-shadow .26s ease, transform .26s ease, filter .26s ease;
  -webkit-tap-highlight-color:transparent;
}
.cc-custom-button *, .cc-custom-button *::before, .cc-custom-button *::after { box-sizing:border-box; }
.cc-custom-button:hover, .cc-custom-button:focus-visible { color:var(--cc-btn-hover-color); background-color:var(--cc-btn-hover-bg); text-decoration:none; }
.cc-custom-button:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
.cc-button-inner { display:inline-flex; align-items:center; justify-content:center; gap:10px; position:relative; z-index:2; max-width:100%; }
.cc-button-label { position:relative; z-index:2; }
.cc-button-icon-wrap { display:inline-flex; align-items:center; justify-content:center; line-height:1; flex:0 0 auto; }
.cc-button-icon { display:inline-block; width:1em; height:1em; font-size:1em; }
.cc-button-icon svg { width:1em; height:1em; fill:currentColor; }
.cc-button-shine { position:absolute; z-index:1; pointer-events:none; }
.cc-size-small .cc-custom-button { padding:10px 17px; min-height:36px; font-size:13px; }
.cc-size-medium .cc-custom-button { padding:14px 24px; min-height:44px; }
.cc-size-large .cc-custom-button { padding:17px 30px; min-height:52px; font-size:16px; }
.cc-size-xl .cc-custom-button { padding:20px 36px; min-height:60px; font-size:17px; }

/* Hover motion choices */
.cc-hover-lift .cc-custom-button:hover { transform:translateY(-3px); }
.cc-hover-scale .cc-custom-button:hover { transform:scale(1.035); }
.cc-hover-rotate .cc-custom-button:hover { transform:translateY(-2px) rotate(-1deg); }
.cc-hover-glow .cc-custom-button:hover { box-shadow:0 0 0 4px rgba(49,85,217,.12), 0 12px 32px rgba(49,85,217,.28); }
.cc-hover-slide .cc-custom-button:hover .cc-button-icon-wrap { transform:translateX(4px); }
.cc-button-icon-wrap { transition:transform .26s ease; }

/* 01 Solid Lift */
.cc-style-solid-lift { --cc-btn-bg:#2457e6; --cc-btn-hover-bg:#173db3; --cc-btn-color:#fff; --cc-btn-hover-color:#fff; --cc-btn-radius:12px; box-shadow:0 7px 18px rgba(36,87,230,.18); }
.cc-style-solid-lift:hover { box-shadow:0 12px 25px rgba(36,87,230,.28); }
/* 02 Gradient Glow */
.cc-style-gradient-glow { --cc-btn-bg:linear-gradient(110deg,#6d35e8,#ec4899); --cc-btn-hover-bg:linear-gradient(110deg,#5425c7,#d92c83); --cc-btn-color:#fff; --cc-btn-hover-color:#fff; border:0; box-shadow:0 8px 22px rgba(145,58,208,.25); }
/* 03 Outline Sweep */
.cc-style-outline-sweep { --cc-btn-bg:transparent; --cc-btn-hover-bg:#172554; --cc-btn-color:#172554; --cc-btn-hover-color:#fff; --cc-btn-border:#172554; border-width:2px; }
.cc-style-outline-sweep::before { content:""; position:absolute; inset:0; z-index:0; background:var(--cc-btn-hover-bg); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.cc-style-outline-sweep:hover::before { transform:scaleX(1); }
/* 04 Underline Slide */
.cc-style-underline-slide { --cc-btn-bg:transparent; --cc-btn-hover-bg:transparent; --cc-btn-color:#1d2b53; --cc-btn-hover-color:#2457e6; border:0; border-radius:0; padding-left:2px; padding-right:2px; overflow:visible; }
.cc-style-underline-slide::after { content:""; position:absolute; left:0; right:0; bottom:4px; height:2px; background:currentColor; transform:scaleX(.25); transform-origin:left; transition:transform .28s ease; }
.cc-style-underline-slide:hover::after { transform:scaleX(1); }
/* 05 Soft Pill */
.cc-style-soft-pill { --cc-btn-bg:#e8edff; --cc-btn-hover-bg:#d7e0ff; --cc-btn-color:#243a82; --cc-btn-hover-color:#14275e; --cc-btn-radius:999px; }
/* 06 Glass */
.cc-style-glass { --cc-btn-bg:rgba(255,255,255,.16); --cc-btn-hover-bg:rgba(255,255,255,.27); --cc-btn-color:#20304f; --cc-btn-hover-color:#20304f; --cc-btn-border:rgba(110,130,170,.45); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); box-shadow:inset 0 1px rgba(255,255,255,.55),0 8px 24px rgba(31,49,84,.08); }
/* 07 Neon Edge */
.cc-style-neon { --cc-btn-bg:#111827; --cc-btn-hover-bg:#111827; --cc-btn-color:#8bfff1; --cc-btn-hover-color:#fff; --cc-btn-border:#32e6d0; border-width:1px; box-shadow:inset 0 0 0 1px rgba(50,230,208,.12),0 0 18px rgba(50,230,208,.15); }
.cc-style-neon:hover { box-shadow:inset 0 0 0 1px rgba(50,230,208,.45),0 0 25px rgba(50,230,208,.35); }
/* 08 Cut Corner */
.cc-style-corner-cut { --cc-btn-bg:#f2b705; --cc-btn-hover-bg:#d89f00; --cc-btn-color:#192033; --cc-btn-hover-color:#111827; --cc-btn-radius:2px; clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px)); }
/* 09 Double Border */
.cc-style-double-border { --cc-btn-bg:#fff; --cc-btn-hover-bg:#172554; --cc-btn-color:#172554; --cc-btn-hover-color:#fff; --cc-btn-border:#172554; border:3px double var(--cc-btn-border); }
/* 10 Arrow Shift */
.cc-style-arrow-shift { --cc-btn-bg:#172554; --cc-btn-hover-bg:#2457e6; --cc-btn-color:#fff; --cc-btn-hover-color:#fff; --cc-btn-radius:8px; }
.cc-style-arrow-shift:hover .cc-button-icon-wrap { transform:translateX(6px); }
/* 11 Fill Up */
.cc-style-fill-up { --cc-btn-bg:transparent; --cc-btn-hover-bg:#0f766e; --cc-btn-color:#0f766e; --cc-btn-hover-color:#fff; --cc-btn-border:#0f766e; border-width:2px; }
.cc-style-fill-up::before { content:""; position:absolute; inset:0; z-index:0; background:var(--cc-btn-hover-bg); transform:translateY(105%); transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.cc-style-fill-up:hover::before { transform:translateY(0); }
/* 12 Shine Sweep */
.cc-style-shine { --cc-btn-bg:#111827; --cc-btn-hover-bg:#1f2937; --cc-btn-color:#fff; --cc-btn-hover-color:#fff; --cc-btn-radius:10px; }
.cc-style-shine .cc-button-shine { top:-40%; left:-70%; width:45%; height:180%; transform:rotate(22deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent); transition:left .55s ease; }
.cc-style-shine:hover .cc-button-shine { left:135%; }
/* 13 Soft 3D */
.cc-style-soft-3d { --cc-btn-bg:#0f766e; --cc-btn-hover-bg:#0b5d57; --cc-btn-color:#fff; --cc-btn-hover-color:#fff; --cc-btn-radius:10px; box-shadow:0 5px 0 #084e49,0 9px 18px rgba(15,118,110,.18); transform:translateY(0); }
.cc-style-soft-3d:hover { box-shadow:0 2px 0 #084e49,0 5px 12px rgba(15,118,110,.2); transform:translateY(3px); }
/* 14 Minimal Text */
.cc-style-minimal { --cc-btn-bg:transparent; --cc-btn-hover-bg:transparent; --cc-btn-color:#2457e6; --cc-btn-hover-color:#173db3; border:0; border-radius:0; padding-left:0; padding-right:0; box-shadow:none; }
.cc-style-minimal .cc-button-label { border-bottom:1px solid transparent; transition:border-color .25s ease; }
.cc-style-minimal:hover .cc-button-label { border-color:currentColor; }
/* 15 Gradient Border */
.cc-style-gradient-border { --cc-btn-bg:#fff; --cc-btn-hover-bg:#f8f7ff; --cc-btn-color:#4c2bc4; --cc-btn-hover-color:#351b9c; border:2px solid transparent; background:linear-gradient(var(--cc-btn-bg),var(--cc-btn-bg)) padding-box,linear-gradient(110deg,#6d35e8,#ec4899,#f59e0b) border-box; }
.cc-style-gradient-border:hover { background:linear-gradient(var(--cc-btn-hover-bg),var(--cc-btn-hover-bg)) padding-box,linear-gradient(110deg,#ec4899,#6d35e8,#f59e0b) border-box; }

/* Keep user-specified background controls usable across presets. */
.cc-custom-button:disabled { opacity:.6; cursor:not-allowed; }
@media (prefers-reduced-motion: reduce) {
  .cc-custom-button, .cc-custom-button *, .cc-custom-button::before, .cc-custom-button::after { transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
}
@media (max-width: 767px) {
  .cc-custom-button { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
}
