/*
Theme Name: Toronto Carpet Cleaners
Author: Ricky
Description: Your description goes here
Version: 1.0
Template: generatepress

This is the child theme for GeneratePress theme, generated with Generate Child Theme plugin by catchthemes.

(optional values you can add: Theme URI, Author URI, License, License URI, Tags, Text Domain)
*/
h3 { 
	
	margin-bottom: 5px !important;}

.btn-transition {
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.btn-transition:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Transition */

.btn-gold .elementor-button{

    transition: all .25s ease !important;
    will-change: transform;

}

/* Hover */

.btn-gold .elementor-button:hover{

    transform: translateY(-2px) !important;
    box-shadow: 0 12px 24px -8px rgba(243,185,23,.85) !important;

}
/* ==========================================
   Hero Subtitle Badge
========================================== */

.elementskit-section-subtitle{

    display:inline-flex;
    align-items:center;
    gap:10px;

    padding:10px 22px;

    background:#edf4fb;
    border:1px solid #d9e6f3;
    border-radius:999px;

    color:#0056a6;

    font-family:"Plus Jakarta Sans",sans-serif;
    font-size:14px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:2px;
    line-height:1;

    margin-bottom:20px;

}

/* Yellow Dot */

.elementskit-section-subtitle::before{

    content:"";

    width:8px;
    height:8px;

    border-radius:50%;

    background:#f3b917;

    flex-shrink:0;

}


.float-up-down{

    animation: floatUpDown 6s ease-in-out infinite;

    will-change: transform;
	z-index: -1;
}

@keyframes floatUpDown{

    0%{

        transform: translateY(0);

    }

    25%{

        transform: translateY(-6px);

    }

    50%{

        transform: translateY(-12px);

    }

    75%{

        transform: translateY(-6px);

    }

    100%{

        transform: translateY(0);

    }

}


/* ======================================
   Clients Bar
====================================== */

.clients-bar{

    width:100%;

    padding:10px 0;

    background:#F6F6F2;

    border-top:1px solid #E3E1D9;

    border-bottom:1px solid #E3E1D9;

    overflow:hidden;

}

/* ======================================
   Inner
====================================== */

.clients-inner{

    display:flex;

    align-items:center;

    gap:24px;

}

/* ======================================
   Label
====================================== */

.clients-label{

    flex-shrink:0;

    margin-left:30px;

    padding:10px 18px;

    border-radius:999px;

    background:#FFFFFF;

    border:1px solid #0066b3;

    font-family:"Space Mono",monospace;

    font-size:13px;

    font-weight:600;

    letter-spacing:.08em;

    text-transform:uppercase;

    color:#0066b3;

}

/* ======================================
   Track
====================================== */

.clients-track{

    overflow:hidden;

    flex:1;

}

/* ======================================
   Marquee
====================================== */

.clients-marquee{

    display:flex;

    align-items:center;

    gap:18px;

    width:max-content;

    animation:clientsScroll 30s linear infinite;

}

/* ======================================
   Items
====================================== */

.clients-marquee span{

    display:flex;

    align-items:center;

    justify-content:center;

    padding:9px 24px;

    border-radius:999px;

    border:1px solid #D9D7CF;

    background:#FFFFFF;

    color:#344452;

    font-family:"Inter",sans-serif;

    font-size:16px;

    font-weight:500;

    white-space:nowrap;

    transition:.3s;

}

.clients-marquee span:hover{

    border-color:#f3b917;
    color:#f3b917;

    

}

/* ======================================
   Animation
====================================== */

@keyframes clientsScroll{

    from{

        transform:translateX(0);

    }

    to{

        transform:translateX(-50%);

    }

}

/* ======================================
   Tablet
====================================== */

@media(max-width:1024px){

.clients-inner{

gap:16px;

}

.clients-label{

margin-left:16px;

font-size:12px;

}

.clients-marquee span{

padding:12px 20px;

font-size:15px;

}

}

/* ======================================
   Mobile
====================================== */

@media(max-width:767px){

.clients-inner{

flex-direction:column;

align-items:flex-start;

gap:14px;

}

.clients-label{

margin-left:16px;

}

.clients-track{

width:100%;

}

.clients-marquee span{

padding:10px 18px;

font-size:14px;

}

}

@media (max-width:1024px){

    .e-con{

        --padding-top: 20px !important;
        --padding-bottom: 20px !important;
        --padding-left: 15px !important;
        --padding-right: 15px !important;

    }

}

@media (max-width:767px){

    .e-con{

        --padding-top: 15px !important;
        --padding-bottom: 15px !important;
        --padding-left: 12px !important;
        --padding-right: 12px !important;

    }

}




.hover-lift {
    transition: transform .3s ease, box-shadow .3s ease;
}

.hover-lift:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px -24px rgba(0, 40, 80, .25);
}




