/*
 Theme Name:   Limitless
 Theme URI:    https://www.limitlessdigital.dev
 Description:  Limitless Digital Theme
 Author:       Curtis
 Author URI:   https://www.limitlessdigital.dev
 Template:     blocksy
 Version:      1.0.0
 Text Domain:  blocksy-child
*/

/* =========================================================
   Global Variables (Top Dogs / Limitless)
   ========================================================= */

:root {
  --td-red: #d11f2a;
  --td-red-alt: #d11b24;
  --ld-blue: #5297D7;
  --ld-blue-hover: #4A8AC5;


  --td-dark: rgba(20, 20, 20, .92);
  --td-dark-border: rgba(255, 255, 255, .10);

  --td-radius-lg: 18px;
  --td-radius-md: 16px;
  --td-radius-sm: 12px;

  --td-shadow-soft: 0 10px 26px rgba(0, 0, 0, .25);
  --td-shadow-strong: 0 18px 60px rgba(0, 0, 0, .35);

  --td-transition: .18s ease;
}

/* =========================================================
   Footer "Made with ♥ in Ballymena"
   ========================================================= */

.footer-love {
  background: var(--footer-bg-color, var(--theme-palette-color-4)) !important;
  color: var(--theme-palette-color-5);
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  width: 100%;
  margin: 0 auto;
  padding: 14px 0;
}

.footer-love span {
  margin: 0 .35em;
  color: #ff5c5c;
  display: inline-block;
  transform-origin: center;
  animation: heartbeat 1.6s infinite ease-in-out;
}

.footer-love a {
  color: var(--ld-blue) !important;
  font-weight: 800;
  text-decoration: none;
  transition: color .18s ease, text-decoration-color .18s ease;
}

.footer-love a:hover,
.footer-love a:focus {
  color: var(--ld-blue-hover) !important;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}



@keyframes heartbeat {
  0% {
    transform: scale(1)
  }

  20% {
    transform: scale(1.25)
  }

  35% {
    transform: scale(.95)
  }

  50% {
    transform: scale(1.2)
  }

  100% {
    transform: scale(1)
  }
}

/* =========================================================
   Services (Top Dogs Premium Cards)
   ========================================================= */

.topdogs-services-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin-top: 28px;
}

@media (max-width:900px) {
  .topdogs-services-grid {
    grid-template-columns: 1fr
  }
}

.topdogs-service {
  position: relative;
  background: var(--td-dark);
  border: 1px solid var(--td-dark-border);
  border-radius: var(--td-radius-lg);
  padding: 22px 22px 20px;
  overflow: hidden;

  box-shadow: var(--td-shadow-strong);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

/* Accent strip */
.topdogs-service::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--td-red), rgba(209, 31, 42, 0));
}

/* Subtle red glow */
.topdogs-service::after {
  content: "";
  position: absolute;
  inset: -60px -60px auto auto;
  width: 180px;
  height: 180px;
  pointer-events: none;
  background: radial-gradient(circle, rgba(209, 31, 42, .16), transparent 60%);
}

.topdogs-service:hover {
  transform: translateY(-6px);
  border-color: rgba(209, 31, 42, .35);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .55);
}

.topdogs-service h3 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 1.1rem;
  letter-spacing: .2px;
}

.topdogs-service p {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, .72);
  font-size: .95rem;
  line-height: 1.55;
}

/* Meta pills */
.topdogs-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 18px;
  color: rgba(255, 255, 255, .75);
  font-size: .9rem;
}

.topdogs-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .08);
}

.topdogs-pill svg {
  width: 16px;
  height: 16px;
  opacity: .85;
}

/* CTA button */
.topdogs-service .topdogs-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 12px 14px;
  border-radius: var(--td-radius-sm);
  background: var(--td-red);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: .2px;
  transition: transform .2s ease, filter .2s ease;
}

.topdogs-service .topdogs-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
}

/* =========================================================
   Smash Balloon Instagram Feed Styling
   ========================================================= */

#sb_instagram {
  max-width: 1150px;
  margin: 0 auto;
}

/* Remove header spacing */
#sb_instagram .sb_instagram_header,
#sb_instagram .sbi_header_text,
#sb_instagram .sbi_header_img {
  margin: 0 !important;
  padding: 0 !important;
}

