/*
Theme Name: TotalCare Pool
Theme URI: https://totalcarepool.com/
Author: TotalCare Pool
Description: Conversion-focused Elementor-ready theme for TotalCare Pool.
Version: 1.0.7
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: totalcare-pool
*/
:root{
 --tc-navy:#071f36;--tc-navy2:#041625;--tc-blue:#0f65ca;--tc-cyan:#16b7dc;
 --tc-ink:#0b2946;--tc-text:#41576a;--tc-light:#f5f8fb;--tc-line:#dce7ef;
 --tc-gold:#f4b92d;--tc-white:#fff;--tc-max:1180px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--tc-text);background:#fff}
a{text-decoration:none;color:inherit}.tc-shell{width:min(94%,var(--tc-max));margin:auto}
.tc-topbar{background:var(--tc-navy2);color:#fff;font-size:13px}.tc-toprow{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:15px}.tc-toprow strong{letter-spacing:.04em}
.tc-header{position:sticky;top:0;z-index:999;background:rgba(255,255,255,.97);border-bottom:1px solid #e6edf2;backdrop-filter:blur(10px)}body.admin-bar .tc-header{top:32px}
.tc-header-row{min-height:86px;display:flex;align-items:center;gap:16px;max-width:1180px}
.tc-brand{margin-right:auto;display:flex;align-items:center;flex:0 0 235px;min-width:190px;max-width:235px;overflow:hidden}
.tc-brand .custom-logo-link{display:block;line-height:0;width:100%;max-width:235px}
.tc-brand img,.tc-brand .custom-logo,.tc-brand .custom-logo-link img{display:block!important;width:auto!important;height:auto!important;max-width:235px!important;max-height:72px!important;object-fit:contain!important}
.tc-menu{display:flex;align-items:center;gap:16px;margin:0;padding:0;list-style:none;color:var(--tc-ink);font-size:13px;font-weight:800;white-space:nowrap}.tc-menu a:hover{color:var(--tc-blue)}
.tc-phone{font-size:17px;color:var(--tc-blue);font-weight:900;white-space:nowrap}.tc-head-cta{display:inline-flex;padding:12px 14px;border-radius:8px;background:var(--tc-blue);color:#fff;font-weight:850;font-size:13px;line-height:1.15;text-align:center;white-space:nowrap}
.tc-nav-toggle{display:none;border:0;background:transparent;font-size:26px;color:var(--tc-ink)}.site-main{min-height:55vh}.site-main>.page-content{width:100%}
.tc-footer{background:var(--tc-navy2);color:#dfe8ef;padding:42px 0 88px}.tc-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px}.tc-footer img{max-width:260px;background:#fff;border-radius:6px;padding:7px;margin-bottom:12px}.tc-footer strong{color:#fff}.tc-footer a{display:block;margin:7px 0;font-size:14px}
.tc-mobile-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:1200;background:#fff;padding:8px;gap:8px;box-shadow:0 -4px 20px rgba(0,0,0,.18)}.tc-mobile-cta a{flex:1;text-align:center;padding:13px 8px;border-radius:8px;font-weight:900;color:#fff}.tc-mobile-call{background:var(--tc-navy)}.tc-mobile-service{background:var(--tc-blue)}
.tc-form-shell{background:#fff;border:1px solid var(--tc-line);border-radius:14px;padding:28px;box-shadow:0 16px 40px rgba(7,39,69,.09)}.tc-form-shell h3{margin:0 0 8px;color:var(--tc-ink);font-size:26px}.tc-form-note{font-size:14px;margin-bottom:12px}.tc-form-missing{padding:18px;border-radius:8px;background:#fff6d9;border:1px solid #ead27c}
.tc-reviews-shell{padding-top:10px}
@media(max-width:980px){.tc-nav-toggle{display:block}.tc-menu-wrap{display:none;position:absolute;top:92px;left:0;right:0;background:#fff;padding:10px 3% 18px;border-top:1px solid var(--tc-line)}.tc-menu-wrap.open{display:block}.tc-menu{display:block}.tc-menu a{display:block;padding:12px 0;border-bottom:1px solid #eef3f6}.tc-phone,.tc-head-cta{display:none}.tc-footer-grid{grid-template-columns:1fr 1fr}.tc-mobile-cta{display:flex}}
@media(max-width:782px){body.admin-bar .tc-header{top:46px}}
@media(max-width:620px){.tc-toprow>div:first-child,.tc-toprow>div:last-child{display:none}.tc-brand{flex-basis:185px;max-width:185px}.tc-brand img,.tc-brand .custom-logo,.tc-brand .custom-logo-link img{max-width:185px!important;max-height:58px!important}.tc-footer-grid{grid-template-columns:1fr}}


/* v1.0.2 header correction: WordPress custom-logo markup no longer nests anchors */
.tc-header .tc-shell.tc-header-row{
  width:min(94%,1180px)!important;
  max-width:1180px!important;
  min-height:82px!important;
  display:flex!important;
  align-items:center!important;
  gap:18px!important;
  margin:0 auto!important;
  padding:0!important;
}
.tc-header .tc-brand{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex:0 0 220px!important;
  width:220px!important;
  min-width:220px!important;
  max-width:220px!important;
  height:72px!important;
  overflow:hidden!important;
  margin:0 auto 0 0!important;
}
.tc-header .tc-brand img,
.tc-header .tc-brand .tc-logo-img{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:220px!important;
  max-height:68px!important;
  object-fit:contain!important;
  margin:0!important;
}
.tc-header .tc-menu-wrap{
  margin-left:auto!important;
  flex:0 1 auto!important;
}
.tc-header .tc-menu{
  gap:15px!important;
  font-size:13px!important;
}
.tc-header .tc-phone{
  flex:0 0 auto!important;
  font-size:16px!important;
}
.tc-header .tc-head-cta{
  flex:0 0 auto!important;
  font-size:12px!important;
  padding:11px 12px!important;
}

@media(max-width:1100px){
  .tc-header .tc-brand{
    flex-basis:190px!important;
    width:190px!important;
    min-width:190px!important;
    max-width:190px!important;
  }
  .tc-header .tc-brand img,
  .tc-header .tc-brand .tc-logo-img{
    max-width:190px!important;
    max-height:60px!important;
  }
  .tc-header .tc-menu{gap:10px!important;font-size:12px!important}
  .tc-header .tc-phone{font-size:14px!important}
}
@media(max-width:980px){
  .tc-header .tc-menu-wrap{display:none!important}
  .tc-header .tc-menu-wrap.open{display:block!important}
  .tc-header .tc-phone,.tc-header .tc-head-cta{display:none!important}
  .tc-nav-toggle{display:block!important}
}


/* v1.0.3 footer logo aspect-ratio fix */
.tc-footer img,
.tc-footer .custom-logo,
.tc-footer .attachment-full{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:260px!important;
  max-height:120px!important;
  object-fit:contain!important;
  object-position:left center!important;
  background:#fff!important;
  border-radius:6px!important;
  padding:7px!important;
  margin:0 0 14px 0!important;
}
@media(max-width:620px){
  .tc-footer img,
  .tc-footer .custom-logo,
  .tc-footer .attachment-full{
    max-width:220px!important;
    max-height:105px!important;
  }
}


/* v1.0.4 direct footer logo asset */
.tc-footer .tc-footer-brand{
  display:block!important;
}
.tc-footer .tc-footer-logo{
  display:block!important;
  width:260px!important;
  height:auto!important;
  max-width:100%!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  object-position:left center!important;
  background:#fff!important;
  border-radius:6px!important;
  padding:7px!important;
  margin:0 0 14px 0!important;
}
@media(max-width:620px){
  .tc-footer .tc-footer-logo{
    width:220px!important;
    height:auto!important;
  }
}


/* v1.0.5 mobile Elementor overflow correction */
html,
body{
  max-width:100%;
  overflow-x:hidden;
}

.page-content,
.page-content .elementor,
.page-content .elementor-element,
.page-content .e-con,
.page-content .e-con-inner{
  min-width:0;
}

@media(max-width:767px){

  /* Never allow Elementor containers to retain desktop percentage widths */
  .page-content .e-con,
  .page-content .e-con-inner{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .page-content .elementor-element{
    max-width:100%!important;
    min-width:0!important;
  }

  /* Keep text/widgets inside the screen */
  .page-content .elementor-widget,
  .page-content .elementor-widget-container{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  /* Hero H1 was retaining the desktop 64px setting */
  .page-content .elementor-widget-heading h1.elementor-heading-title{
    font-size:clamp(44px,13vw,58px)!important;
    line-height:.96!important;
    letter-spacing:-1.5px!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  .page-content .elementor-widget-heading h2.elementor-heading-title{
    font-size:clamp(34px,10vw,44px)!important;
    line-height:1.02!important;
  }

  .page-content .elementor-widget-text-editor,
  .page-content .elementor-widget-text-editor p{
    max-width:100%!important;
    overflow-wrap:break-word;
  }

  /* Give hero/body sections comfortable phone gutters */
  .page-content > .elementor > .e-con,
  .page-content .elementor > .e-con{
    padding-left:22px!important;
    padding-right:22px!important;
  }

  /* Rows created for desktop need to stack cleanly on phones */
  .page-content .e-con.e-flex{
    flex-wrap:wrap!important;
  }

  /* Prevent buttons from forcing a container wider than the screen */
  .page-content .elementor-button{
    max-width:100%;
    white-space:normal;
    text-align:center;
  }

  /* Mobile sticky CTA */
  .tc-mobile-cta{
    padding:8px!important;
  }
  .tc-mobile-cta a{
    min-width:0!important;
    font-size:16px!important;
    line-height:1.15!important;
  }
}


/* v1.0.6 clickable header logo */
.tc-brand-link{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  height:100%!important;
  line-height:0!important;
}
.tc-brand-link img{
  pointer-events:none;
}


/* v1.0.7 entire logo area is the homepage link */
.tc-header a.tc-brand{
  position:relative!important;
  z-index:20!important;
  cursor:pointer!important;
  pointer-events:auto!important;
}
.tc-header a.tc-brand img{
  pointer-events:none!important;
}