/* =========================================
   Premium Service Badge
========================================= */

.service-card .elementskit-info-image-box{
    position:relative;
    overflow:hidden;
}

.service-card .elementskit-box-header{
    position:relative;
}

/* Common Badge */

.service-card .elementskit-box-header::before{

    position:absolute;

    left:22px;

    bottom:18px;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:7px 15px;

    border-radius:999px;

    background:#F3B917;

    color:#0B2F5B;

    font-family:"Plus Jakarta Sans",sans-serif;

    font-size:15px;

    font-weight:700;

    z-index:9;

    box-shadow:
    0 8px 25px rgba(243,185,23,.35);

    animation:badgeFlash 2.5s infinite;

}

/* Badge Text */

.badge-commercial .elementskit-box-header::before{
    content:"Commercial";
}

.badge-residential .elementskit-box-header::before{
    content:"Residential";
}

.badge-emergency .elementskit-box-header::before{
    content:"24/7 Emergency";
}

/* Flash Animation */

@keyframes badgeFlash{

    0%{
        box-shadow:0 0 0 0 rgba(243,185,23,.65);
    }

    70%{
        box-shadow:0 0 0 18px rgba(243,185,23,0);
    }

    100%{
        box-shadow:0 0 0 0 rgba(243,185,23,0);
    }

}

/* Hover */

.service-card:hover .elementskit-box-header::before{

    transform:translateY(-2px);

    transition:.3s;

}






.ekit-wid-con .ekit_testimonial_style_5 .ekit-testimonial--avatar {
    display: none;
}


/*==================================
 Service Area Grid
==================================*/

.loc-grid{

    display:grid;

    grid-template-columns:repeat(5,1fr);

    gap:14px;

}

.loc-grid a{

    display:flex;

    justify-content:center;

    align-items:center;

    min-height:56px;

    padding:14px 18px;

    background:#fff;

    border:1px solid #E6EAF0;

    border-radius:14px;

    text-decoration:none;

    color:#0A4D8C;

    font-family:"Inter",sans-serif;

    font-size:15px;

    font-weight:600;

    transition:all .3s ease;

    box-shadow:0 8px 20px rgba(0,0,0,.04);

    position:relative;

    overflow:hidden;

}

/* Left Gold Bar */

.loc-grid a::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:4px;

    height:100%;

    background:#094b87;

    transition:.3s;

}

/* Hover */

.loc-grid a:hover{

    background:#0A4D8C;

    color:#fff;

    border-color:#0A4D8C;

    transform:translateY(-4px);

    box-shadow:0 18px 35px rgba(10,77,140,.20);

}

.loc-grid a:hover::before{

    width:100%;

    opacity:.08;

}

/* Tablet */

@media(max-width:1024px){

.loc-grid{

grid-template-columns:repeat(4,1fr);

}

}

@media(max-width:768px){

.loc-grid{

grid-template-columns:repeat(2,1fr);

gap:12px;

}

}

@media(max-width:480px){

.loc-grid{

grid-template-columns:1fr;

}

}