/* Grid spacing */
#sb_instagram #sbi_images {
  gap: 14px !important;
  padding: 0 !important;
}

/* Post cards */
#sb_instagram .sbi_item {
  position: relative;
  overflow: hidden !important;
  border-radius: var(--td-radius-md) !important;

  background: rgba(255, 255, 255, .03);
  border: 1px solid rgba(255, 255, 255, .08);

  box-shadow: var(--td-shadow-soft);
  transition: transform var(--td-transition), box-shadow var(--td-transition);
}

/* Image wrapper */
#sb_instagram .sbi_photo {
  overflow: hidden !important;
  border-radius: var(--td-radius-md) !important;
}

#sb_instagram .sbi_photo img {
  filter: contrast(1.02) saturate(1.05);
}

/* Hover effect */
#sb_instagram .sbi_item:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, .35);
}

/* Hover overlay */
#sb_instagram .sbi_item::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: rgba(0, 0, 0, .12);
  opacity: 0;
  transition: opacity var(--td-transition);
}

#sb_instagram .sbi_item:hover::after {
  opacity: 1;
}

/* Hide icon overlays / captions */
#sb_instagram .sbi_instagram_link,
#sb_instagram .sbi_caption {
  display: none !important;
}

/* Follow button */
#sb_instagram .sbi_follow_btn a {
  background: var(--td-red-alt) !important;
  color: #fff !important;

  border-radius: var(--td-radius-sm) !important;
  padding: 12px 16px !important;

  font-weight: 700 !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;

  box-shadow: var(--td-shadow-soft) !important;
  transition: transform var(--td-transition), filter var(--td-transition);
}

#sb_instagram .sbi_follow_btn a:hover {
  transform: translateY(-2px);
  filter: brightness(1.08);
}

#sb_instagram .sbi_follow_btn a:focus {
  outline: none !important;
  box-shadow: 0 0 0 4px rgba(209, 27, 36, .25) !important;
}

/* Mobile adjustments */
@media (max-width:768px) {
  #sb_instagram #sbi_images {
    gap: 10px !important
  }

  #sb_instagram .sbi_item,
  #sb_instagram .sbi_photo {
    border-radius: 14px !important
  }

  #sb_instagram .sbi_follow_btn a {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
  }
}

/* =========================================================
   Smash Balloon Reviews (Classic / Free) - Top Dogs Style
   Container: #sb-reviews-container-1
   ========================================================= */

#sb-reviews-container-1 {
  max-width: 1100px;
  margin: 0 auto;
}

/* Desktop grid */
@media (min-width:900px) {
  #sb-reviews-container-1 .sb-feed-posts {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
  }

  #sb-reviews-container-1 .sb-post-item-wrap {
    margin: 0 !important
  }

  /* Clamp long reviews (keeps grid balanced) */
  #sb-reviews-container-1 .sb-item-text {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}

/* Mobile spacing */
@media (max-width:899px) {
  #sb-reviews-container-1 .sb-post-item-wrap {
    margin-bottom: 18px !important
  }
}

/* Remove plugin borders/padding */
#sb-reviews-container-1 .sb-post-item-wrap {
  border: none !important;
  padding: 0 !important;
}

/* Review card */
#sb-reviews-container-1 .sb-post-item {
  position: relative;
  background: var(--td-dark) !important;
  border: 1px solid var(--td-dark-border) !important;
  border-radius: var(--td-radius-lg) !important;
  padding: 20px 20px 18px !important;
  overflow: hidden !important;

  box-shadow: var(--td-shadow-strong) !important;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

/* Accent strip */
#sb-reviews-container-1 .sb-post-item::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--td-red), rgba(209, 31, 42, 0));
}

/* Subtle glow */
#sb-reviews-container-1 .sb-post-item::after {
  content: "";
  position: absolute;
  inset: -60px -60px auto auto;
  width: 180px;
  height: 180px;
  background: radial-gradient(circle, rgba(209, 31, 42, .14), transparent 60%);
  pointer-events: none;
}

/* Hover lift */
#sb-reviews-container-1 .sb-post-item:hover {
  transform: translateY(-5px);
  border-color: rgba(209, 31, 42, .35) !important;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .55) !important;
}