/*==========================================
  PREMIUM FAQ
==========================================*/

.premium-faq{

    max-width:100%;

}

.premium-faq .faq-item{

    background:#fff;

    border:1px solid #D9E5EF;

    border-radius:18px;

    margin-bottom:8px;

    overflow:hidden;

    transition:all .3s ease;

    box-shadow:0 8px 25px rgba(0,0,0,.04);

}

.premium-faq .faq-item:hover{

    border-color:#BDD5EA;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

}

/* Active */

.premium-faq .faq-item.active{

    border-color:#D9E5EF;

}

/* Question */

.premium-faq .faq-question{

    width:100%;

    background:none;

    border:none;

    outline:none;

    display:flex;

    align-items:center;

    justify-content:space-between;

    cursor:pointer;

    padding:15px 30px;

    text-align:left;

    font-family:"Plus Jakarta Sans",sans-serif;

    font-size:16px;

    font-weight:600;

    color:#062C4D;

}

/* Icon */

.premium-faq .faq-icon{

    width:35px;

    height:35px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#F3B917;

    font-size:30px;

    font-weight:600;

    flex-shrink:0;

    transition:.35s;

}

/* Answer */

.premium-faq .faq-answer{

    max-height:0;

    overflow:hidden;

    transition:max-height .45s ease;

}

.premium-faq .faq-answer p{

    margin:0;

    padding:0 30px 28px;

    font-size:15px;

    line-height:1.8;

    color:#596B7B;

    font-family:"Inter",sans-serif;

}

/* H3 inside FAQ Button */

.premium-faq .faq-question h3{

    margin:0;

    padding:0;

    flex:1;

    font-family:inherit;

    font-size:inherit;

    font-weight:inherit;

    line-height:inherit;

    color:inherit;

    text-align:left;

}









/* Hover */

.premium-faq .faq-question:hover{

    color:#004B87;

}

/* Mobile */

@media(max-width:991px){

.premium-faq .faq-question{

font-size:16px;

padding:22px 22px;

}

.premium-faq .faq-answer p{

padding:0 22px 22px;

font-size:15px;

}

}

@media(max-width:767px){

.premium-faq .faq-question{

font-size:16px;

line-height:1.5;

padding:18px;

}

.premium-faq .faq-answer p{

padding:0 18px 18px;

font-size:15px;

}

.premium-faq .faq-icon{

font-size:25px;

width:30px;

height:30px;

}

}



/* =========================================================
   PREMIUM CONDO CARPET CLEANING PRICING TABLE
========================================================= */

.cpc-pricing {
  --cpc-navy: #073b63;
  --cpc-navy-dark: #052c4b;
  --cpc-blue: #0879cf;
  --cpc-text: #14283a;
  --cpc-muted: #718294;
  --cpc-border: #dce5ec;

  width: 100%;
  max-width: 1120px;
  margin: 0 auto;

  font-family: inherit;
}


/* =========================================================
   MAIN TABLE
========================================================= */

.cpc-table {
  position: relative;

  width: 100%;

  overflow: hidden;

  border: 1px solid var(--cpc-border);
  border-radius: 18px;

  background: #ffffff;

  box-shadow:
    0 18px 50px rgba(20, 54, 78, 0.09),
    0 3px 10px rgba(20, 54, 78, 0.04);
}


/* =========================================================
   TABLE HEADER
========================================================= */

.cpc-table-head {
  display: grid;

  grid-template-columns:
    1.55fr
    1fr
    1.15fr;

  min-height: 60px;

  background:
    linear-gradient(
      115deg,
      var(--cpc-navy-dark),
      var(--cpc-navy)
    );

  color: #ffffff;
}


/* Header cells */

.cpc-table-head > div {
  display: flex;
  align-items: center;

  padding: 0 25px;

  border-right:
    1px solid rgba(255, 255, 255, 0.15);

  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.12em;
}


.cpc-table-head > div:last-child {
  border-right: 0;
}


/* =========================================================
   TABLE ROW
========================================================= */

.cpc-table-row {
  position: relative;

  display: grid;

  grid-template-columns:
    1.55fr
    1fr
    1.15fr;

  min-height: 73px;

  background: #ffffff;

  border-bottom:
    1px solid var(--cpc-border);

  transition:
    background 0.25s ease,
    box-shadow 0.25s ease,
    transform 0.25s ease;
}


.cpc-table-row:last-child {
  border-bottom: 0;
}


/* Alternating background */

.cpc-table-row:nth-child(odd) {
  background: #fbfcfd;
}


/* =========================================================
   DESKTOP HOVER
========================================================= */

@media (min-width: 769px) {

  .cpc-table-row:hover {
    z-index: 2;

    background: #f7fbfe;

    box-shadow:
      inset 4px 0 0 var(--cpc-blue),
      0 8px 25px rgba(7, 59, 99, 0.06);
  }

}


/* =========================================================
   FEATURED / POPULAR ROW
========================================================= */

.cpc-featured {
  background:
    linear-gradient(
      90deg,
      #f4faff 0%,
      #ffffff 65%
    ) !important;
}


.cpc-featured::after {
  content: "POPULAR";

  position: absolute;

  top: 10px;
  right: 14px;

  padding: 4px 8px;

  border-radius: 20px;

  background: #e9f5ff;

  color: var(--cpc-blue);

  font-size: 8px;
  font-weight: 800;

  letter-spacing: 0.1em;
}


/* =========================================================
   UNIT SIZE
========================================================= */

.cpc-unit {
  display: flex;
  align-items: center;

  gap: 17px;

  padding: 16px 25px;

  border-right:
    1px solid var(--cpc-border);
}


/* Number circle */

.cpc-number {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 38px;

  width: 38px;
  height: 38px;

  border-radius: 50%;

  background: #d3eeff;

  color: var(--cpc-navy);

  font-size: 15px;
  font-weight: 800;
}


/* Unit title */

.cpc-unit strong {
  display: block;

  color: var(--cpc-text);

  font-size: 16px;
  font-weight: 650;

  line-height: 1.3;
}


/* Unit description */

.cpc-unit small {
  display: block;

  margin-top: 4px;

  color: var(--cpc-muted);

  font-size: 13px;

  line-height: 1.4;
}


/* =========================================================
   PRICE
========================================================= */

.cpc-price {
  display: flex;
  align-items: center;

  gap: 7px;

  padding: 16px 25px;

  border-right:
    1px solid var(--cpc-border);

  white-space: nowrap;
}


.cpc-price strong {
  color: var(--cpc-blue);

  font-size: 19px;

  font-weight: 800;

  letter-spacing: -0.02em;
}


.cpc-price span {
  color: #9aabb8;

  font-size: 14px;
}


/* =========================================================
   DURATION
========================================================= */

.cpc-duration {
  display: flex;
  align-items: center;

  gap: 10px;

  padding: 16px 25px;

  color: #344b5e;

  font-size: 16px;

  font-weight: 500;
}


/* =========================================================
   CUSTOM CLOCK ICON
========================================================= */

.cpc-clock {
  position: relative;

  width: 18px;
  height: 18px;

  flex: 0 0 18px;

  border:
    1.5px solid #8ca1b1;

  border-radius: 50%;
}


/* Clock vertical hand */

.cpc-clock::before {
  content: "";

  position: absolute;

  left: 8px;
  top: 4px;

  width: 1px;
  height: 6px;

  background: #60788a;
}


/* Clock horizontal hand */

.cpc-clock::after {
  content: "";

  position: absolute;

  left: 8px;
  top: 9px;

  width: 4px;
  height: 1px;

  background: #60788a;

  transform:
    rotate(30deg);

  transform-origin:
    left center;
}




/* =========================================================
   TABLET
========================================================= */