/* Remove internal wrapper styling */
#sb-reviews-container-1 .sb-item-author-date-ctn,
#sb-reviews-container-1 .sb-item-author-ctn,
#sb-reviews-container-1 .sb-item-name-date {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Google badge top-right */
#sb-reviews-container-1 .sb-item-provider-icon {
  position: absolute;
  top: 18px;
  right: 18px;
  opacity: .85;
}

#sb-reviews-container-1 .sb-item-provider-icon img {
  width: 18px !important;
  height: 18px !important;
}

/* Name/date */
#sb-reviews-container-1 .sb-item-author-name {
  font-weight: 800 !important;
  font-size: 15px !important;
  color: rgba(255, 255, 255, .92) !important;
}

#sb-reviews-container-1 .sb-item-author-date {
  font-size: 13px !important;
  color: rgba(255, 255, 255, .45) !important;
}

/* Stars */
#sb-reviews-container-1 .sb-item-rating {
  margin: 10px 0 12px !important;
  padding: 0 !important;
}

#sb-reviews-container-1 .sb-item-rating-icon svg path {
  fill: var(--td-red-alt) !important;
}

/* Review text */
#sb-reviews-container-1 .sb-item-text {
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: rgba(255, 255, 255, .72) !important;
  margin-top: 6px !important;
}

/* Hide expand control */
#sb-reviews-container-1 .sb-expand {
  display: none !important;
}

/* Mobile tweaks */
@media (max-width:768px) {
  #sb-reviews-container-1 .sb-post-item {
    border-radius: var(--td-radius-md) !important;
    padding: 18px !important;
  }
}

/* =========================================================
   Top Dogs Footer Widgets (Clean + No Floating)
   ========================================================= */

.ct-footer [data-row="middle"] .ct-container {
  max-width: 1150px;
  margin: 0 auto;
  padding: 0 20px;
}

.ct-footer .widget {
  width: 100%;
}

/* Footer widget typography */
.td-footer-box {
  color: rgba(255, 255, 255, .86);
  font-size: 14px;
  line-height: 1.6;
}

/* Titles */
.td-footer-title {
  color: #fff;
  font-weight: 800;
  font-size: 16px;
  margin: 0 0 12px;
  letter-spacing: .2px;
  position: relative;
  padding-bottom: 10px;
}

.td-footer-title::after {
  content: "";
  display: block;
  width: 42px;
  height: 3px;
  margin-top: 10px;
  border-radius: 999px;
  background: var(--td-red-alt);
}

/* Text */
.td-footer-text {
  margin: 0 0 14px;
  color: rgba(255, 255, 255, .78);
}

.td-footer-text strong {
  color: #fff
}

/* Divider for combined widget */
.td-footer-divider {
  height: 1px;
  margin: 18px 0;
  background: rgba(255, 255, 255, .10);
}

/* Badges */
.td-footer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.td-footer-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .10);
  color: rgba(255, 255, 255, .86);
  font-weight: 700;
  font-size: 12px;
}

/* Links */
.td-footer-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}

.td-footer-link {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  text-decoration: none;
  color: rgba(255, 255, 255, .82);
  font-weight: 700;
  transition: transform .18s ease, color .18s ease;
}

.td-footer-link:hover {
  color: #fff;
  transform: translateX(2px);
}

/* Hours list */
.td-footer-hours-list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
}

.td-footer-hours-list li {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.td-footer-hours-list li:last-child {
  border-bottom: none
}

.td-footer-hours-list span:first-child {
  color: rgba(255, 255, 255, .88);
  font-weight: 800;
}

.td-footer-hours-list span:last-child {
  color: rgba(255, 255, 255, .70)
}

.td-footer-closed span:last-child {
  color: rgba(255, 255, 255, .45)
}

/* Footer Book Button */
.td-footer-book {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;

  background: var(--td-red) !important;
  color: #fff !important;
  font-weight: 900 !important;

  text-decoration: none !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .35) !important;

  transition: transform .18s ease, background-color .18s ease, filter .18s ease;
}

.td-footer-book:hover,
.td-footer-book:focus {
  background: var(--td-red-alt) !important;
  color: #fff !important;
  transform: translateY(-2px);
  filter: brightness(1.05);
}

.td-footer-book:visited {
  color: #fff !important
}

/* =========================================================
   Footer Mobile fix: Remove Blocksy centering ("floating")
   ========================================================= */