@media (max-width: 768px) {

  .cpc-table-head,
  .cpc-table-row {

    grid-template-columns:
      1.45fr
      1fr
      1.1fr;

  }


  .cpc-table-head > div,
  .cpc-unit,
  .cpc-price,
  .cpc-duration {

    padding-left: 16px;
    padding-right: 16px;

  }


  .cpc-unit {
    gap: 10px;
  }


  .cpc-number {

    flex-basis: 32px;

    width: 32px;
    height: 32px;

  }


  .cpc-unit strong {
    font-size: 14px;
  }


  .cpc-unit small {
    font-size: 10px;
  }


  .cpc-price strong {
    font-size: 17px;
  }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

  /* Remove desktop table header */

  .cpc-table-head {
    display: none;
  }


  /* Remove desktop table styling */

  .cpc-table {

    overflow: visible;

    border: 0;

    border-radius: 0;

    background: transparent;

    box-shadow: none;

  }


  /* Each row becomes a card */

  .cpc-table-row,
  .cpc-table-row:nth-child(odd),
  .cpc-featured {

    display: grid;

    grid-template-columns:
      1fr
      1fr;

    min-height: 0;

    margin-bottom: 13px;

    overflow: hidden;

    border:
      1px solid var(--cpc-border);

    border-radius: 15px;

    background: #ffffff !important;

    box-shadow:
      0 8px 25px rgba(20, 54, 78, 0.07);

  }


  .cpc-table-row:last-child {
    margin-bottom: 0;
  }


  /* =====================================================
     MOBILE UNIT SECTION
  ===================================================== */

  .cpc-unit {

    grid-column:
      1 / -1;

    min-height: 67px;

    padding:
      13px 15px;

    border-right: 0;

    border-bottom:
      1px solid var(--cpc-border);

  }


  .cpc-number {

    flex-basis: 34px;

    width: 34px;
    height: 34px;

  }


  .cpc-unit strong {
    font-size: 15px;
  }


  .cpc-unit small {
    font-size: 10px;
  }


  /* =====================================================
     MOBILE PRICE
  ===================================================== */

  .cpc-price {

    display: block;

    padding:
      13px 15px;

    border-right:
      1px solid var(--cpc-border);

  }


  .cpc-price::before {

    content: "TYPICAL PRICE";

    display: block;

    margin-bottom: 5px;

    color: #8496a5;

    font-size: 8px;

    font-weight: 800;

    letter-spacing: 0.1em;

  }


  .cpc-price strong {
    font-size: 17px;
  }


  /* =====================================================
     MOBILE DURATION
  ===================================================== */

  .cpc-duration {

    display: block;

    padding:
      13px 15px;

    text-align: left;

    font-size: 12px;

  }


  .cpc-duration::before {

    content: "TYPICAL DURATION";

    display: block;

    margin-bottom: 6px;

    color: #8496a5;

    font-size: 8px;

    font-weight: 800;

    letter-spacing: 0.1em;

  }


  /* Hide clock on mobile */

  .cpc-clock {
    display: none;
  }


  /* =====================================================
     POPULAR LABEL
  ===================================================== */

  .cpc-featured::after {

    top: 8px;

    right: 10px;

    font-size: 7px;

  }


  /* =====================================================
     MOBILE NOTE
  ===================================================== */

  .cpc-bottom {

    margin-top: 16px;

    gap: 9px;

  }


  .cpc-bottom p {

    font-size: 12px;

    line-height: 1.6;

  }

}


/* =========================================================
   VERY SMALL PHONES
========================================================= */

@media (max-width: 380px) {

  .cpc-unit strong {
    font-size: 14px;
  }


  .cpc-unit small {
    font-size: 9px;
  }


  .cpc-price strong {
    font-size: 16px;
  }


  .cpc-duration {
    font-size: 11px;
  }


  .cpc-bottom p {
    font-size: 11px;
  }

}



.elementor-1277 .elementor-element.elementor-element-e87cd6a img {
    width: 155px !important;
}