@media (max-width:768px) {

  .ct-footer [data-row="middle"] .ct-container,
  .ct-footer [data-row="middle"] .ct-widget-area,
  .ct-footer .ct-footer-widgets,
  .ct-footer .ct-footer-widgets>div {
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
  }

  .ct-footer .widget {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 22px 0 !important;
    text-align: left !important;
  }

  .td-footer-title::after {
    margin-left: 0 !important;
    margin-right: auto !important;
  }

  .td-footer-badge {
    width: 100%;
    justify-content: flex-start;
    padding: 10px 14px;
  }

  .td-footer-link {
    width: 100%;
    justify-content: flex-start;
  }
}

/* =========================================================
   Top Dogs: Stackable Hero Buttons + Navbar Button Styling
   ========================================================= */

/* ---------- 1) HERO BUTTONS (Stackable) ---------- */

/* Stackable buttons wrapper */
.hero-content .stk-block-button a,
.hero-content .stk-button,
.hero-content a.stk-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 14px 22px !important;
  border-radius: 999px !important;

  font-weight: 900 !important;
  letter-spacing: .2px !important;
  text-decoration: none !important;

  transition: transform .18s ease, background-color .18s ease, filter .18s ease, border-color .18s ease !important;
}

/* Primary hero button (Book Appointment) */
.hero-content .stk-block-button:first-child a,
.hero-content .stk-block-button:nth-child(1) a {
  background: var(--td-red) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  box-shadow: 0 14px 45px rgba(0, 0, 0, .40) !important;
}

.hero-content .stk-block-button:first-child a:hover,
.hero-content .stk-block-button:nth-child(1) a:hover {
  background: var(--td-red-alt) !important;
  transform: translateY(-2px) !important;
  filter: brightness(1.05) !important;
}

/* Secondary hero button (Our Services) */
.hero-content .stk-block-button:nth-child(2) a {
  background: rgba(0, 0, 0, .18) !important;
  color: rgba(255, 255, 255, .95) !important;
  border: 1px solid rgba(255, 255, 255, .30) !important;
  backdrop-filter: blur(8px);
}

.hero-content .stk-block-button:nth-child(2) a:hover {
  background: rgba(0, 0, 0, .28) !important;
  border-color: rgba(255, 255, 255, .55) !important;
  transform: translateY(-2px) !important;
}

/* Stackable button spacing */
.hero-content .stk-block-buttons,
.hero-content .wp-block-stackable-buttons,
.hero-content .stk-button-group {
  gap: 12px !important;
}

/* Mobile: stack the hero buttons */
@media (max-width: 768px) {

  .hero-content .stk-block-buttons,
  .hero-content .wp-block-stackable-buttons,
  .hero-content .stk-button-group {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .hero-content .stk-block-button a,
  .hero-content .stk-button {
    width: 100% !important;
  }
}


/* ---------- 2) NAVBAR MENU LINKS (Blocksy) ---------- */

.ct-header [data-id="menu"] .menu>li>a,
.ct-header .ct-menu-link {
  font-weight: 800 !important;
  letter-spacing: .2px !important;
  color: rgba(255, 255, 255, .92) !important;
  opacity: .9;
  transition: opacity .18s ease, transform .18s ease, color .18s ease !important;
}

.ct-header [data-id="menu"] .menu>li>a:hover,
.ct-header .ct-menu-link:hover {
  opacity: 1;
  color: #fff !important;
  transform: translateY(-1px);
}


/* ---------- 3) NAVBAR BOOK NOW BUTTON (Blocksy Header Button) ---------- */

/* targets common Blocksy header button setups */
.ct-header [data-id="button"] a,
.ct-header .ct-header-cta a,
.ct-header a.ct-button,
.ct-header .ct-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 10px 18px !important;
  border-radius: 999px !important;

  background: var(--td-red) !important;
  color: #fff !important;

  font-weight: 900 !important;
  letter-spacing: .2px !important;

  border: 1px solid rgba(255, 255, 255, .14) !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .35) !important;

  transition: transform .18s ease, filter .18s ease, background-color .18s ease !important;
}

.ct-header [data-id="button"] a:hover,
.ct-header .ct-header-cta a:hover,
.ct-header a.ct-button:hover,
.ct-header .ct-button:hover {
  background: var(--td-red-alt) !important;
  transform: translateY(-2px) !important;
  filter: brightness(1.05) !important;
}