:root{--tpc-purple:#7b48c5;--tpc-purple2:#9952d4;--tpc-ink:#10182e;--tpc-muted:#62687b;--tpc-cream:#fffaf5;--tpc-lilac:#f1e8fb;--tpc-line:#e8e1ec}
html{scroll-behavior:smooth}body{margin:0;color:var(--tpc-ink);font-family:Arial,sans-serif}.tpc-shell{width:min(1180px,calc(100% - 40px));margin:auto}.tpc-fallback{padding:20px 0;border-bottom:1px solid var(--tpc-line)}.tpc-fallback .tpc-shell{display:flex;justify-content:space-between;align-items:center}.tpc-btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:11px;padding:13px 22px;background:linear-gradient(135deg,var(--tpc-purple),var(--tpc-purple2));color:#fff!important;text-decoration:none;font-weight:700}
.tpc-booking{max-width:900px;margin:auto;background:#fff;border:1px solid var(--tpc-line);border-radius:22px;padding:28px;box-shadow:0 18px 50px rgba(55,30,74,.10)}.tpc-booking-title{display:flex;align-items:center;gap:12px}.tpc-booking-title>span{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--tpc-lilac);color:var(--tpc-purple)}.tpc-booking-title h2{margin:2px 0}.tpc-booking-title small{font-weight:800;color:var(--tpc-purple)}.tpc-booking-progress{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto;align-items:center;margin:28px 0 38px}.tpc-booking-progress i{height:1px;background:#e6dfea}.tpc-booking-progress b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eeeaf0;position:relative;font-size:12px}.tpc-booking-progress b.on{background:var(--tpc-purple);color:#fff}.tpc-booking-progress small{position:absolute;top:36px;white-space:nowrap;color:#777;font-weight:500}.tpc-pane{display:none;padding-top:15px}.tpc-pane.on{display:block}.tpc-pane h3{font-size:28px;margin:0 0 7px}.tpc-pane>p{color:var(--tpc-muted)}.tpc-service-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.tpc-service-choices button{border:1px solid var(--tpc-line);border-radius:13px;background:#fff;padding:20px;text-align:left}.tpc-service-choices button.selected{border:2px solid var(--tpc-purple);background:#fbf8ff}.tpc-service-choices strong,.tpc-service-choices span,.tpc-service-choices small{display:block}.tpc-service-choices span{margin:7px 0;color:var(--tpc-muted);font-size:12px}.tpc-service-choices small{color:var(--tpc-purple);font-weight:700}.tpc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.tpc-form-grid.one{grid-template-columns:1fr}.tpc-form-grid label{display:grid;gap:7px;font-weight:700}.tpc-form-grid input,.tpc-form-grid select,.tpc-form-grid textarea{width:100%;border:1px solid #ddd6e3;border-radius:9px;padding:12px;background:#fff}.tpc-extra{display:grid;grid-template-columns:1fr auto auto;gap:15px;align-items:center;border:1px solid var(--tpc-line);border-radius:11px;padding:14px;margin:9px 0}.tpc-extra span small{display:block;color:var(--tpc-muted);margin-top:3px}.tpc-extra em{font-style:normal;font-weight:800;color:var(--tpc-purple)}.tpc-summary{background:#fbf8fd;border:1px solid var(--tpc-line);border-radius:14px;padding:16px;margin:18px 0}.tpc-summary>div{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid #e9e1ed}.tpc-summary>div:last-child{border:0}.tpc-summary span{color:var(--tpc-muted)}.tpc-summary .total strong{font-size:24px;color:var(--tpc-purple)}.tpc-booking-actions{display:flex;justify-content:space-between;margin-top:30px}.tpc-back{background:#fff;border:1px solid var(--tpc-line);border-radius:11px;padding:12px 20px}.tpc-confirm{width:100%}
@media(max-width:700px){.tpc-service-choices,.tpc-form-grid{grid-template-columns:1fr}.tpc-booking{padding:18px}.tpc-booking-progress small{display:none}.tpc-pane h3{font-size:23px}}

/* v4.1 brand refinements */
:root{
 --tpc-purple:#7B48C5;
 --tpc-purple-dark:#5F339C;
 --tpc-lilac:#F1E8FB;
 --tpc-lilac-soft:#F7F1FD;
 --tpc-cream:#FFF9F5;
 --tpc-ink:#10182E;
 --tpc-muted:#62687B;
 --tpc-line:#E8E1EC;
 --tpc-success:#7B48C5;
}
.tpc-home-booking{
 background:#fff;border:1px solid var(--tpc-line);border-radius:20px;
 padding:22px;box-shadow:0 18px 50px rgba(70,40,95,.09)
}
.tpc-home-booking h3{margin:0 0 18px;font-size:24px;color:var(--tpc-ink)}
.tpc-home-booking label{display:grid;gap:7px;margin:12px 0;font-weight:700;color:var(--tpc-muted)}
.tpc-home-booking select,.tpc-home-booking input{
 width:100%;border:1px solid #DDD6E3;border-radius:10px;padding:12px 13px;background:#fff;color:var(--tpc-ink)
}
.tpc-home-booking .tpc-booking-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tpc-home-booking .tpc-home-check{
 width:100%;margin-top:15px;border:0;border-radius:10px;padding:13px 16px;
 background:linear-gradient(135deg,var(--tpc-purple),#9553D1);color:#fff;font-weight:800;cursor:pointer
}
.tpc-home-booking .tpc-home-check:hover{filter:brightness(.98)}
.tpc-home-booking .tpc-home-result{
 display:none;margin-top:12px;padding:12px;border-radius:10px;background:var(--tpc-lilac-soft);color:var(--tpc-purple-dark);font-weight:700
}
.tpc-home-booking .tpc-home-result.show{display:block}
.tpc-brand-card{
 border:1px solid var(--tpc-line);border-radius:18px;background:#fff;padding:22px;height:100%
}
.tpc-brand-card h3{color:var(--tpc-purple);margin-top:6px}
.tpc-brand-card .price{color:var(--tpc-purple);font-weight:800;margin-top:12px}
.tpc-page-hero{background:var(--tpc-cream);padding:54px 20px}
.tpc-page-hero h1{font-size:48px;line-height:1.05;margin:0;color:var(--tpc-ink)}
.tpc-page-hero p{font-size:18px;color:var(--tpc-muted);max-width:700px}
@media(max-width:700px){
 .tpc-home-booking .tpc-booking-row{grid-template-columns:1fr}
 .tpc-page-hero h1{font-size:36px}
}

/* v4.2: interactive booking hardening */
.tpc-home-booking{position:relative;z-index:20;pointer-events:auto!important}
.tpc-home-booking *{pointer-events:auto}
.tpc-home-booking select,.tpc-home-booking input,.tpc-home-booking button{
 position:relative;z-index:21;appearance:auto;-webkit-appearance:auto;cursor:pointer
}
.tpc-home-booking input[type="date"]{cursor:text}
.tpc-home-booking .tpc-mini-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#F1E8FB;color:#7B48C5;font-size:14px}
.tpc-home-booking .tpc-home-check{background:linear-gradient(135deg,#7B48C5,#9553D1)!important}

/* v4.3 — homepage visual corrections */
.tpc-home-booking{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:8px 0!important;
}
.tpc-home-booking h3{font-size:25px;margin-bottom:20px}
.tpc-home-booking select,
.tpc-home-booking input{
  min-height:46px;
  border:1px solid #D7CEE5!important;
  border-radius:11px!important;
  background:#FFFFFF!important;
  padding:10px 13px!important;
  color:#10182E!important;
}
.tpc-home-booking .tpc-home-check{
  min-height:50px;
  border-radius:11px!important;
  background:linear-gradient(135deg,#7B48C5,#9553D1)!important;
}
.tpc-home-booking label{color:#4F5568!important}

/* Force service icons to the brand purple, regardless of Elementor defaults. */
#servicos .elementor-widget-icon-box .elementor-icon,
#servicos .elementor-widget-icon-box .elementor-icon i,
#servicos .elementor-widget-icon-box .elementor-icon svg,
.elementor-widget-icon-box .elementor-icon,
.elementor-widget-icon-box .elementor-icon i{
  color:#7B48C5!important;
  fill:#7B48C5!important;
}
.elementor-widget-icon-box .elementor-icon svg path{
  fill:#7B48C5!important;
}
.elementor-widget-icon-box .elementor-icon-box-title,
.elementor-widget-icon-box .elementor-icon-box-title a{
  color:#7B48C5!important;
}

/* Keep the CTA pair aligned in the hero. */
.tpc-hero .elementor-inner-section .elementor-column{
  align-items:stretch;
}

/* v4.4 — cleaner homepage services and process */
#servicos .elementor-widget-icon-box .elementor-icon-box-description,
#como-funciona .elementor-widget-icon-box .elementor-icon-box-description{
  display:none!important;
}
#servicos .elementor-widget-icon-box,
#como-funciona .elementor-widget-icon-box{
  text-align:center;
}
#servicos .elementor-widget-icon-box .elementor-icon{
  font-size:46px!important;
  margin-bottom:12px!important;
}
#servicos .elementor-widget-icon-box .elementor-icon-box-title{
  margin:0!important;
  font-size:17px!important;
  line-height:1.2!important;
  color:#7B48C5!important;
}
#como-funciona .elementor-widget-icon-box .elementor-icon{
  font-size:34px!important;
  margin-bottom:10px!important;
}
#como-funciona .elementor-widget-icon-box .elementor-icon-box-title{
  margin:0!important;
  color:#7B48C5!important;
  font-size:16px!important;
  line-height:1.25!important;
}

/* v4.5 — graphical rebuild based on supplied reference */
.tpc-site-header .elementor-widget-image img,
.tpc-site-footer .elementor-widget-image img{
  max-height:58px;
  width:auto!important;
  object-fit:contain;
}
.tpc-main-nav,.tpc-footer-nav{
  display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;font-size:14px
}
.tpc-main-nav a,.tpc-footer-nav a{color:#10182E;text-decoration:none}
.tpc-main-nav a:hover,.tpc-footer-nav a:hover{color:#7B48C5}

/* Hero */
.tpc-hero{overflow:hidden}
.tpc-hero .elementor-widget-heading h1{font-size:64px!important;line-height:.96!important}
.tpc-hero .elementor-widget-image img{
  width:100%!important;max-width:none!important;min-height:500px;object-fit:cover;border-radius:22px
}
.tpc-hero .elementor-inner-section .elementor-widget-icon-box .elementor-icon{
  width:54px;height:54px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:#F1E8FB!important;color:#7B48C5!important;font-size:24px
}
.tpc-hero .elementor-inner-section .elementor-icon-box-title{
  font-size:14px!important;line-height:1.2!important;color:#10182E!important;margin-top:9px!important
}

/* Booking box */
.tpc-home-booking{
  background:#F5EEFC!important;border:0!important;box-shadow:none!important;
  border-radius:18px!important;padding:18px!important
}
.tpc-home-booking h3{font-size:24px!important;color:#10182E}
.tpc-home-booking select,.tpc-home-booking input{
  min-height:48px!important;border:1px solid #D7CEE5!important;border-radius:10px!important;
  background:#FFFFFF!important;font-size:14px
}
.tpc-home-booking .tpc-home-check{
  min-height:50px!important;border-radius:10px!important;background:linear-gradient(135deg,#7B48C5,#9553D1)!important
}

/* Services */
#servicos .elementor-widget-icon-box .elementor-icon{
  width:70px!important;height:70px!important;display:inline-flex!important;align-items:center!important;
  justify-content:center!important;border-radius:50%!important;background:#F1E8FB!important;color:#7B48C5!important
}
#servicos .elementor-widget-icon-box .elementor-icon i{color:#7B48C5!important}
#servicos .elementor-widget-icon-box .elementor-icon-box-title{color:#10182E!important;font-weight:700!important}

/* How it works */
#como-funciona .elementor-widget-icon-box .elementor-icon{
  width:66px!important;height:66px!important;display:inline-flex!important;align-items:center!important;
  justify-content:center!important;border-radius:50%!important;background:#FFFFFF!important;
  border:1px solid #E7DDF1!important;color:#7B48C5!important
}
#como-funciona .elementor-widget-icon-box .elementor-icon-box-title{
  display:flex!important;flex-direction:column!important;align-items:center!important;gap:9px!important
}
.tpc-step-number{
  width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:#7B48C5;color:#fff;font-weight:700;font-size:14px
}
.tpc-step-label{color:#10182E;font-weight:700}

/* About */
#sobre .elementor-widget-icon-list .elementor-icon-list-icon{
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:50%;background:#F1E8FB
}
#sobre .elementor-widget-icon-list .elementor-icon-list-icon i{color:#7B48C5!important}

/* Reviews */
.elementor-widget-testimonial .elementor-testimonial-wrapper{
  background:#FFFFFF;border:1px solid #E8E1EC;border-radius:16px;padding:18px
}
.elementor-widget-testimonial .elementor-testimonial-image img{
  width:70px!important;height:70px!important;border-radius:50%!important;object-fit:cover!important
}
.elementor-widget-testimonial .elementor-testimonial-job{color:#7B48C5!important}

/* Footer */
.tpc-site-footer{border-top:1px solid #EFE8F2}
.tpc-site-footer .elementor-widget-icon .elementor-icon{
  color:#7B48C5!important;background:#F1E8FB!important
}

@media(max-width:900px){
  .tpc-main-nav{gap:14px}
  .tpc-hero .elementor-widget-heading h1{font-size:48px!important}
}
@media(max-width:700px){
  .tpc-main-nav{display:none}
  .tpc-hero .elementor-widget-heading h1{font-size:42px!important}
  .tpc-hero .elementor-widget-image img{min-height:340px}
  .tpc-footer-nav{gap:12px}
}

/* v4.6 — faithful rebuild from supplied reference */
.tpc-site-header .elementor-container{align-items:center!important}.tpc-site-header .elementor-widget-image img{max-height:60px!important;width:auto!important}
.tpc-main-nav{display:flex;justify-content:center;gap:28px;font-size:13px}.tpc-main-nav a{color:#10182E!important;text-decoration:none!important}.tpc-main-nav a:hover{color:#7B48C5!important}
.tpc-hero{background:#FFF9F5!important}.tpc-hero>.elementor-container{align-items:stretch!important}.tpc-hero .elementor-widget-heading h1{font-size:62px!important;line-height:.98!important;font-weight:800!important;letter-spacing:-2px!important;color:#10182E!important}
.tpc-hero-copy{font-size:18px!important;line-height:1.42!important;color:#444C63!important;margin:0!important}
.tpc-benefits .elementor-widget-icon-box{text-align:left!important}.tpc-benefits .elementor-icon{width:48px!important;height:48px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#F1E8FB!important;color:#7B48C5!important;font-size:22px!important}.tpc-benefits .elementor-icon-box-title{font-size:13px!important;line-height:1.18!important;color:#10182E!important;margin-top:8px!important}
.tpc-hero .elementor-widget-image,.tpc-hero .elementor-widget-image .elementor-widget-container{height:100%!important}.tpc-hero .elementor-widget-image img{width:100%!important;height:100%!important;min-height:435px!important;object-fit:cover!important;object-position:center!important;border-radius:0!important}
.tpc-booking-heading{display:flex;align-items:center;gap:10px;margin-bottom:14px}.tpc-booking-heading h3{margin:0!important;font-size:22px!important;color:#10182E!important}.tpc-booking-heading-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#E9DDF8;color:#7B48C5}
.tpc-home-booking{background:#F6F0FD!important;border:1px solid #E2D7F0!important;border-radius:18px!important;padding:16px!important;box-shadow:0 10px 28px rgba(65,35,95,.08)!important}.tpc-home-booking label{display:grid!important;gap:5px!important;margin:9px 0!important;color:#10182E!important;font-size:13px!important;font-weight:600!important}.tpc-home-booking select,.tpc-home-booking input{width:100%!important;min-height:43px!important;background:#FFF!important;border:1px solid #DCD2E7!important;border-radius:9px!important;padding:9px 11px!important;font-size:13px!important}.tpc-home-booking .tpc-home-check{width:100%!important;min-height:44px!important;margin-top:10px!important;border-radius:9px!important}
.tpc-services-home .elementor-widget-heading h2,.tpc-how-home .elementor-widget-heading h2,.tpc-about-home .elementor-widget-heading h2,.tpc-reviews-home .elementor-widget-heading h2{font-size:30px!important;font-weight:800!important;color:#10182E!important}
.tpc-services-home .elementor-column>.elementor-element-populated{min-height:185px!important;display:flex!important;align-items:center!important;justify-content:center!important}.tpc-services-home .elementor-widget-icon-box{text-align:center!important;width:100%!important}.tpc-services-home .elementor-icon{width:66px!important;height:66px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#F1E8FB!important;color:#6337A3!important;font-size:31px!important}.tpc-services-home .elementor-icon-box-title{margin:12px 0 0!important;color:#10182E!important;font-size:16px!important;line-height:1.15!important}.tpc-services-home .elementor-icon-box-description{display:none!important}
.tpc-how-home .elementor-column{position:relative!important}.tpc-how-home .elementor-widget-html{position:absolute!important;top:0!important;left:18%!important;z-index:3!important}.tpc-step-number{display:inline-flex!important;width:30px!important;height:30px!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#7446B2!important;color:#FFF!important;font-weight:700!important}.tpc-how-home .elementor-icon{width:64px!important;height:64px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#FFF!important;border:1px solid #E8DFED!important;color:#6337A3!important;font-size:28px!important}.tpc-how-home .elementor-icon-box-title{margin:10px 0 0!important;color:#10182E!important;font-size:16px!important}.tpc-how-home .elementor-icon-box-description{display:none!important}
.tpc-about-home .elementor-widget-image img{width:100%!important;height:225px!important;object-fit:cover!important;border-radius:18px!important}.tpc-about-home .elementor-widget-text-editor{font-size:15px!important;line-height:1.48!important;color:#565E73!important}.tpc-about-home .elementor-icon-list-icon{width:32px!important;height:32px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#F1E8FB!important;margin-right:10px!important}
.tpc-reviews-home .elementor-testimonial-wrapper{min-height:132px!important;background:#FFF!important;border:1px solid #E8E1EC!important;border-radius:12px!important;padding:14px!important;text-align:left!important}.tpc-reviews-home .elementor-testimonial-image img{width:62px!important;height:62px!important;object-fit:cover!important;border-radius:50%!important}.tpc-reviews-home .elementor-testimonial-content{font-size:12px!important;line-height:1.35!important;color:#535A6D!important}.tpc-reviews-home .elementor-testimonial-name{font-size:13px!important;font-weight:700!important}.tpc-reviews-home .elementor-testimonial-job{font-size:12px!important;color:#7B48C5!important}
.tpc-site-footer{border-top:1px solid #EEE7F1!important}.tpc-site-footer .elementor-widget-image img{max-height:58px!important;width:auto!important}.tpc-footer-nav{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;font-size:12px}.tpc-footer-nav a{color:#30384E!important;text-decoration:none!important}.tpc-site-footer .elementor-widget-icon{text-align:center!important}.tpc-site-footer .elementor-icon{font-size:27px!important}
@media(max-width:700px){.tpc-main-nav{display:none!important}.tpc-hero .elementor-widget-heading h1{font-size:44px!important}.tpc-hero .elementor-widget-image img{min-height:320px!important}.tpc-footer-nav{gap:10px}}

/* v4.7 — wider hero photo + slight booking overlap + more breathing room */
.tpc-hero{position:relative!important;overflow:visible!important}
.tpc-hero>.elementor-container{align-items:stretch!important;position:relative!important}
.tpc-hero-photo-col{
  position:relative!important;
  z-index:1!important;
  overflow:visible!important;
}
.tpc-hero-photo-col .elementor-widget-image,
.tpc-hero-photo-col .elementor-widget-image .elementor-widget-container{
  height:100%!important;
}
.tpc-hero-photo-col img{
  width:118%!important;
  max-width:none!important;
  height:100%!important;
  min-height:510px!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:translateX(-4%)!important;
  border-radius:0!important;
}
.tpc-booking-col{
  position:relative!important;
  z-index:3!important;
  margin-left:-46px!important;
}
.tpc-home-booking{
  min-height:545px!important;
  padding:22px 18px 24px!important;
  border-radius:20px!important;
  background:rgba(246,240,253,.94)!important;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  box-shadow:0 12px 34px rgba(68,37,95,.10)!important;
}
.tpc-booking-heading{margin-bottom:18px!important}
.tpc-home-booking label{
  margin:13px 0!important;
  gap:7px!important;
}
.tpc-home-booking select,
.tpc-home-booking input{
  min-height:46px!important;
  padding:10px 12px!important;
}
.tpc-home-booking .tpc-home-check{
  min-height:48px!important;
  margin-top:16px!important;
}
@media(max-width:1100px){
  .tpc-booking-col{margin-left:-24px!important}
  .tpc-hero-photo-col img{width:112%!important}
}
@media(max-width:900px){
  .tpc-booking-col{margin-left:0!important}
  .tpc-hero-photo-col img{width:100%!important;transform:none!important}
  .tpc-home-booking{min-height:auto!important}
}

/* v4.8 — approved hero fade + wider booking panel + custom fields */

/* Hero composition */
.tpc-hero{
  position:relative!important;
  overflow:hidden!important;
  background:#FFF9F5!important;
}
.tpc-hero>.elementor-container{
  align-items:stretch!important;
  position:relative!important;
}
.tpc-hero-left-col{
  position:relative!important;
  z-index:4!important;
  background:#FFF9F5!important;
}
.tpc-hero-photo-col{
  position:relative!important;
  z-index:1!important;
  overflow:visible!important;
}
.tpc-hero-photo-col::before{
  content:"";
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  left:-28%;
  width:52%;
  pointer-events:none;
  background:linear-gradient(
    90deg,
    #FFF9F5 0%,
    rgba(255,249,245,.98) 22%,
    rgba(255,249,245,.78) 48%,
    rgba(255,249,245,.36) 73%,
    rgba(255,249,245,0) 100%
  );
}
.tpc-hero-photo-col .elementor-widget-image,
.tpc-hero-photo-col .elementor-widget-image .elementor-widget-container{
  height:100%!important;
}
.tpc-hero-photo-col img{
  width:122%!important;
  max-width:none!important;
  height:100%!important;
  min-height:520px!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:translateX(-6%)!important;
  border-radius:0!important;
}

/* Booking panel wider and reaching farther right */
.tpc-booking-col{
  position:relative!important;
  z-index:5!important;
  margin-left:-38px!important;
  margin-right:-70px!important;
}
.tpc-home-booking{
  width:150%!important;
  max-width:none!important;
  min-height:565px!important;
  padding:24px 24px 26px!important;
  border-radius:20px!important;
  background:rgba(246,240,253,.96)!important;
  border:1px solid #DED2EC!important;
  box-shadow:0 14px 36px rgba(68,37,95,.12)!important;
}

/* Heading icon */
.tpc-booking-heading{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin-bottom:20px!important;
}
.tpc-booking-heading-icon{
  width:40px!important;
  height:40px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 40px!important;
  border-radius:12px!important;
  background:#E9DDF8!important;
  color:#6F3FC1!important;
  font-size:20px!important;
}
.tpc-booking-heading h3{
  margin:0!important;
  font-size:25px!important;
  line-height:1.1!important;
  color:#10182E!important;
}

/* Labels and consistent custom field shells */
.tpc-home-booking label{
  display:grid!important;
  gap:7px!important;
  margin:14px 0!important;
  font-size:14px!important;
  font-weight:700!important;
  color:#10182E!important;
}
.tpc-field-wrap{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-height:48px!important;
  background:#FFF!important;
  border:1px solid #D9CFE5!important;
  border-radius:11px!important;
  box-shadow:0 1px 0 rgba(36,23,54,.02)!important;
}
.tpc-field-icon{
  width:44px!important;
  flex:0 0 44px!important;
  text-align:center!important;
  color:#7446B2!important;
  font-size:18px!important;
  line-height:1!important;
  pointer-events:none!important;
}
.tpc-field-wrap select,
.tpc-field-wrap input{
  width:100%!important;
  min-height:46px!important;
  margin:0!important;
  padding:10px 38px 10px 4px!important;
  border:0!important;
  outline:0!important;
  background:#FFF!important;
  color:#4D566C!important;
  font-size:14px!important;
  font-family:inherit!important;
  border-radius:11px!important;
  box-shadow:none!important;
}
.tpc-field-wrap select{
  appearance:none!important;
  -webkit-appearance:none!important;
  background-image:
    linear-gradient(45deg,transparent 50%,#5F6680 50%),
    linear-gradient(135deg,#5F6680 50%,transparent 50%)!important;
  background-position:
    calc(100% - 17px) 50%,
    calc(100% - 12px) 50%!important;
  background-size:5px 5px,5px 5px!important;
  background-repeat:no-repeat!important;
  cursor:pointer!important;
}
.tpc-field-wrap input[type="date"]{
  cursor:pointer!important;
}
.tpc-field-wrap input[type="date"]::-webkit-calendar-picker-indicator{
  opacity:.9!important;
  cursor:pointer!important;
}
.tpc-home-booking .tpc-home-check{
  width:100%!important;
  min-height:50px!important;
  margin-top:18px!important;
  border-radius:11px!important;
  font-size:15px!important;
  font-weight:700!important;
}

/* Keep left text legible over the image edge */
.tpc-hero-left-col .elementor-widget-heading,
.tpc-hero-left-col .elementor-widget-text-editor,
.tpc-hero-left-col .tpc-benefits,
.tpc-hero-left-col .tpc-hero-ctas{
  position:relative!important;
  z-index:5!important;
}

@media(max-width:1180px){
  .tpc-booking-col{
    margin-left:-24px!important;
    margin-right:-35px!important;
  }
  .tpc-home-booking{width:135%!important}
  .tpc-hero-photo-col img{width:116%!important}
}
@media(max-width:980px){
  .tpc-booking-col{margin-left:0!important;margin-right:0!important}
  .tpc-home-booking{width:100%!important;min-height:auto!important}
  .tpc-hero-photo-col img{width:100%!important;transform:none!important}
  .tpc-hero-photo-col::before{display:none!important}
}

/* v4.9 — restore visible hero photo, soften fade, compact booking panel */

/* Ensure photo is visible */
.tpc-hero-photo-col{
  position:relative!important;
  z-index:2!important;
  overflow:visible!important;
}
.tpc-hero-photo-col .elementor-widget-image,
.tpc-hero-photo-col .elementor-widget-image .elementor-widget-container{
  height:100%!important;
}
.tpc-hero-photo-col img{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:118%!important;
  max-width:none!important;
  height:100%!important;
  min-height:500px!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:translateX(-5%)!important;
}

/* Softer fade so the image remains obvious */
.tpc-hero-photo-col::before{
  content:"";
  position:absolute!important;
  z-index:3!important;
  top:0!important;
  bottom:0!important;
  left:-20%!important;
  width:38%!important;
  pointer-events:none!important;
  background:linear-gradient(
    90deg,
    #FFF9F5 0%,
    rgba(255,249,245,.96) 18%,
    rgba(255,249,245,.72) 42%,
    rgba(255,249,245,.34) 68%,
    rgba(255,249,245,0) 100%
  )!important;
}

/* Booking panel less tall, still roomy */
.tpc-home-booking{
  min-height:500px!important;
  padding:20px 22px 22px!important;
}
.tpc-booking-heading{
  margin-bottom:16px!important;
}
.tpc-home-booking label{
  margin:11px 0!important;
  gap:6px!important;
}
.tpc-field-wrap{
  min-height:45px!important;
}
.tpc-field-wrap select,
.tpc-field-wrap input{
  min-height:43px!important;
}
.tpc-home-booking .tpc-home-check{
  min-height:47px!important;
  margin-top:14px!important;
}

/* Calendar glyph matching button icon style */
.tpc-calendar-glyph{
  position:relative;
  display:inline-block;
  width:18px;
  height:16px;
  border:2px solid currentColor;
  border-radius:3px;
  color:#6F3FC1;
  box-sizing:border-box;
}
.tpc-calendar-glyph::before,
.tpc-calendar-glyph::after{
  content:"";
  position:absolute;
  top:-5px;
  width:2px;
  height:6px;
  background:currentColor;
  border-radius:1px;
}
.tpc-calendar-glyph::before{left:3px}
.tpc-calendar-glyph::after{right:3px}
.tpc-calendar-glyph.small{
  width:15px;
  height:14px;
  border-width:2px;
}
.tpc-booking-heading-icon{
  color:#6F3FC1!important;
}

/* v4.10 — equal, slightly shorter hero CTA buttons */
.tpc-hero-ctas{
  max-width:430px!important;
}
.tpc-hero-ctas .elementor-container{
  width:100%!important;
}
.tpc-hero-ctas .elementor-column{
  width:50%!important;
}
.tpc-hero-ctas .elementor-button{
  width:100%!important;
  min-height:46px!important;
  padding:13px 16px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
.tpc-hero-ctas .elementor-button-text{
  flex-grow:0!important;
}
@media(max-width:700px){
  .tpc-hero-ctas{max-width:100%!important}
}

/* v4.11 — vertically centered left block + cleaner text + wider photo + soft right transparency */
.tpc-hero{
  min-height:620px!important;
}
.tpc-hero-left-col{
  display:flex!important;
  align-items:center!important;
  background:#FFF9F5!important;
}
.tpc-hero-left-col>.elementor-element-populated{
  width:100%!important;
}
.tpc-hero-copy{
  max-width:430px!important;
  font-size:18px!important;
  line-height:1.52!important;
  letter-spacing:0!important;
}
.tpc-hero-left-col .elementor-widget-heading h1{
  margin-bottom:20px!important;
}
.tpc-benefits{
  margin-top:18px!important;
}
.tpc-hero-ctas{
  margin-top:18px!important;
}
.tpc-hero-ctas .elementor-button{
  white-space:nowrap!important;
}

/* Wider photo and more natural fit */
.tpc-hero-photo-col{
  position:relative!important;
  z-index:2!important;
  overflow:visible!important;
}
.tpc-hero-photo-col img{
  width:126%!important;
  max-width:none!important;
  min-height:560px!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:translateX(-8%)!important;
}

/* Left fade into base cream */
.tpc-hero-photo-col::before{
  content:"";
  position:absolute!important;
  z-index:3!important;
  inset:0 auto 0 -26%!important;
  width:46%!important;
  pointer-events:none!important;
  background:linear-gradient(
    90deg,
    #FFF9F5 0%,
    rgba(255,249,245,.97) 18%,
    rgba(255,249,245,.80) 43%,
    rgba(255,249,245,.42) 70%,
    rgba(255,249,245,0) 100%
  )!important;
}

/* Right side stays visible but slightly transparent under/near booking */
.tpc-hero-photo-col::after{
  content:"";
  position:absolute!important;
  z-index:3!important;
  top:0!important;
  bottom:0!important;
  right:-28%!important;
  width:40%!important;
  pointer-events:none!important;
  background:rgba(255,249,245,.22)!important;
}

/* Booking shifted slightly right, but not floating too far over the pets */
.tpc-booking-col{
  position:relative!important;
  z-index:5!important;
  margin-left:-18px!important;
  margin-right:-78px!important;
}
.tpc-home-booking{
  width:142%!important;
  min-height:500px!important;
}

/* More balanced left text and icon blocks */
.tpc-benefits .elementor-column{
  padding-right:8px!important;
}
.tpc-benefits .elementor-icon-box-title{
  max-width:120px!important;
}
@media(max-width:1100px){
  .tpc-booking-col{
    margin-right:-36px!important;
  }
  .tpc-home-booking{
    width:132%!important;
  }
  .tpc-hero-photo-col img{
    width:118%!important;
  }
}
@media(max-width:900px){
  .tpc-hero{
    min-height:auto!important;
  }
  .tpc-hero-left-col{
    align-items:flex-start!important;
  }
  .tpc-booking-col{
    margin-left:0!important;
    margin-right:0!important;
  }
  .tpc-home-booking{
    width:100%!important;
  }
  .tpc-hero-photo-col::before,
  .tpc-hero-photo-col::after{
    display:none!important;
  }
  .tpc-hero-photo-col img{
    width:100%!important;
    transform:none!important;
  }
}

/* v4.12 — hero layout correction without generating a new photo */

/* Use the pet image as the full hero background so there is no hard photo edge. */
.tpc-hero{
  position:relative!important;
  min-height:590px!important;
  overflow:hidden!important;
  background-position:center center!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
}
.tpc-hero>.elementor-container{
  position:relative!important;
  z-index:3!important;
  min-height:590px!important;
  align-items:stretch!important;
}

/* Left side: cream fade into the photograph for clean text legibility. */
.tpc-hero::before{
  content:"";
  position:absolute!important;
  inset:0 auto 0 0!important;
  width:45%!important;
  z-index:1!important;
  pointer-events:none!important;
  background:linear-gradient(
    90deg,
    #FFF9F5 0%,
    rgba(255,249,245,.99) 34%,
    rgba(255,249,245,.92) 54%,
    rgba(255,249,245,.62) 72%,
    rgba(255,249,245,.18) 91%,
    rgba(255,249,245,0) 100%
  )!important;
}

/* Right side: only a light uniform transparency, not another fade. */
.tpc-hero::after{
  content:"";
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:27%!important;
  z-index:1!important;
  pointer-events:none!important;
  background:rgba(255,249,245,.16)!important;
}

/* Hide old image-column styling from earlier versions. */
.tpc-hero-photo-col,
.tpc-hero-photo-col::before,
.tpc-hero-photo-col::after{
  display:none!important;
}

/* Left content sits closer together and vertically balanced. */
.tpc-hero-left-col{
  position:relative!important;
  z-index:4!important;
  display:flex!important;
  align-items:center!important;
  background:transparent!important;
}
.tpc-hero-left-col>.elementor-element-populated{
  width:100%!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.tpc-hero-left-col .elementor-widget-heading{
  margin-bottom:10px!important;
}
.tpc-hero-left-col .elementor-widget-heading h1{
  margin:0!important;
}
.tpc-hero-copy{
  max-width:440px!important;
  margin:0!important;
  font-size:18px!important;
  line-height:1.48!important;
}
.tpc-benefits{
  margin-top:14px!important;
  margin-bottom:0!important;
}
.tpc-benefits .elementor-column{
  padding-right:6px!important;
}
.tpc-benefits .elementor-icon-box-icon{
  margin-bottom:6px!important;
}
.tpc-benefits .elementor-icon-box-title{
  max-width:118px!important;
  margin-top:6px!important;
}
.tpc-hero-ctas{
  margin-top:14px!important;
  max-width:430px!important;
}

/* Booking panel shifted right, but stays within the hero. */
.tpc-booking-col{
  position:relative!important;
  z-index:5!important;
  margin-left:14px!important;
  margin-right:-24px!important;
  display:flex!important;
  align-items:center!important;
}
.tpc-booking-col>.elementor-element-populated{
  width:100%!important;
}
.tpc-home-booking{
  width:118%!important;
  max-width:none!important;
  min-height:490px!important;
  padding:20px 22px 22px!important;
}
.tpc-home-booking label{
  margin:10px 0!important;
}
.tpc-home-booking .tpc-home-check{
  margin-top:14px!important;
}

@media(max-width:1100px){
  .tpc-hero::before{width:50%!important}
  .tpc-booking-col{margin-right:-10px!important}
  .tpc-home-booking{width:108%!important}
}
@media(max-width:900px){
  .tpc-hero{
    background-position:center top!important;
  }
  .tpc-hero::before,
  .tpc-hero::after{
    display:none!important;
  }
  .tpc-hero-left-col{
    background:rgba(255,249,245,.92)!important;
  }
  .tpc-booking-col{
    margin-left:0!important;
    margin-right:0!important;
  }
  .tpc-home-booking{
    width:100%!important;
  }
}

/* v4.13 — restore hero photo + tighten left content only */

/* Restore center image column explicitly */
.tpc-hero-photo-col{
  display:block!important;
  position:relative!important;
  z-index:2!important;
  overflow:visible!important;
}
.tpc-hero-photo-col .elementor-widget-image,
.tpc-hero-photo-col .elementor-widget-image .elementor-widget-container{
  display:block!important;
  height:100%!important;
}
.tpc-hero-photo-col img{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:118%!important;
  max-width:none!important;
  height:100%!important;
  min-height:520px!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:translateX(-6%)!important;
}

/* Soft left fade over photo only; keep photo visible */
.tpc-hero-photo-col::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:3!important;
  top:0!important;
  bottom:0!important;
  left:-18%!important;
  width:34%!important;
  pointer-events:none!important;
  background:linear-gradient(
    90deg,
    #FFF9F5 0%,
    rgba(255,249,245,.95) 22%,
    rgba(255,249,245,.70) 52%,
    rgba(255,249,245,.25) 78%,
    rgba(255,249,245,0) 100%
  )!important;
}

/* Light uniform right veil, not a fade */
.tpc-hero-photo-col::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:3!important;
  top:0!important;
  bottom:0!important;
  right:-18%!important;
  width:28%!important;
  pointer-events:none!important;
  background:rgba(255,249,245,.14)!important;
}

/* Left block more compact and slightly higher */
.tpc-hero-left-col{
  display:flex!important;
  align-items:center!important;
  background:#FFF9F5!important;
}
.tpc-hero-left-col>.elementor-element-populated{
  width:100%!important;
}
.tpc-hero-left-col .elementor-widget-heading{
  margin-bottom:6px!important;
}
.tpc-hero-copy{
  margin-bottom:0!important;
  line-height:1.44!important;
}
.tpc-benefits{
  margin-top:8px!important;
  margin-bottom:0!important;
}
.tpc-benefits .elementor-icon-box-icon{
  margin-bottom:4px!important;
}
.tpc-benefits .elementor-icon-box-title{
  margin-top:4px!important;
}
.tpc-hero-ctas{
  margin-top:8px!important;
}

/* Do not alter booking panel dimensions/position from v4.12 */
@media(max-width:900px){
  .tpc-hero-photo-col::before,
  .tpc-hero-photo-col::after{
    display:none!important;
  }
  .tpc-hero-photo-col img{
    width:100%!important;
    transform:none!important;
  }
}

/* v4.14 — clean hero composition. Booking panel intentionally untouched. */

/* Treat the left content as one compact vertical composition. */
.tpc-hero-left-col{
  position:relative!important;
  z-index:6!important;
  display:flex!important;
  align-items:center!important;
  background:#FFF9F5!important;
}
.tpc-hero-left-col>.elementor-element-populated{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.tpc-hero-left-col .elementor-widget-heading{
  width:100%!important;
  margin:0 0 14px!important;
}
.tpc-hero-left-col .elementor-widget-heading h1{
  margin:0!important;
  line-height:1.04!important;
}
.tpc-hero-copy{
  width:100%!important;
  max-width:460px!important;
  margin:0!important;
  font-size:18px!important;
  line-height:1.48!important;
}
.tpc-hero-copy p{
  margin:0!important;
}

/* Benefits now belong visually to the copy instead of floating far below it. */
.tpc-benefits{
  width:100%!important;
  margin:26px 0 0!important;
}
.tpc-benefits>.elementor-container{
  align-items:flex-start!important;
}
.tpc-benefits .elementor-column{
  width:33.333%!important;
}
.tpc-benefits .elementor-widget-icon-box{
  margin:0!important;
}
.tpc-benefits .elementor-icon-box-wrapper{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
}
.tpc-benefits .elementor-icon-box-icon{
  margin:0 0 8px!important;
}
.tpc-benefits .elementor-icon-box-title{
  width:112px!important;
  max-width:112px!important;
  min-height:36px!important;
  margin:0 auto!important;
  line-height:1.16!important;
  text-align:center!important;
}

/* CTA row follows benefits closely and stays balanced. */
.tpc-hero-ctas{
  width:100%!important;
  max-width:430px!important;
  margin:24px 0 0!important;
}
.tpc-hero-ctas .elementor-column{
  width:50%!important;
}
.tpc-hero-ctas .elementor-button{
  width:100%!important;
}

/* Photo is a clean layer extending underneath the edges, with no hard cut. */
.tpc-hero-photo-col{
  display:block!important;
  position:relative!important;
  z-index:2!important;
  overflow:visible!important;
}
.tpc-hero-photo-col .elementor-widget-image,
.tpc-hero-photo-col .elementor-widget-image .elementor-widget-container{
  height:100%!important;
  overflow:visible!important;
}
.tpc-hero-photo-col img{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:136%!important;
  max-width:none!important;
  height:100%!important;
  min-height:535px!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:translateX(-13%)!important;
}

/* Strong gradual blend only on the left. */
.tpc-hero-photo-col::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:4!important;
  top:0!important;
  bottom:0!important;
  left:-34%!important;
  width:55%!important;
  pointer-events:none!important;
  background:linear-gradient(
    90deg,
    #FFF9F5 0%,
    #FFF9F5 16%,
    rgba(255,249,245,.98) 30%,
    rgba(255,249,245,.86) 48%,
    rgba(255,249,245,.58) 67%,
    rgba(255,249,245,.26) 83%,
    rgba(255,249,245,0) 100%
  )!important;
}

/* Right side: a uniform veil only, explicitly not a gradient. */
.tpc-hero-photo-col::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:4!important;
  top:0!important;
  right:-35%!important;
  bottom:0!important;
  width:43%!important;
  pointer-events:none!important;
  background:rgba(255,249,245,.18)!important;
}

/* Prevent old hero pseudo-background from competing with the real photo. */
.tpc-hero{
  background:#FFF9F5!important;
}
.tpc-hero::before,
.tpc-hero::after{
  content:none!important;
  display:none!important;
}

@media(max-width:900px){
  .tpc-hero-left-col>.elementor-element-populated{
    display:block!important;
  }
  .tpc-benefits{
    margin-top:20px!important;
  }
  .tpc-hero-ctas{
    margin-top:20px!important;
  }
  .tpc-hero-photo-col img{
    width:100%!important;
    transform:none!important;
  }
  .tpc-hero-photo-col::before,
  .tpc-hero-photo-col::after{
    display:none!important;
  }
}

/* =========================================================
   v4.15 HARD HERO RESET
   Unique classes intentionally override all older hero rules.
   Booking panel styles are NOT changed.
   ========================================================= */

.tpc-hero-v415{
  position:relative!important;
  overflow:hidden!important;
  min-height:560px!important;
  background:#FFF9F5!important;
}
.tpc-hero-v415 > .elementor-container{
  min-height:560px!important;
  align-items:stretch!important;
  position:relative!important;
}

/* LEFT: one compact, vertically-centered stack */
.tpc-hero-left-v415{
  position:relative!important;
  z-index:6!important;
  display:flex!important;
  align-items:center!important;
  background:#FFF9F5!important;
}
.tpc-hero-left-v415 > .elementor-element-populated{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.tpc-hero-left-v415 .elementor-widget-heading{
  width:100%!important;
  margin:0 0 12px!important;
}
.tpc-hero-left-v415 .elementor-widget-heading h1{
  margin:0!important;
  line-height:1.02!important;
}
.tpc-hero-left-v415 .elementor-widget-text-editor{
  width:100%!important;
  margin:0!important;
}
.tpc-hero-left-v415 .tpc-hero-copy{
  max-width:440px!important;
  margin:0!important;
  font-size:18px!important;
  line-height:1.46!important;
}

/* Remove spacer widgets inside the hero left stack. */
.tpc-hero-left-v415 .elementor-widget-spacer{
  display:none!important;
}

/* Benefits pulled up and grouped tightly */
.tpc-hero-left-v415 .tpc-benefits{
  width:100%!important;
  margin:20px 0 0!important;
}
.tpc-hero-left-v415 .tpc-benefits > .elementor-container{
  align-items:flex-start!important;
}
.tpc-hero-left-v415 .tpc-benefits .elementor-column{
  width:33.333%!important;
}
.tpc-hero-left-v415 .tpc-benefits .elementor-widget-icon-box{
  margin:0!important;
}
.tpc-hero-left-v415 .tpc-benefits .elementor-icon-box-icon{
  margin:0 0 7px!important;
}
.tpc-hero-left-v415 .tpc-benefits .elementor-icon-box-title{
  max-width:112px!important;
  margin:0 auto!important;
  min-height:34px!important;
  line-height:1.15!important;
  text-align:center!important;
}

/* CTA row immediately under benefits */
.tpc-hero-left-v415 .tpc-hero-ctas{
  width:100%!important;
  max-width:420px!important;
  margin:18px 0 0!important;
}
.tpc-hero-left-v415 .tpc-hero-ctas .elementor-column{
  width:50%!important;
}
.tpc-hero-left-v415 .tpc-hero-ctas .elementor-button{
  width:100%!important;
  min-height:46px!important;
}

/* PHOTO: wide, natural, extends both directions */
.tpc-hero-photo-v415{
  display:block!important;
  position:relative!important;
  z-index:2!important;
  overflow:visible!important;
}
.tpc-hero-photo-v415 .elementor-widget-image,
.tpc-hero-photo-v415 .elementor-widget-image .elementor-widget-container{
  display:block!important;
  height:100%!important;
  overflow:visible!important;
}
.tpc-hero-photo-v415 img{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:145%!important;
  max-width:none!important;
  height:100%!important;
  min-height:560px!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:translateX(-18%)!important;
  border-radius:0!important;
}

/* LEFT ONLY: real gradual fade into the base color */
.tpc-hero-photo-v415::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:4!important;
  top:0!important;
  bottom:0!important;
  left:-46%!important;
  width:68%!important;
  pointer-events:none!important;
  background:linear-gradient(
    90deg,
    #FFF9F5 0%,
    #FFF9F5 18%,
    rgba(255,249,245,.98) 34%,
    rgba(255,249,245,.86) 52%,
    rgba(255,249,245,.58) 70%,
    rgba(255,249,245,.24) 86%,
    rgba(255,249,245,0) 100%
  )!important;
}

/* RIGHT: uniform transparency veil only, no fade */
.tpc-hero-photo-v415::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:4!important;
  top:0!important;
  bottom:0!important;
  right:-46%!important;
  width:58%!important;
  pointer-events:none!important;
  background:rgba(255,249,245,.20)!important;
}

/* Neutralise older pseudo layers on the main hero */
.tpc-hero-v415::before,
.tpc-hero-v415::after{
  content:none!important;
  display:none!important;
}

/* Crucial: do NOT touch .tpc-booking-col or .tpc-home-booking here. */

@media(max-width:900px){
  .tpc-hero-v415{
    min-height:auto!important;
  }
  .tpc-hero-left-v415{
    align-items:flex-start!important;
  }
  .tpc-hero-left-v415 > .elementor-element-populated{
    display:block!important;
  }
  .tpc-hero-photo-v415 img{
    width:100%!important;
    transform:none!important;
    min-height:340px!important;
  }
  .tpc-hero-photo-v415::before,
  .tpc-hero-photo-v415::after{
    display:none!important;
  }
}

/* =========================================================
   v4.16 — ONLY widen the hero photo toward the right.
   Left content and booking panel intentionally untouched.
   ========================================================= */

/* Let the existing image occupy substantially more horizontal space.
   The image itself is not stretched out of proportion: object-fit
   preserves the animals while the visual container extends right. */
.tpc-hero-v415 .tpc-hero-photo-v415{
  overflow:visible!important;
  z-index:2!important;
}
.tpc-hero-v415 .tpc-hero-photo-v415 .elementor-widget-image,
.tpc-hero-v415 .tpc-hero-photo-v415 .elementor-widget-image .elementor-widget-container{
  overflow:visible!important;
}
.tpc-hero-v415 .tpc-hero-photo-v415 img{
  width:166%!important;
  max-width:none!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:46% center!important;
  transform:translateX(-16%)!important;
}

/* Keep the existing left fade essentially unchanged. */
.tpc-hero-v415 .tpc-hero-photo-v415::before{
  left:-42%!important;
  width:61%!important;
}

/* The newly extended right portion is softly veiled, not faded. */
.tpc-hero-v415 .tpc-hero-photo-v415::after{
  right:-66%!important;
  width:76%!important;
  background:rgba(255,249,245,.17)!important;
}

/* Ensure booking stays visually above the extended image without
   changing any of its dimensions, padding, fields or position. */
.tpc-hero-v415 .tpc-booking-col{
  z-index:7!important;
}

@media(max-width:1100px){
  .tpc-hero-v415 .tpc-hero-photo-v415 img{
    width:152%!important;
    transform:translateX(-14%)!important;
  }
}
@media(max-width:900px){
  .tpc-hero-v415 .tpc-hero-photo-v415 img{
    width:100%!important;
    transform:none!important;
  }
}

/* =========================================================
   v5.0 — surgical hero fix
   Remove the visible translucent band next to booking.
   Everything else stays as v4.16.
   ========================================================= */

/* Remove the right-side pseudo overlay entirely.
   This eliminates the visible vertical seam/box over the photo. */
.tpc-hero-v415 .tpc-hero-photo-v415::after{
  content:none!important;
  display:none!important;
  background:none!important;
}

/* Keep the left fade exactly as before. */
.tpc-hero-v415 .tpc-hero-photo-v415::before{
  display:block!important;
}

/* Preserve image width/position from v4.16. */
.tpc-hero-v415 .tpc-hero-photo-v415 img{
  width:166%!important;
  max-width:none!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:46% center!important;
  transform:translateX(-16%)!important;
}

/* Booking stays above the image; no other booking changes. */
.tpc-hero-v415 .tpc-booking-col{
  z-index:7!important;
}

/* =========================================================
   v5.1 — Homepage services cards only. Hero untouched.
   ========================================================= */
.tpc-services-home .elementor-inner-section > .elementor-container{
  gap:14px!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
}
.tpc-services-home .tpc-service-card-v51{
  flex:1 1 0!important;
  width:auto!important;
  max-width:none!important;
}
.tpc-services-home .tpc-service-card-v51 > .elementor-element-populated{
  min-height:235px!important;
  height:100%!important;
  padding:30px 12px!important;
  border:1px solid #E9E1EC!important;
  border-radius:18px!important;
  background:#FFFFFF!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 8px 24px rgba(76,43,111,.035)!important;
}
.tpc-services-home .tpc-service-card-v51 .elementor-widget-icon-box{
  width:100%!important;
  margin:0!important;
}
.tpc-services-home .tpc-service-card-v51 .elementor-icon{
  width:62px!important;
  height:62px!important;
  font-size:27px!important;
  background:#F3EBFC!important;
  color:#7040B5!important;
  border-radius:50%!important;
}
.tpc-services-home .tpc-service-card-v51 .elementor-icon-box-title{
  max-width:150px!important;
  margin:16px auto 0!important;
  font-size:16px!important;
  line-height:1.25!important;
  font-weight:700!important;
  text-align:center!important;
}
@media(max-width:900px){
  .tpc-services-home .elementor-inner-section > .elementor-container{
    flex-wrap:wrap!important;
    gap:12px!important;
  }
  .tpc-services-home .tpc-service-card-v51{
    flex:1 1 calc(50% - 12px)!important;
  }
}
@media(max-width:600px){
  .tpc-services-home .tpc-service-card-v51{
    flex:1 1 100%!important;
  }
  .tpc-services-home .tpc-service-card-v51 > .elementor-element-populated{
    min-height:190px!important;
  }
}

/* =========================================================
   v5.2 — Serviços + Como funciona apenas
   ========================================================= */
.tpc-services-home .elementor-widget-heading{margin-bottom:20px!important}
.tpc-services-home .elementor-inner-section>.elementor-container{display:flex!important;gap:14px!important;flex-wrap:nowrap!important;align-items:stretch!important}
.tpc-services-home .tpc-service-card-v52{flex:1 1 0!important;width:auto!important}
.tpc-services-home .tpc-service-card-v52>.elementor-element-populated{min-height:220px!important;height:100%!important;padding:28px 12px!important;border:1px solid #E9E1EC!important;border-radius:16px!important;background:#FFF!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:0 6px 18px rgba(76,43,111,.03)!important}
.tpc-services-home .tpc-service-card-v52 .elementor-widget-icon-box{text-align:center!important;width:100%!important;margin:0!important}
.tpc-services-home .tpc-service-card-v52 .elementor-icon-box-icon{margin-bottom:12px!important}
.tpc-services-home .tpc-service-card-v52 .elementor-icon{width:70px!important;height:70px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#F1E8FB!important;color:#5F329D!important;font-size:31px!important}
.tpc-services-home .tpc-service-card-v52 .elementor-icon i{color:#5F329D!important}
.tpc-services-home .tpc-service-card-v52 .elementor-icon-box-title{max-width:155px!important;margin:0 auto!important;font-size:16px!important;line-height:1.18!important;font-weight:700!important;text-align:center!important;color:#10182E!important}
.tpc-services-home .tpc-service-card-v52 .elementor-icon-box-description{display:none!important}

.tpc-how-home .elementor-widget-heading{margin-bottom:18px!important}
.tpc-how-home .elementor-inner-section>.elementor-container{display:flex!important;gap:28px!important;align-items:flex-start!important}
.tpc-how-step-v52{position:relative!important;text-align:center!important}
.tpc-how-step-v52>.elementor-element-populated{padding:8px 10px 14px!important;min-height:150px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important}
.tpc-how-step-v52 .elementor-widget-html{position:absolute!important;top:0!important;left:17%!important;z-index:4!important;margin:0!important}
.tpc-step-number-v52{width:30px!important;height:30px!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#7546B2!important;color:#FFF!important;font-size:14px!important;font-weight:700!important}
.tpc-how-step-v52 .elementor-widget-icon-box{width:100%!important;margin:0!important;text-align:center!important}
.tpc-how-step-v52 .elementor-icon-box-icon{margin-bottom:10px!important}
.tpc-how-step-v52 .elementor-icon{width:68px!important;height:68px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;background:#FFF!important;border:1px solid #E6DCEF!important;color:#6337A3!important;font-size:28px!important;box-shadow:0 5px 15px rgba(76,43,111,.03)!important}
.tpc-how-step-v52 .elementor-icon i{color:#6337A3!important}
.tpc-how-step-v52 .elementor-icon-box-title{max-width:180px!important;margin:0 auto!important;font-size:16px!important;line-height:1.18!important;font-weight:700!important;color:#10182E!important}
.tpc-how-step-v52 .elementor-icon-box-description{display:none!important}
.tpc-how-step-v52:not(:last-child)::after{content:"";position:absolute;top:46px;right:-15px;width:1px;height:68px;background:#ECE5F0}

@media(max-width:900px){
 .tpc-services-home .elementor-inner-section>.elementor-container,.tpc-how-home .elementor-inner-section>.elementor-container{flex-wrap:wrap!important;gap:14px!important}
 .tpc-services-home .tpc-service-card-v52,.tpc-how-step-v52{flex:1 1 calc(50% - 14px)!important}
 .tpc-how-step-v52::after{display:none!important}
}
@media(max-width:600px){
 .tpc-services-home .tpc-service-card-v52,.tpc-how-step-v52{flex:1 1 100%!important}
}


/* =========================================================
   v5.3 — Os meus serviços: ajuste fino de largura/espaçamento
   Nenhuma outra secção é alterada.
   ========================================================= */
.tpc-services-home .elementor-inner-section > .elementor-container{
  gap:10px!important;
  padding-left:10px!important;
  padding-right:10px!important;
  box-sizing:border-box!important;
}
.tpc-services-home .tpc-service-card-v52{
  flex:1 1 0!important;
  width:calc(20% - 8px)!important;
  max-width:calc(20% - 8px)!important;
  box-sizing:border-box!important;
}

@media(max-width:900px){
  .tpc-services-home .elementor-inner-section > .elementor-container{
    gap:10px!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .tpc-services-home .tpc-service-card-v52{
    flex:1 1 calc(50% - 5px)!important;
    width:calc(50% - 5px)!important;
    max-width:calc(50% - 5px)!important;
  }
}
@media(max-width:600px){
  .tpc-services-home .tpc-service-card-v52{
    flex:1 1 100%!important;
    width:100%!important;
    max-width:100%!important;
  }
}


/* =========================================================
   v5.4 — Os meus serviços: redução VISUAL explícita
   Cada cartão perde 10px de cada lado (20px no total)
   e mantém 10px reais de espaço entre cartões.
   ========================================================= */

.tpc-services-home .elementor-inner-section > .elementor-container{
  display:flex!important;
  gap:10px!important;
  padding-left:0!important;
  padding-right:0!important;
  align-items:stretch!important;
  justify-content:space-between!important;
}

/* The Elementor column keeps its layout slot, but the visible card
   is inset 10px on BOTH sides so the reduction is unmistakable. */
.tpc-services-home .tpc-service-card-v52{
  flex:1 1 0!important;
  width:auto!important;
  max-width:none!important;
  padding-left:10px!important;
  padding-right:10px!important;
  box-sizing:border-box!important;
}

/* Move the actual visual card styling to the inner populated element
   so the 10px left/right inset becomes visible space. */
.tpc-services-home .tpc-service-card-v52 > .elementor-element-populated{
  width:100%!important;
  box-sizing:border-box!important;
  margin:0!important;
}

/* Preserve 10px between the visible cards even after their 20px reduction. */
.tpc-services-home .tpc-service-card-v52 + .tpc-service-card-v52{
  margin-left:0!important;
}

/* Tablet */
@media(max-width:900px){
  .tpc-services-home .elementor-inner-section > .elementor-container{
    gap:10px!important;
    justify-content:flex-start!important;
  }
  .tpc-services-home .tpc-service-card-v52{
    flex:1 1 50%!important;
    width:50%!important;
    max-width:50%!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
}

/* Mobile */
@media(max-width:600px){
  .tpc-services-home .tpc-service-card-v52{
    flex:1 1 100%!important;
    width:100%!important;
    max-width:100%!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
}


/* =========================================================
   v5.5 — Sobre mim (direita) + O que dizem
   ========================================================= */

/* SOBRE MIM — apenas a coluna de informação do lado direito.
   Mantém estrutura/cores; aumenta iconografia e texto. */
.tpc-about-home .elementor-column:last-child .elementor-icon,
.tpc-about .elementor-column:last-child .elementor-icon,
.tpc-about-home .elementor-column:last-child .elementor-icon-box-icon i,
.tpc-about .elementor-column:last-child .elementor-icon-box-icon i{
  font-size:30px!important;
}
.tpc-about-home .elementor-column:last-child .elementor-icon,
.tpc-about .elementor-column:last-child .elementor-icon{
  width:58px!important;
  height:58px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.tpc-about-home .elementor-column:last-child .elementor-icon-box-title,
.tpc-about .elementor-column:last-child .elementor-icon-box-title{
  font-size:17px!important;
  line-height:1.3!important;
}
.tpc-about-home .elementor-column:last-child .elementor-icon-box-description,
.tpc-about .elementor-column:last-child .elementor-icon-box-description,
.tpc-about-home .elementor-column:last-child .elementor-widget-text-editor,
.tpc-about .elementor-column:last-child .elementor-widget-text-editor{
  font-size:16px!important;
  line-height:1.55!important;
}

/* O QUE DIZEM — cartões de altura uniforme.
   O texto cresce no centro; avatar e nome ficam sempre na mesma linha inferior. */
.tpc-testimonials-home .elementor-inner-section > .elementor-container,
.tpc-testimonials .elementor-inner-section > .elementor-container{
  align-items:stretch!important;
}
.tpc-testimonials-home .elementor-inner-section > .elementor-container > .elementor-column,
.tpc-testimonials .elementor-inner-section > .elementor-container > .elementor-column{
  display:flex!important;
}
.tpc-testimonials-home .elementor-inner-section > .elementor-container > .elementor-column > .elementor-element-populated,
.tpc-testimonials .elementor-inner-section > .elementor-container > .elementor-column > .elementor-element-populated{
  width:100%!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
}
.tpc-testimonials-home .elementor-testimonial-wrapper,
.tpc-testimonials .elementor-testimonial-wrapper,
.tpc-testimonials-home .elementor-widget-testimonial,
.tpc-testimonials .elementor-widget-testimonial{
  height:100%!important;
}
.tpc-testimonials-home .elementor-testimonial-wrapper,
.tpc-testimonials .elementor-testimonial-wrapper{
  display:flex!important;
  flex-direction:column!important;
}
.tpc-testimonials-home .elementor-testimonial-content,
.tpc-testimonials .elementor-testimonial-content{
  flex:1 1 auto!important;
}
.tpc-testimonials-home .elementor-testimonial-meta,
.tpc-testimonials .elementor-testimonial-meta{
  margin-top:auto!important;
  min-height:62px!important;
  display:flex!important;
  align-items:center!important;
}
.tpc-testimonials-home .elementor-testimonial-image img,
.tpc-testimonials .elementor-testimonial-image img{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  object-fit:cover!important;
  border-radius:50%!important;
}
.tpc-testimonials-home .elementor-testimonial-name,
.tpc-testimonials .elementor-testimonial-name{
  line-height:1.25!important;
  margin:0!important;
}

@media(max-width:767px){
  .tpc-testimonials-home .elementor-inner-section > .elementor-container > .elementor-column,
  .tpc-testimonials .elementor-inner-section > .elementor-container > .elementor-column{
    display:block!important;
  }
}


/* =========================================================
   v5.6 — O que dizem: alinhamento 100% uniforme
   Usa a classe real da secção (.tpc-reviews-home) e uma classe
   dedicada por cartão. Nenhuma outra secção é alterada.
   ========================================================= */

.tpc-reviews-home .elementor-inner-section > .elementor-container{
  display:flex!important;
  align-items:stretch!important;
}

/* Todas as colunas/cartões têm exatamente a mesma altura disponível. */
.tpc-reviews-home .tpc-review-card-v56{
  display:flex!important;
  align-self:stretch!important;
}

.tpc-reviews-home .tpc-review-card-v56 > .elementor-element-populated{
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  height:100%!important;
}

/* O widget ocupa toda a altura do cartão. */
.tpc-reviews-home .tpc-review-card-v56 .elementor-widget-testimonial{
  display:flex!important;
  flex:1 1 auto!important;
  width:100%!important;
  height:100%!important;
  margin-bottom:0!important;
}

.tpc-reviews-home .tpc-review-card-v56 .elementor-widget-container{
  display:flex!important;
  flex:1 1 auto!important;
  width:100%!important;
  height:100%!important;
}

/* Wrapper com altura igual e layout vertical controlado. */
.tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-wrapper{
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  width:100%!important;
  height:100%!important;
  min-height:190px!important;
  box-sizing:border-box!important;
}

/* O texto absorve a diferença de comprimento. */
.tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-content{
  flex:1 1 auto!important;
  margin-bottom:14px!important;
}

/* Foto + nome + estrelas ficam presos ao fundo em TODOS os cartões. */
.tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-meta{
  display:flex!important;
  align-items:center!important;
  flex:0 0 auto!important;
  width:100%!important;
  min-height:62px!important;
  margin-top:auto!important;
  padding-top:0!important;
}

/* Avatar sempre com as mesmas dimensões e alinhamento. */
.tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-image{
  flex:0 0 62px!important;
  width:62px!important;
  height:62px!important;
  margin-right:12px!important;
}

.tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-image img{
  display:block!important;
  width:62px!important;
  height:62px!important;
  min-width:62px!important;
  min-height:62px!important;
  object-fit:cover!important;
  border-radius:50%!important;
}

/* Nome e classificação começam exatamente à mesma altura. */
.tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-details{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  min-height:62px!important;
  margin:0!important;
}

.tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-name,
.tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-job{
  margin:0!important;
  padding:0!important;
}

@media(max-width:767px){
  .tpc-reviews-home .elementor-inner-section > .elementor-container{
    display:block!important;
  }
  .tpc-reviews-home .tpc-review-card-v56{
    display:block!important;
  }
  .tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-wrapper{
    min-height:0!important;
  }
}


/* =========================================================
   v5.7 — Reviews dinâmicas geridas no WordPress
   ========================================================= */

.tpc-reviews-grid-v57{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}

.tpc-review-card-v57{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:14px;
  align-items:start;
  height:100%;
  min-height:210px;
  padding:22px;
  box-sizing:border-box;
  background:#FFFFFF;
  border:1px solid #E9E1EC;
  border-radius:18px;
  box-shadow:0 6px 18px rgba(76,43,111,.03);
}

.tpc-review-avatar-v57{
  width:64px;
  min-width:64px;
  margin:0;
  padding:0;
  align-self:start;
}

.tpc-review-avatar-v57 img,
.tpc-review-avatar-placeholder-v57{
  display:block;
  width:64px;
  height:64px;
  min-width:64px;
  min-height:64px;
  border-radius:50%;
  object-fit:cover;
}

.tpc-review-avatar-placeholder-v57{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#F1E8FB;
  color:#6A3DA8;
  font-size:24px;
}

.tpc-review-content-v57{
  display:flex;
  flex-direction:column;
  min-width:0;
  height:100%;
}

.tpc-review-text-v57{
  flex:1 1 auto;
  font-size:18px;
  line-height:1.55;
  color:#2B2F3A;
}

.tpc-review-text-v57 p{
  margin:0;
}

.tpc-review-footer-v57{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:9px;
  margin-top:16px;
  min-height:24px;
}

.tpc-review-name-v57{
  flex:0 0 auto;
  font-size:16px;
  line-height:1.2;
  font-weight:700;
  color:#10182E;
}

.tpc-review-paws-v57{
  display:inline-flex;
  align-items:center;
  gap:3px;
  white-space:nowrap;
  line-height:1;
}

.tpc-review-paw-v57{
  font-size:13px;
  color:#D8CFDF;
}

.tpc-review-paw-v57.is-active{
  color:#6A3DA8;
}

@media(max-width:900px){
  .tpc-reviews-grid-v57{
    grid-template-columns:1fr;
  }
  .tpc-review-card-v57{
    min-height:0;
  }
}

@media(max-width:600px){
  .tpc-review-card-v57{
    grid-template-columns:54px minmax(0,1fr);
    gap:12px;
    padding:18px;
  }
  .tpc-review-avatar-v57,
  .tpc-review-avatar-v57 img,
  .tpc-review-avatar-placeholder-v57{
    width:54px;
    height:54px;
    min-width:54px;
    min-height:54px;
  }
  .tpc-review-text-v57{
    font-size:17px;
  }
}


/* =========================================================
   v5.8 — Reviews: patinhas visíveis + avatar mais à esquerda
   ========================================================= */

.tpc-review-card-v57{
  padding-left:14px!important;
  grid-template-columns:64px minmax(0,1fr)!important;
  column-gap:12px!important;
}

.tpc-review-avatar-v57{
  margin-left:0!important;
  justify-self:start!important;
}

.tpc-review-paws-v58{
  display:inline-flex!important;
  align-items:center!important;
  gap:2px!important;
  white-space:nowrap!important;
  line-height:1!important;
  transform:translateY(1px);
}

.tpc-review-paw-v58{
  display:inline-block!important;
  font-size:14px!important;
  line-height:1!important;
  filter:grayscale(1);
  opacity:.28;
}

.tpc-review-paw-v58.is-active{
  filter:none;
  opacity:1;
}

/* Ensure name and paws stay visually together. */
.tpc-review-footer-v57{
  display:flex!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
}

@media(max-width:600px){
  .tpc-review-card-v57{
    padding-left:12px!important;
  }
}


/* =========================================================
   v5.9 — Reviews: avatares circulares sem cortes
   Apenas corrige o contentor/recorte das imagens.
   ========================================================= */

.tpc-review-card-v57,
.tpc-review-content-v57{
  overflow:visible!important;
}

.tpc-review-avatar-v57{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:66px!important;
  height:66px!important;
  min-width:66px!important;
  min-height:66px!important;
  padding:1px!important;
  margin:0!important;
  overflow:visible!important;
  box-sizing:border-box!important;
  border-radius:50%!important;
}

.tpc-review-avatar-v57 img,
.tpc-review-avatar-placeholder-v57{
  position:relative!important;
  display:block!important;
  width:64px!important;
  height:64px!important;
  min-width:64px!important;
  min-height:64px!important;
  max-width:64px!important;
  max-height:64px!important;
  aspect-ratio:1 / 1!important;
  margin:0!important;
  padding:0!important;
  border-radius:50%!important;
  object-fit:cover!important;
  object-position:center!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  clip-path:circle(50% at 50% 50%)!important;
}

@media(max-width:600px){
  .tpc-review-avatar-v57{
    width:56px!important;
    height:56px!important;
    min-width:56px!important;
    min-height:56px!important;
  }
  .tpc-review-avatar-v57 img,
  .tpc-review-avatar-placeholder-v57{
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    min-height:54px!important;
    max-width:54px!important;
    max-height:54px!important;
  }
}


/* =========================================================
   v5.10 — O que dizem: geometria idêntica nos 3 cartões
   A caixa da direita passa a ser o padrão visual para todas.
   ========================================================= */

.tpc-reviews-grid-v57{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}

/* Todos os cartões usam exatamente a mesma caixa e alinhamento interno. */
.tpc-reviews-grid-v57 > .tpc-review-card-v57{
  display:grid!important;
  grid-template-columns:66px minmax(0,1fr)!important;
  grid-template-rows:1fr!important;
  column-gap:12px!important;
  align-items:start!important;
  align-content:stretch!important;

  width:100%!important;
  min-width:0!important;
  height:100%!important;
  min-height:210px!important;

  margin:0!important;
  padding:22px 22px 22px 14px!important;

  box-sizing:border-box!important;
  overflow:visible!important;
}

/* Avatar: mesma posição, caixa e recorte nos três cartões. */
.tpc-reviews-grid-v57 > .tpc-review-card-v57 > .tpc-review-avatar-v57{
  grid-column:1!important;
  grid-row:1!important;
  align-self:start!important;
  justify-self:start!important;

  display:flex!important;
  align-items:center!important;
  justify-content:center!important;

  width:66px!important;
  height:66px!important;
  min-width:66px!important;
  min-height:66px!important;

  margin:0!important;
  padding:1px!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  border-radius:50%!important;
}

.tpc-reviews-grid-v57 > .tpc-review-card-v57 > .tpc-review-avatar-v57 img,
.tpc-reviews-grid-v57 > .tpc-review-card-v57 > .tpc-review-avatar-v57 .tpc-review-avatar-placeholder-v57{
  display:block!important;
  width:64px!important;
  height:64px!important;
  min-width:64px!important;
  min-height:64px!important;
  max-width:64px!important;
  max-height:64px!important;

  margin:0!important;
  padding:0!important;

  border-radius:50%!important;
  object-fit:cover!important;
  object-position:center center!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  clip-path:circle(50% at 50% 50%)!important;
}

/* Conteúdo: mesma coluna e mesma altura útil em todos os cartões. */
.tpc-reviews-grid-v57 > .tpc-review-card-v57 > .tpc-review-content-v57{
  grid-column:2!important;
  grid-row:1!important;

  display:flex!important;
  flex-direction:column!important;
  align-self:stretch!important;

  width:100%!important;
  min-width:0!important;
  height:100%!important;

  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
}

/* Texto ocupa a zona variável sem deslocar o rodapé. */
.tpc-reviews-grid-v57 .tpc-review-text-v57{
  flex:1 1 auto!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
}

/* Nome + patinhas ficam exatamente na mesma base nas 3 caixas. */
.tpc-reviews-grid-v57 .tpc-review-footer-v57{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;

  width:100%!important;
  min-height:24px!important;

  margin:16px 0 0 0!important;
  padding:0!important;
  gap:8px!important;

  box-sizing:border-box!important;
}

.tpc-reviews-grid-v57 .tpc-review-name-v57,
.tpc-reviews-grid-v57 .tpc-review-paws-v58{
  margin:0!important;
  padding:0!important;
  align-self:center!important;
}

/* Tablet/mobile mantém a mesma geometria por cartão. */
@media(max-width:900px){
  .tpc-reviews-grid-v57{
    grid-template-columns:1fr!important;
  }

  .tpc-reviews-grid-v57 > .tpc-review-card-v57{
    min-height:0!important;
  }
}

@media(max-width:600px){
  .tpc-reviews-grid-v57 > .tpc-review-card-v57{
    grid-template-columns:56px minmax(0,1fr)!important;
    column-gap:12px!important;
    padding:18px 18px 18px 12px!important;
  }

  .tpc-reviews-grid-v57 > .tpc-review-card-v57 > .tpc-review-avatar-v57{
    width:56px!important;
    height:56px!important;
    min-width:56px!important;
    min-height:56px!important;
  }

  .tpc-reviews-grid-v57 > .tpc-review-card-v57 > .tpc-review-avatar-v57 img,
  .tpc-reviews-grid-v57 > .tpc-review-card-v57 > .tpc-review-avatar-v57 .tpc-review-avatar-placeholder-v57{
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    min-height:54px!important;
    max-width:54px!important;
    max-height:54px!important;
  }
}


/* =========================================================
   v5.12 — Sobre mim
   Mantém integralmente o layout da v5.10.
   Apenas aumenta ligeiramente a fotografia.
   ========================================================= */

.tpc-about-home .elementor-column:first-child .elementor-widget-image img{
  transform:scale(1.055)!important;
  transform-origin:center center!important;
}

/* Evita que o pequeno aumento invada visualmente outras áreas. */
.tpc-about-home .elementor-column:first-child .elementor-widget-image .elementor-widget-container{
  overflow:hidden!important;
  border-radius:inherit!important;
}

@media(max-width:767px){
  .tpc-about-home .elementor-column:first-child .elementor-widget-image img{
    transform:scale(1.025)!important;
  }
}


/* =========================================================
   v6.0 — Sistema de agendamento + gestão WordPress
   ========================================================= */

.tpc-date-help,
.tpc-extras-help{
  color:var(--tpc-muted);
  margin:0 0 16px;
}

.tpc-stay-info{
  display:grid;
  gap:7px;
  align-content:start;
  padding:12px 14px;
  border:1px solid #ddd6e3;
  border-radius:9px;
  background:#fbf8fd;
}
.tpc-stay-info span{font-weight:700;color:var(--tpc-muted);font-size:12px}
.tpc-stay-info strong{color:var(--tpc-ink)}

.tpc-extra[hidden]{display:none!important}
.tpc-no-extras{padding:16px;border-radius:11px;background:#fbf8fd;color:var(--tpc-muted)}

.tpc-confirm-result{
  display:none;
  margin-top:12px;
  padding:12px 14px;
  border-radius:10px;
  font-weight:600;
}
.tpc-confirm-result.is-success{
  display:block;
  background:#eef9f1;
  border:1px solid #c6e9cf;
  color:#246b36;
}
.tpc-confirm-result.is-error{
  display:block;
  background:#fff1f1;
  border:1px solid #f0cccc;
  color:#9a3030;
}

.tpc-home-date-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.tpc-home-date-grid label{margin-top:0!important;margin-bottom:0!important}

@media(max-width:700px){
  .tpc-home-date-grid{grid-template-columns:1fr}
}


/* =========================================================
   v6.1 — Agendamento adaptativo por tipo de serviço
   ========================================================= */
.tpc-range-only[hidden],
.tpc-home-range-only[hidden]{
  display:none!important;
}


/* v6.2 — Tipos de serviço e horários */
.tpc-end-date-field[hidden],
.tpc-home-end-date-field[hidden]{display:none!important}
.tpc-adaptive-dates input[type="time"],
.tpc-home-date-grid input[type="time"]{width:100%}


/* =========================================================
   v6.3 — Booking hero
   - seletor 24h em intervalos de 30 min
   - caixa lilás ligeiramente mais larga
   ========================================================= */

.tpc-hero-v415 .tpc-booking-col{
  flex-basis:370px!important;
  width:370px!important;
  max-width:370px!important;
}

.tpc-home-booking{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

.tpc-home-date-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:12px!important;
}

.tpc-home-date-grid .tpc-field-wrap,
.tpc-home-date-grid input,
.tpc-home-date-grid select{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

.tpc-home-result{
  display:none!important;
}

@media(max-width:1024px){
  .tpc-hero-v415 .tpc-booking-col{
    width:350px!important;
    max-width:350px!important;
    flex-basis:350px!important;
  }
}

@media(max-width:767px){
  .tpc-hero-v415 .tpc-booking-col{
    width:100%!important;
    max-width:100%!important;
    flex-basis:100%!important;
  }
  .tpc-home-date-grid{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   v6.4 — Hero booking: painel mais largo + ordem fixa
   ========================================================= */
.tpc-hero-v415 .tpc-booking-col{
  flex-basis:410px!important;
  width:410px!important;
  max-width:410px!important;
  margin-right:-24px!important;
}
.tpc-hero-v415 .tpc-home-booking{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
.tpc-home-date-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:12px!important;
  width:100%!important;
}
.tpc-home-date-grid>label{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.tpc-home-date-grid>label:nth-child(1){grid-column:1!important;grid-row:1!important}
.tpc-home-date-grid>label:nth-child(2){grid-column:2!important;grid-row:1!important}
.tpc-home-date-grid>label:nth-child(3){grid-column:1!important;grid-row:2!important}
.tpc-home-date-grid>label:nth-child(4){grid-column:2!important;grid-row:2!important}
.tpc-home-end-date-field{display:block!important}
.tpc-home-date-grid .tpc-field-wrap,
.tpc-home-date-grid input,
.tpc-home-date-grid select{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.tpc-home-result{display:none!important}

@media(max-width:1100px){
  .tpc-hero-v415 .tpc-booking-col{
    flex-basis:390px!important;width:390px!important;max-width:390px!important;margin-right:-12px!important;
  }
}
@media(max-width:767px){
  .tpc-hero-v415 .tpc-booking-col{
    width:100%!important;max-width:100%!important;flex-basis:100%!important;margin-right:0!important;
  }
  .tpc-home-date-grid{grid-template-columns:1fr!important}
  .tpc-home-date-grid>label:nth-child(1),
  .tpc-home-date-grid>label:nth-child(2),
  .tpc-home-date-grid>label:nth-child(3),
  .tpc-home-date-grid>label:nth-child(4){grid-column:1!important;grid-row:auto!important}
}


/* =========================================================
   v6.5 — Hero booking
   +20px à direita e apenas uma data nos serviços diários
   ========================================================= */

.tpc-hero-v415 .tpc-booking-col{
  flex-basis:450px!important;
  width:450px!important;
  max-width:450px!important;
  margin-right:-64px!important;
}

/* Serviços de um único dia: esconder Data de Fim.
   A ordem continua: Data -> Horas -> Nº de Animais. */
.tpc-home-end-date-field[hidden]{
  display:none!important;
}

/* Quando só existe uma data, ocupa a primeira linha inteira. */
.tpc-home-date-grid > label:first-child{
  grid-column:1 / -1!important;
  grid-row:1!important;
}

/* Quando Data de Fim está visível, restaurar duas colunas na primeira linha. */
.tpc-home-date-grid > label:first-child:not(:only-child){
  min-width:0!important;
}
.tpc-home-date-grid > .tpc-home-end-date-field:not([hidden]){
  display:block!important;
  grid-column:2!important;
  grid-row:1!important;
}
.tpc-home-date-grid:has(.tpc-home-end-date-field:not([hidden])) > label:first-child{
  grid-column:1!important;
  grid-row:1!important;
}

/* Horas ficam sempre na linha imediatamente abaixo. */
.tpc-home-date-grid > label:nth-child(3){
  grid-column:1!important;
  grid-row:2!important;
}
.tpc-home-date-grid > label:nth-child(4){
  grid-column:2!important;
  grid-row:2!important;
}

@media(max-width:1100px){
  .tpc-hero-v415 .tpc-booking-col{
    flex-basis:430px!important;
    width:430px!important;
    max-width:430px!important;
    margin-right:-52px!important;
  }
}

@media(max-width:767px){
  .tpc-hero-v415 .tpc-booking-col{
    width:100%!important;
    max-width:100%!important;
    flex-basis:100%!important;
    margin-right:0!important;
  }
  .tpc-home-date-grid > label:first-child,
  .tpc-home-date-grid:has(.tpc-home-end-date-field:not([hidden])) > label:first-child,
  .tpc-home-date-grid > .tpc-home-end-date-field:not([hidden]),
  .tpc-home-date-grid > label:nth-child(3),
  .tpc-home-date-grid > label:nth-child(4){
    grid-column:1!important;
    grid-row:auto!important;
  }
}


/* v6.6 — ficha do patudo antes dos extras + progresso de 6 etapas */
.tpc-booking-progress b small{white-space:nowrap}
@media(max-width:767px){
  .tpc-booking-progress{gap:3px!important}
  .tpc-booking-progress i{min-width:5px!important}
  .tpc-booking-progress b small{font-size:9px!important}
}


/* =========================================================
   v6.7 — Barra de progresso: 6 etapas numa única linha
   ========================================================= */
.tpc-booking-progress{
  display:grid!important;
  grid-template-columns:
    minmax(58px,auto) 1fr
    minmax(58px,auto) 1fr
    minmax(58px,auto) 1fr
    minmax(58px,auto) 1fr
    minmax(58px,auto) 1fr
    minmax(72px,auto)!important;
  align-items:start!important;
  column-gap:0!important;
  width:100%!important;
  overflow:visible!important;
}

.tpc-booking-progress > b{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  text-align:center!important;
}

.tpc-booking-progress > b small{
  display:block!important;
  position:static!important;
  width:max-content!important;
  max-width:86px!important;
  margin-top:8px!important;
  line-height:1.15!important;
  text-align:center!important;
  white-space:normal!important;
}

.tpc-booking-progress > i{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:1px!important;
  margin-top:15px!important;
  align-self:start!important;
}

/* Desktop/tablet: os seis círculos permanecem sempre na mesma linha. */
@media(min-width:768px){
  .tpc-booking-progress > b{
    grid-row:1!important;
  }
  .tpc-booking-progress > i{
    grid-row:1!important;
  }
}

/* Telemóvel: mantém as 6 etapas alinhadas e reduz apenas texto/espaçamento. */
@media(max-width:767px){
  .tpc-booking-progress{
    grid-template-columns:
      minmax(34px,auto) 1fr
      minmax(34px,auto) 1fr
      minmax(34px,auto) 1fr
      minmax(34px,auto) 1fr
      minmax(34px,auto) 1fr
      minmax(42px,auto)!important;
  }
  .tpc-booking-progress > b small{
    max-width:55px!important;
    font-size:8px!important;
    margin-top:6px!important;
  }
  .tpc-booking-progress > i{
    margin-top:15px!important;
  }
}


/* =========================================================
   v6.8 — Círculos das etapas + calendário do cabeçalho
   ========================================================= */

/* Wrapper da etapa deixa de criar oval. O círculo é desenhado no ::before. */
.tpc-booking-progress > b{
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:inherit!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  font-size:0!important;
  position:relative!important;
  overflow:visible!important;
}

.tpc-booking-progress > b::before{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  max-width:30px!important;
  max-height:30px!important;
  padding:0!important;
  border-radius:999px!important;
  box-sizing:border-box!important;
  background:#EEEAF0!important;
  color:#151A2E!important;
  font-size:13px!important;
  line-height:30px!important;
  font-weight:700!important;
  position:relative!important;
  z-index:2!important;
}

.tpc-booking-progress > b:nth-of-type(1)::before{content:"1"!important}
.tpc-booking-progress > b:nth-of-type(2)::before{content:"2"!important}
.tpc-booking-progress > b:nth-of-type(3)::before{content:"3"!important}
.tpc-booking-progress > b:nth-of-type(4)::before{content:"4"!important}
.tpc-booking-progress > b:nth-of-type(5)::before{content:"5"!important}
.tpc-booking-progress > b:nth-of-type(6)::before{content:"6"!important}

.tpc-booking-progress > b.on::before{
  background:#7B3FD1!important;
  color:#fff!important;
}

.tpc-booking-progress > b small{
  position:static!important;
  display:block!important;
  margin-top:7px!important;
  width:max-content!important;
  max-width:92px!important;
  font-size:12px!important;
  line-height:1.15!important;
  font-weight:500!important;
  color:#777!important;
  text-align:center!important;
  white-space:normal!important;
}

.tpc-booking-progress > i{
  margin-top:15px!important;
}

/* Cabeçalho: calendário igual ao usado nas restantes zonas de reserva. */
.tpc-booking-title > .tpc-booking-title-icon{
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:50%!important;
  background:var(--tpc-lilac)!important;
  color:var(--tpc-purple)!important;
  box-sizing:border-box!important;
}

.tpc-booking-title > .tpc-booking-title-icon .tpc-calendar-glyph{
  transform:none!important;
}

@media(max-width:767px){
  .tpc-booking-progress > b::before{
    width:27px!important;
    height:27px!important;
    min-width:27px!important;
    min-height:27px!important;
    max-width:27px!important;
    max-height:27px!important;
    font-size:11px!important;
    line-height:27px!important;
  }
  .tpc-booking-progress > i{
    margin-top:13.5px!important;
  }
  .tpc-booking-progress > b small{
    font-size:8px!important;
    max-width:54px!important;
    margin-top:5px!important;
  }
}


/* =========================================================
   v7.1 — Extras na apresentação dos serviços
   ========================================================= */
.tpc-public-extras{
  margin:28px auto 0;
  padding:22px 24px;
  max-width:1040px;
  border:1px solid #E8E0EC;
  border-radius:18px;
  background:#FBF8FD;
}
.tpc-public-extras-intro{text-align:center;max-width:720px;margin:0 auto 18px}
.tpc-public-extras-kicker{
  display:block;margin-bottom:5px;color:#7B48C5;
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase
}
.tpc-public-extras h3{margin:0 0 7px;color:#10182E;font-size:22px}
.tpc-public-extras-intro p,.tpc-public-extras-note{color:#6D6872;font-size:14px;line-height:1.55}
.tpc-public-extras-list{
  display:flex;flex-wrap:wrap;justify-content:center;gap:9px 12px;
}
.tpc-public-extra{
  display:flex;align-items:flex-start;gap:8px;
  padding:9px 13px;border-radius:12px;background:#FFFFFF;
  border:1px solid #EEE7F1;color:#302B35;font-size:13px;
}
.tpc-public-extra-paw{color:#9A76C8;font-size:10px;line-height:1.8}
.tpc-public-extra strong{font-size:13px;font-weight:650}
.tpc-public-extra p{margin:4px 0 0;max-width:260px;color:#716B76;font-size:12px;line-height:1.45}
.tpc-public-extras-note{text-align:center;margin:16px 0 0;font-size:12px}
.tpc-public-extras-home{padding:18px 22px;background:#FCFAFD}
.tpc-public-extras-home h3{font-size:19px}
.tpc-public-extras-home .tpc-public-extra{padding:7px 11px}
@media(max-width:767px){
  .tpc-public-extras{padding:18px 14px;margin-top:20px}
  .tpc-public-extras-list{display:grid;grid-template-columns:1fr}
  .tpc-public-extra{width:100%;box-sizing:border-box}
}


/* =========================================================
   v7.2 — Botões "Reservar agora" nas páginas individuais
   ========================================================= */

/* Uniformiza botões Elementor equivalentes aos CTAs roxos do site. */
.tpc-page-hero .elementor-button,
body:not(.home) .elementor-widget-button .elementor-button[href*="/reservar"],
body:not(.home) .elementor-widget-button .elementor-button[href*="reservar"]{
  background:#7B48C5!important;
  color:#FFFFFF!important;
  border:0!important;
  border-radius:12px!important;
  box-shadow:none!important;
  font-weight:700!important;
  text-decoration:none!important;
}

.tpc-page-hero .elementor-button:hover,
body:not(.home) .elementor-widget-button .elementor-button[href*="/reservar"]:hover,
body:not(.home) .elementor-widget-button .elementor-button[href*="reservar"]:hover{
  background:#6337A3!important;
  color:#FFFFFF!important;
}


/* =========================================================
   v7.4 — Reviews sem fotografia + carrossel de todas as reviews
   ========================================================= */
.tpc-reviews-carousel-v74{
  position:relative!important;
  width:100%!important;
  max-width:1120px!important;
  margin:0 auto!important;
}

.tpc-reviews-viewport-v74{
  width:100%!important;
  overflow:hidden!important;
}

.tpc-reviews-track-v74{
  display:flex!important;
  gap:18px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scroll-behavior:smooth!important;
  scrollbar-width:none!important;
  overscroll-behavior-x:contain!important;
  padding:4px 2px 8px!important;
}
.tpc-reviews-track-v74::-webkit-scrollbar{display:none!important}

.tpc-review-card-v74{
  flex:0 0 calc((100% - 36px) / 3)!important;
  min-width:0!important;
  min-height:210px!important;
  scroll-snap-align:start!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  position:relative!important;
  padding:25px 24px 21px!important;
  background:#FFFFFF!important;
  border:1px solid #E8E1EC!important;
  border-radius:16px!important;
  box-shadow:0 8px 24px rgba(66,39,86,.05)!important;
  overflow:hidden!important;
}

.tpc-review-quote-v74{
  position:absolute!important;
  top:8px!important;
  right:18px!important;
  color:#EEE4F5!important;
  font-family:Georgia,serif!important;
  font-size:56px!important;
  line-height:1!important;
  pointer-events:none!important;
}

.tpc-review-text-v74{
  position:relative!important;
  z-index:1!important;
  color:#535A6D!important;
  font-size:15px!important;
  line-height:1.55!important;
  text-align:left!important;
}
.tpc-review-text-v74 p{margin:0 0 10px!important}
.tpc-review-text-v74 p:last-child{margin-bottom:0!important}

.tpc-review-footer-v74{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin-top:20px!important;
  padding-top:14px!important;
  border-top:1px solid #F0EAF3!important;
}

.tpc-review-name-v74{
  color:#10182E!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1.25!important;
}

.tpc-review-footer-v74 .tpc-review-paws-v58{
  flex:0 0 auto!important;
}

.tpc-reviews-controls-v74{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:13px!important;
  margin-top:17px!important;
}

.tpc-reviews-arrow-v74{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  border:1px solid #DCCFE8!important;
  border-radius:50%!important;
  background:#FFFFFF!important;
  color:#6A3DA8!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  cursor:pointer!important;
  font-size:25px!important;
  line-height:1!important;
  box-shadow:0 4px 14px rgba(66,39,86,.05)!important;
  transition:background .18s ease,color .18s ease,border-color .18s ease!important;
}

.tpc-reviews-arrow-v74:hover{
  background:#7B48C5!important;
  border-color:#7B48C5!important;
  color:#FFFFFF!important;
}

.tpc-reviews-arrow-v74:disabled{
  opacity:.35!important;
  cursor:default!important;
  background:#FFFFFF!important;
  border-color:#E7DFEB!important;
  color:#9A90A0!important;
}

.tpc-reviews-position-v74{
  min-width:50px!important;
  text-align:center!important;
  color:#746C78!important;
  font-size:12px!important;
  font-weight:600!important;
}

@media(max-width:900px){
  .tpc-review-card-v74{
    flex-basis:calc((100% - 18px) / 2)!important;
  }
}

@media(max-width:600px){
  .tpc-reviews-track-v74{gap:12px!important}
  .tpc-review-card-v74{
    flex-basis:100%!important;
    min-height:195px!important;
    padding:22px 20px 19px!important;
  }
  .tpc-review-text-v74{font-size:14px!important}
  .tpc-review-footer-v74{
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:7px!important;
  }
}


/* =========================================================
   v7.5 — Contactos + TPC Gestão → Mensagens
   ========================================================= */
.tpc-contacts-v75>.elementor-container{
  align-items:flex-start!important;
}

.tpc-contact-card-v75>.elementor-element-populated{
  background:#F7F1FD!important;
  border-radius:20px!important;
}

.tpc-contact-intro-v75{
  margin:0 0 18px!important;
  color:#60677A!important;
  font-size:14px!important;
  line-height:1.55!important;
}

.tpc-contact-details-v75 p{
  margin:0 0 22px!important;
  color:#4F576B!important;
  line-height:1.55!important;
}
.tpc-contact-details-v75 strong{
  color:#10182E!important;
}

.tpc-contact-form-v75{
  width:100%!important;
  margin:0!important;
}

.tpc-contact-form-grid-v75{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
}

.tpc-contact-field-v75{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  margin:0!important;
  color:#10182E!important;
  font-size:13px!important;
  font-weight:600!important;
}

.tpc-contact-field-v75 span em{
  color:#7B48C5!important;
  font-style:normal!important;
}

.tpc-contact-field-v75 span small{
  color:#7B7381!important;
  font-size:11px!important;
  font-weight:500!important;
}

.tpc-contact-full-v75{
  grid-column:1 / -1!important;
}

.tpc-contact-field-v75 input,
.tpc-contact-field-v75 select,
.tpc-contact-field-v75 textarea{
  width:100%!important;
  box-sizing:border-box!important;
  border:1px solid #D9CFE2!important;
  border-radius:10px!important;
  background:#FFFFFF!important;
  color:#20273A!important;
  padding:11px 12px!important;
  outline:none!important;
  box-shadow:none!important;
  font-family:inherit!important;
  font-size:14px!important;
  transition:border-color .18s ease, box-shadow .18s ease!important;
}

.tpc-contact-field-v75 input,
.tpc-contact-field-v75 select{
  min-height:44px!important;
}

.tpc-contact-field-v75 textarea{
  min-height:132px!important;
  resize:vertical!important;
}

.tpc-contact-field-v75 input:focus,
.tpc-contact-field-v75 select:focus,
.tpc-contact-field-v75 textarea:focus{
  border-color:#7B48C5!important;
  box-shadow:0 0 0 3px rgba(123,72,197,.10)!important;
}

.tpc-contact-submit-v75{
  width:100%!important;
  min-height:46px!important;
  margin-top:16px!important;
  border:0!important;
  border-radius:11px!important;
  background:#7B48C5!important;
  color:#FFFFFF!important;
  font-size:14px!important;
  font-weight:700!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:background .18s ease, opacity .18s ease!important;
}

.tpc-contact-submit-v75:hover{
  background:#6337A3!important;
}

.tpc-contact-submit-v75:disabled{
  opacity:.65!important;
  cursor:wait!important;
}

.tpc-contact-feedback-v75{
  display:none!important;
  margin-top:13px!important;
  padding:11px 12px!important;
  border-radius:9px!important;
  font-size:13px!important;
  line-height:1.45!important;
}

.tpc-contact-feedback-v75.is-success{
  display:block!important;
  background:#E8F5EC!important;
  color:#28663A!important;
  border:1px solid #CDE7D4!important;
}

.tpc-contact-feedback-v75.is-error{
  display:block!important;
  background:#FFF0F0!important;
  color:#9B3434!important;
  border:1px solid #F2D1D1!important;
}

.tpc-contact-hp-v75{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

@media(max-width:700px){
  .tpc-contact-form-grid-v75{
    grid-template-columns:1fr!important;
  }
  .tpc-contact-full-v75{
    grid-column:auto!important;
  }
  .tpc-contact-card-v75>.elementor-element-populated{
    margin-top:18px!important;
  }
}


/* =========================================================
   v7.6 — Contactos: Instagram + WhatsApp em “Fale comigo”
   ========================================================= */
.tpc-contact-socials-v76{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  margin-top:6px!important;
}

.tpc-contact-social-v76{
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
  min-height:42px!important;
  padding:7px 13px 7px 8px!important;
  border:1px solid #E4D8EE!important;
  border-radius:999px!important;
  background:#FFFFFF!important;
  color:#6337A3!important;
  text-decoration:none!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1!important;
  transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease!important;
}

.tpc-contact-social-v76 i{
  width:28px!important;
  height:28px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 28px!important;
  border-radius:50%!important;
  background:#F1E8FB!important;
  color:#7B48C5!important;
  font-size:16px!important;
}

.tpc-contact-social-v76:hover{
  background:#F7F1FD!important;
  border-color:#D4BFE6!important;
  color:#53318A!important;
  transform:translateY(-1px)!important;
}

@media(max-width:700px){
  .tpc-contact-socials-v76{
    gap:10px!important;
  }

  .tpc-contact-social-v76{
    min-height:40px!important;
    padding:6px 11px 6px 7px!important;
    font-size:12px!important;
  }

  .tpc-contact-social-v76 i{
    width:26px!important;
    height:26px!important;
    flex-basis:26px!important;
    font-size:15px!important;
  }
}

@media(max-width:420px){
  .tpc-contact-socials-v76{
    width:100%!important;
  }

  .tpc-contact-social-v76{
    flex:1 1 135px!important;
    justify-content:flex-start!important;
  }
}


/* =========================================================
   v7.6.1 — Correção dos ícones sociais + deslocamento 20px
   ========================================================= */
.tpc-contact-socials-v76{
  margin-top:26px!important;
}

.tpc-contact-social-v76 .tpc-contact-social-icon-v761{
  width:28px!important;
  height:28px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 28px!important;
  border-radius:50%!important;
  background:#F1E8FB!important;
  color:#7B48C5!important;
}

.tpc-contact-social-icon-v761 svg{
  width:16px!important;
  height:16px!important;
  display:block!important;
  overflow:visible!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

.tpc-contact-social-icon-v761 .tpc-social-dot-v761{
  fill:currentColor!important;
  stroke:none!important;
}

.tpc-contact-social-v76:hover .tpc-contact-social-icon-v761{
  background:#E8DCF5!important;
  color:#6337A3!important;
}

@media(max-width:700px){
  .tpc-contact-socials-v76{
    margin-top:26px!important;
  }

  .tpc-contact-social-v76 .tpc-contact-social-icon-v761{
    width:26px!important;
    height:26px!important;
    flex-basis:26px!important;
  }

  .tpc-contact-social-icon-v761 svg{
    width:15px!important;
    height:15px!important;
  }
}


/* =========================================================
   v7.6.2 — Forçar aplicação visual na página Contactos
   ========================================================= */
.tpc-contact-details-v75 .tpc-contact-socials-v76{
  margin-top:26px!important; /* 6px originais + 20px pedidos */
  padding-top:0!important;
  transform:none!important;
}

.tpc-contact-social-v76 .tpc-contact-social-icon-v761{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
}

.tpc-contact-social-v76 .tpc-contact-social-icon-v761 svg{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:16px!important;
  height:16px!important;
}

@media(max-width:700px){
  .tpc-contact-details-v75 .tpc-contact-socials-v76{
    margin-top:26px!important;
  }
}


/* =========================================================
   v7.6.3 — Formulário Contactos: seletor Assunto
   ========================================================= */
.tpc-contact-field-v75 select[name="subject"]{
  -webkit-appearance:none!important;
  -moz-appearance:none!important;
  appearance:none!important;
  min-height:44px!important;
  height:44px!important;
  padding:11px 42px 11px 12px!important;
  border:1px solid #D9CFE2!important;
  border-radius:10px!important;
  background-color:#FFFFFF!important;
  color:#20273A!important;
  font-family:inherit!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.35!important;
  cursor:pointer!important;
  box-shadow:none!important;

  /* Seta própria, para evitar o aspeto nativo diferente entre browsers. */
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237B48C5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 14px center!important;
  background-size:14px 14px!important;
}

.tpc-contact-field-v75 select[name="subject"]:focus{
  border-color:#7B48C5!important;
  box-shadow:0 0 0 3px rgba(123,72,197,.10)!important;
  outline:none!important;
}

.tpc-contact-field-v75 select[name="subject"]:disabled{
  opacity:.65!important;
  cursor:not-allowed!important;
}

.tpc-contact-field-v75 select[name="subject"]::-ms-expand{
  display:none!important;
}


/* =========================================================
   v8.0.0 — Reservas: texto de confirmação pública
   ========================================================= */
.tpc-booking-success-v800{
  border-radius:12px!important;
}


/* =========================================================
   v8.0.3 — Reservas: uniformização visual dos seletores
   Horas, porte, temperamento e nº de animais
   ========================================================= */
.tpc-booking-wrap select,
.tpc-booking-card select,
.tpc-booking-form select,
.tpc-booking-step select,
.tpc-booking-pane select {
  width: 100% !important;
  min-height: 46px !important;
  height: 46px !important;
  padding: 0 42px 0 14px !important;
  border: 1px solid #ded6e8 !important;
  border-radius: 12px !important;
  background-color: #fff !important;
  color: #111827 !important;
  font: inherit !important;
  line-height: 1.2 !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237B48C5' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 14px 14px !important;
}

.tpc-booking-wrap select:focus,
.tpc-booking-card select:focus,
.tpc-booking-form select:focus,
.tpc-booking-step select:focus,
.tpc-booking-pane select:focus {
  outline: none !important;
  border-color: #9b6be0 !important;
  box-shadow: 0 0 0 3px rgba(123,72,197,.10) !important;
}

.tpc-booking-wrap select:disabled,
.tpc-booking-card select:disabled,
.tpc-booking-form select:disabled,
.tpc-booking-step select:disabled,
.tpc-booking-pane select:disabled {
  background-color: #f7f5fa !important;
  color: #8a8394 !important;
  cursor: not-allowed !important;
}

@media (max-width: 767px) {
  .tpc-booking-wrap select,
  .tpc-booking-card select,
  .tpc-booking-form select,
  .tpc-booking-step select,
  .tpc-booking-pane select {
    min-height: 46px !important;
    height: 46px !important;
  }
}


/* =========================================================
   v8.0.3 — Reservas: selects visuais em concordância
   ========================================================= */
.tpc-booking select,
.tpc-booking-form select,
.tpc-booking-wrap select,
.tpc-booking-card select,
.tpc-booking-shell select,
[class*="tpc-booking"] select {
  width: 100% !important;
  min-height: 46px !important;
  height: 46px !important;
  padding: 0 44px 0 14px !important;
  border: 1px solid #DDD6E7 !important;
  border-radius: 10px !important;
  background-color: #FFFFFF !important;
  color: #111827 !important;
  font-family: inherit !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 46px !important;
  box-sizing: border-box !important;
  outline: none !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237B48C5' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 14px 14px !important;
}

.tpc-booking select:focus,
.tpc-booking-form select:focus,
.tpc-booking-wrap select:focus,
.tpc-booking-card select:focus,
.tpc-booking-shell select:focus,
[class*="tpc-booking"] select:focus {
  border-color: #A982E0 !important;
  box-shadow: 0 0 0 3px rgba(123,72,197,.10) !important;
}

@media (max-width: 767px) {
  .tpc-booking select,
  .tpc-booking-form select,
  .tpc-booking-wrap select,
  .tpc-booking-card select,
  .tpc-booking-shell select,
  [class*="tpc-booking"] select {
    min-height: 46px !important;
    height: 46px !important;
    font-size: 16px !important;
  }
}


/* =========================================================
   v8.0.5 — Reservar / Visita e Passeio: horas lado a lado
   Apenas no formulário completo (.tpc-booking).
   A caixa rápida da página inicial não é alterada.
   ========================================================= */
.tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 15px !important;
  align-items: end !important;
}

/* Data fica na primeira posição; as duas horas ocupam a linha seguinte. */
.tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > label:nth-of-type(1) {
  grid-column: 1 / 2 !important;
  grid-row: 1 !important;
}

.tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > label:nth-of-type(2) {
  display: none !important;
}

.tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > label:nth-of-type(3) {
  grid-column: 1 / 2 !important;
  grid-row: 2 !important;
}

.tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > label:nth-of-type(4) {
  grid-column: 2 / 3 !important;
  grid-row: 2 !important;
}

.tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > .tpc-stay-info {
  grid-column: 1 / 2 !important;
  grid-row: 3 !important;
}

@media (max-width: 700px) {
  .tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates {
    grid-template-columns: 1fr !important;
  }

  .tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > label:nth-of-type(1),
  .tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > label:nth-of-type(3),
  .tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > label:nth-of-type(4),
  .tpc-booking.tpc-booking-mode-timed .tpc-adaptive-dates > .tpc-stay-info {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
}

/* =========================================================
   v8.0.6 — Header/Footer: transparência + alinhamento
   ========================================================= */
.tpc-site-header .elementor-widget-image,
.tpc-site-header .elementor-widget-image .elementor-widget-container,
.tpc-site-footer .elementor-widget-image,
.tpc-site-footer .elementor-widget-image .elementor-widget-container{
  background:transparent!important;
}
.tpc-site-header .elementor-widget-image img,
.tpc-site-footer .elementor-widget-image img{
  background:transparent!important;
}

/* Footer: logo, menu, redes e CTA no mesmo eixo visual. */
.tpc-site-footer > .elementor-container{
  display:flex!important;
  align-items:center!important;
}
.tpc-site-footer > .elementor-container > .elementor-column > .elementor-widget-wrap,
.tpc-site-footer > .elementor-container > .elementor-column > .elementor-element-populated{
  display:flex!important;
  align-items:center!important;
  min-height:64px!important;
}
.tpc-site-footer > .elementor-container > .elementor-column:nth-child(1) > .elementor-widget-wrap,
.tpc-site-footer > .elementor-container > .elementor-column:nth-child(1) > .elementor-element-populated{
  justify-content:flex-start!important;
}
.tpc-site-footer > .elementor-container > .elementor-column:nth-child(2) > .elementor-widget-wrap,
.tpc-site-footer > .elementor-container > .elementor-column:nth-child(2) > .elementor-element-populated,
.tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) > .elementor-widget-wrap,
.tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) > .elementor-element-populated{
  justify-content:center!important;
}
.tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) > .elementor-widget-wrap,
.tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) > .elementor-element-populated{
  justify-content:flex-end!important;
}
.tpc-site-footer .elementor-widget,
.tpc-site-footer .elementor-inner-section,
.tpc-site-footer .elementor-inner-section .elementor-widget-wrap{
  margin-bottom:0!important;
}
.tpc-site-footer .elementor-inner-section > .elementor-container{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.tpc-site-footer .elementor-widget-icon .elementor-icon,
.tpc-site-footer .elementor-icon{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
}
.tpc-site-footer .elementor-widget-icon .elementor-icon-wrapper{
  line-height:1!important;
}
.tpc-site-footer .tpc-footer-nav{
  align-items:center!important;
  margin:0!important;
  line-height:1.3!important;
}

@media(max-width:900px){
  .tpc-site-footer > .elementor-container{
    flex-wrap:wrap!important;
    justify-content:center!important;
    gap:14px 0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column{
    width:50%!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-widget-wrap,
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-element-populated{
    justify-content:center!important;
    min-height:48px!important;
  }
}
@media(max-width:700px){
  .tpc-site-footer > .elementor-container > .elementor-column{
    width:100%!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-widget-wrap,
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-element-populated{
    justify-content:center!important;
  }
}


/* v8.0.7 — Footer: ajuste fino do alinhamento do menu */
.tpc-site-footer .elementor-widget-text-editor:has(.tpc-footer-nav),
.tpc-site-footer .elementor-widget-text-editor:has(.tpc-footer-nav) > .elementor-widget-container{display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0!important;height:100%!important;min-height:64px!important}
.tpc-site-footer .tpc-footer-nav{display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0!important;line-height:1!important;transform:translateY(3px)}
.tpc-site-footer .tpc-footer-nav a{display:flex!important;align-items:center!important;line-height:1!important;margin:0!important;padding:0!important}
@media(max-width:900px){.tpc-site-footer .elementor-widget-text-editor:has(.tpc-footer-nav),.tpc-site-footer .elementor-widget-text-editor:has(.tpc-footer-nav) > .elementor-widget-container{min-height:48px!important}.tpc-site-footer .tpc-footer-nav{transform:none}}


/* =========================================================
   v8.0.8 — Sobre mim: ícones e textos uniformizados
   ========================================================= */

/* Qualification rows used in homepage About and individual About page */
.tpc-about-qualifications,
.tpc-about-quals,
.tpc-home-about .tpc-about-qualifications,
.tpc-about-section .tpc-about-qualifications {
  display: grid !important;
  gap: 14px !important;
}

.tpc-about-qualifications > *,
.tpc-about-quals > *,
.tpc-home-about .tpc-about-qualifications > *,
.tpc-about-section .tpc-about-qualifications > * {
  display: grid !important;
  grid-template-columns: 44px minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 12px !important;
  min-height: 44px !important;
}

/* Icon holders: identical geometry */
.tpc-about-qualifications svg,
.tpc-about-qualifications i,
.tpc-about-qualifications img,
.tpc-about-quals svg,
.tpc-about-quals i,
.tpc-about-quals img,
.tpc-home-about svg.tpc-about-icon,
.tpc-about-section svg.tpc-about-icon {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  max-width: 34px !important;
  max-height: 34px !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 auto !important;
  flex: 0 0 34px !important;
  vertical-align: middle !important;
}

/* Keep all icon wrappers the same size/shape */
.tpc-about-qualifications .tpc-icon,
.tpc-about-quals .tpc-icon,
.tpc-about-icon-wrap {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* Text alignment */
.tpc-about-qualifications p,
.tpc-about-qualifications span,
.tpc-about-qualifications strong,
.tpc-about-quals p,
.tpc-about-quals span,
.tpc-about-quals strong {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1.35 !important;
  align-self: center !important;
}

/* Elementor fallback: qualification icon-list rows */
.tpc-home-about .elementor-icon-list-item,
.tpc-about-section .elementor-icon-list-item {
  display: grid !important;
  grid-template-columns: 44px minmax(0,1fr) !important;
  align-items: center !important;
  column-gap: 12px !important;
  min-height: 44px !important;
}

.tpc-home-about .elementor-icon-list-icon,
.tpc-about-section .elementor-icon-list-icon {
  width: 44px !important;
  height: 44px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin:0 !important;
}

.tpc-home-about .elementor-icon-list-icon i,
.tpc-home-about .elementor-icon-list-icon svg,
.tpc-about-section .elementor-icon-list-icon i,
.tpc-about-section .elementor-icon-list-icon svg {
  width: 34px !important;
  height: 34px !important;
  font-size: 34px !important;
  line-height: 34px !important;
}

.tpc-home-about .elementor-icon-list-text,
.tpc-about-section .elementor-icon-list-text {
  display:flex !important;
  align-items:center !important;
  min-height:44px !important;
  line-height:1.35 !important;
}


/* =========================================================
   v8.0.9 — Sobre mim: correção real dos ícones/lista Elementor
   ========================================================= */
.tpc-about-home .elementor-icon-list-items{
  display:flex!important;
  flex-direction:column!important;
  gap:15px!important;
  margin:0!important;
  padding:0!important;
}

.tpc-about-home .elementor-icon-list-item{
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:12px!important;
  min-height:42px!important;
  margin:0!important;
  padding:0!important;
}

.tpc-about-home .elementor-icon-list-icon{
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:0!important;
}

.tpc-about-home .elementor-icon-list-icon i{
  width:28px!important;
  height:28px!important;
  font-size:28px!important;
  line-height:28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}

.tpc-about-home .elementor-icon-list-icon svg{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  min-height:28px!important;
  display:block!important;
  margin:auto!important;
}

.tpc-about-home .elementor-icon-list-text{
  min-height:42px!important;
  display:flex!important;
  align-items:center!important;
  margin:0!important;
  padding:0!important;
  line-height:1.35!important;
}


/* =========================================================
   v8.0.10 — Contactos: reposição robusta Instagram/WhatsApp
   ========================================================= */
.tpc-contact-social-v76 .tpc-contact-social-icon-v761{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  flex:0 0 28px!important;
  border-radius:50%!important;
  background:#F1E8FB!important;
  color:#7B48C5!important;
  visibility:visible!important;
  opacity:1!important;
  overflow:hidden!important;
}

/* O fallback CSS garante que os ícones aparecem mesmo que o Elementor filtre o SVG inline. */
.tpc-contact-social-v76 .tpc-contact-social-icon-v761::before{
  content:""!important;
  display:block!important;
  width:16px!important;
  height:16px!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:16px 16px!important;
  visibility:visible!important;
  opacity:1!important;
}

.tpc-contact-social-v76:nth-child(1) .tpc-contact-social-icon-v761::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237B48C5' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.3' cy='6.8' r='1.1' fill='%237B48C5' stroke='none'/%3E%3C/svg%3E")!important;
}

.tpc-contact-social-v76:nth-child(2) .tpc-contact-social-icon-v761::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237B48C5' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.2 11.6a8.2 8.2 0 0 1-12.1 7.2L4 20l1.2-4a8.2 8.2 0 1 1 15-4.4Z'/%3E%3Cpath d='M8.6 8.2c.2-.4.4-.4.7-.4h.3c.1 0 .3 0 .4.3l.8 1.9c.1.3.1.4-.1.6l-.6.8c-.1.2-.2.3 0 .6.2.3.8 1.3 1.8 2.1 1.2 1 2.2 1.3 2.5 1.4.3.1.5.1.7-.1l.9-1c.2-.2.4-.2.6-.1l1.8.9c.3.1.4.2.4.4 0 .2-.1 1.2-.7 1.7-.5.5-1.2.8-1.8.9-.5.1-1.2.1-2-.2-1.8-.6-3.8-1.6-5.4-3.1-1.4-1.3-2.4-2.9-2.9-4.1-.5-1.2-.1-2.2.3-2.6Z'/%3E%3C/svg%3E")!important;
}

/* Evita duplicação caso o SVG inline continue presente. */
.tpc-contact-social-v76 .tpc-contact-social-icon-v761 > svg{
  display:none!important;
}

@media(max-width:700px){
  .tpc-contact-social-v76 .tpc-contact-social-icon-v761{
    width:26px!important;
    height:26px!important;
    min-width:26px!important;
    flex-basis:26px!important;
  }
  .tpc-contact-social-v76 .tpc-contact-social-icon-v761::before{
    width:15px!important;
    height:15px!important;
    background-size:15px 15px!important;
  }
}


/* =========================================================
   v8.0.11 — Contactos: ícones sociais em PNG local
   Sem dependência de SVG inline / Elementor.
   ========================================================= */
.tpc-contact-social-v76 .tpc-contact-social-icon-v761{
  display:inline-block!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  flex:0 0 28px!important;
  border-radius:50%!important;
  background-color:#F1E8FB!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:18px 18px!important;
  visibility:visible!important;
  opacity:1!important;
  overflow:hidden!important;
}

.tpc-contact-socials-v76 > a.tpc-contact-social-v76:first-of-type .tpc-contact-social-icon-v761{
  background-image:url("../images/instagram-v8011.png")!important;
}

.tpc-contact-socials-v76 > a.tpc-contact-social-v76:nth-of-type(2) .tpc-contact-social-icon-v761{
  background-image:url("../images/whatsapp-v8014.png")!important;
}

/* Desativa apenas o SVG/pseudo anteriores para evitar duplicação. */
.tpc-contact-social-v76 .tpc-contact-social-icon-v761 > svg,
.tpc-contact-social-v76 .tpc-contact-social-icon-v761::before{
  display:none!important;
  content:none!important;
}

@media(max-width:700px){
  .tpc-contact-social-v76 .tpc-contact-social-icon-v761{
    width:26px!important;
    height:26px!important;
    min-width:26px!important;
    flex-basis:26px!important;
    background-size:17px 17px!important;
  }
}


/* =========================================================
   v8.0.12 — Contactos: ícones diretamente nos botões
   Funciona mesmo que o Elementor tenha removido o <span> do ícone.
   ========================================================= */
.tpc-contact-socials-v76 > a.tpc-contact-social-v76{
  display:inline-flex!important;
  align-items:center!important;
  gap:9px!important;
}

/* Ícone criado no próprio <a>, sem depender de HTML interno. */
.tpc-contact-socials-v76 > a.tpc-contact-social-v76::before{
  content:""!important;
  display:inline-block!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  flex:0 0 28px!important;
  border-radius:50%!important;
  background-color:#F1E8FB!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:18px 18px!important;
  visibility:visible!important;
  opacity:1!important;
}

.tpc-contact-socials-v76 > a.tpc-contact-social-v76:first-of-type::before{
  background-image:url("../images/instagram-v8011.png")!important;
}

.tpc-contact-socials-v76 > a.tpc-contact-social-v76:nth-of-type(2)::before{
  background-image:url("../images/whatsapp-v8014.png")!important;
}

/* Se o span antigo existir, não o mostramos para evitar duplicação. */
.tpc-contact-socials-v76 > a.tpc-contact-social-v76 .tpc-contact-social-icon-v761{
  display:none!important;
}

@media(max-width:700px){
  .tpc-contact-socials-v76 > a.tpc-contact-social-v76::before{
    width:26px!important;
    height:26px!important;
    min-width:26px!important;
    flex-basis:26px!important;
    background-size:17px 17px!important;
  }
}


/* v8.0.13 — WhatsApp: ícone redesenhado; restante bloco social inalterado. */


/* v8.0.14 — WhatsApp: símbolo sólido e legível, botão inalterado. */
.tpc-contact-socials-v76 > a.tpc-contact-social-v76:nth-of-type(2)::before{
  background-size:19px 19px!important;
}
@media(max-width:700px){
  .tpc-contact-socials-v76 > a.tpc-contact-social-v76:nth-of-type(2)::before{
    background-size:18px 18px!important;
  }
}


/* =========================================================
   v8.0.15 — Contactos: mesmos ícones Font Awesome do footer
   ========================================================= */
.tpc-contact-socials-v76 > a.tpc-contact-social-v76::before{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  flex:0 0 28px!important;
  border-radius:50%!important;
  background:#F1E8FB!important;
  background-image:none!important;
  color:#7B48C5!important;
  font-family:"Font Awesome 5 Brands","Font Awesome 6 Brands"!important;
  font-style:normal!important;
  font-weight:400!important;
  font-size:16px!important;
  line-height:1!important;
  text-rendering:auto!important;
  -webkit-font-smoothing:antialiased!important;
}

.tpc-contact-socials-v76 > a.tpc-contact-social-v76:first-of-type::before{
  content:"\f16d"!important; /* fa-instagram — igual ao footer */
}

.tpc-contact-socials-v76 > a.tpc-contact-social-v76:nth-of-type(2)::before{
  content:"\f232"!important; /* fa-whatsapp — igual ao footer */
}

.tpc-contact-socials-v76 > a.tpc-contact-social-v76 .tpc-contact-social-icon-v761{
  display:none!important;
}

@media(max-width:700px){
  .tpc-contact-socials-v76 > a.tpc-contact-social-v76::before{
    width:26px!important;
    height:26px!important;
    min-width:26px!important;
    flex-basis:26px!important;
    font-size:15px!important;
  }
}


/* =========================================================
   v8.0.16 — Contactos: copiar literalmente os ícones renderizados do footer
   ========================================================= */

/* Desliga todas as tentativas anteriores de pseudo-ícones/ícones internos. */
.tpc-contact-socials-v76 > a.tpc-contact-social-v76::before,
.tpc-contact-social-v76 .tpc-contact-social-icon-v761{
  display:none!important;
  content:none!important;
  background-image:none!important;
}

/* Wrapper do ícone clonado do footer. */
.tpc-contact-social-v76 .tpc-contact-footer-icon-v8016{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  flex:0 0 28px!important;
  border-radius:50%!important;
  background:#F1E8FB!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
  line-height:1!important;
}

/* O SVG ou <i> é uma cópia real do footer. Mantemos a própria cor do footer. */
.tpc-contact-social-v76 .tpc-contact-footer-icon-v8016 svg,
.tpc-contact-social-v76 .tpc-contact-footer-icon-v8016 i{
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  font-size:16px!important;
  line-height:16px!important;
  display:block!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
}

/* Preserva as cores exatas usadas no footer. */
.tpc-contact-socials-v76 > a.tpc-contact-social-v76:first-of-type .tpc-contact-footer-icon-v8016{
  color:#E4405F!important;
}
.tpc-contact-socials-v76 > a.tpc-contact-social-v76:nth-of-type(2) .tpc-contact-footer-icon-v8016{
  color:#25D366!important;
}
.tpc-contact-socials-v76 > a.tpc-contact-social-v76:first-of-type .tpc-contact-footer-icon-v8016 svg{
  fill:#E4405F!important;
}
.tpc-contact-socials-v76 > a.tpc-contact-social-v76:nth-of-type(2) .tpc-contact-footer-icon-v8016 svg{
  fill:#25D366!important;
}

@media(max-width:700px){
  .tpc-contact-social-v76 .tpc-contact-footer-icon-v8016{
    width:26px!important;
    height:26px!important;
    min-width:26px!important;
    flex-basis:26px!important;
  }
  .tpc-contact-social-v76 .tpc-contact-footer-icon-v8016 svg,
  .tpc-contact-social-v76 .tpc-contact-footer-icon-v8016 i{
    width:15px!important;
    height:15px!important;
    min-width:15px!important;
    font-size:15px!important;
    line-height:15px!important;
  }
}


/* =========================================================
   v8.0.17 — Homepage: formulário rápido de reserva
   Apenas correções visuais; página Reservar não é afetada.
   ========================================================= */

/* Remove o separador vertical entre o ícone e o campo. */
.tpc-home-booking .tpc-input-icon,
.tpc-home-booking .tpc-field-icon,
.tpc-home-booking [class*="icon"]{
  border-right:0!important;
  box-shadow:none!important;
}

/* Alguns separadores eram criados pelo próprio wrapper/pseudo-elemento. */
.tpc-home-booking .tpc-input-icon::after,
.tpc-home-booking .tpc-field-icon::after,
.tpc-home-booking [class*="icon"]::after{
  display:none!important;
  content:none!important;
  border:0!important;
}

/* Dá mais área útil aos selects de hora para “Selecionar” aparecer completo. */
.tpc-home-booking select[name="start_time"],
.tpc-home-booking select[name="end_time"],
.tpc-home-booking select[name="time"],
.tpc-home-booking select[name="end_time_home"]{
  padding-left:14px!important;
  padding-right:34px!important;
  font-size:15px!important;
  text-overflow:clip!important;
}

/* Nas duas colunas de hora, reduz o espaço consumido pelo ícone sem mudar o layout. */
.tpc-home-booking .tpc-time-row .tpc-input-icon,
.tpc-home-booking .tpc-time-row .tpc-field-icon,
.tpc-home-booking .tpc-time-field .tpc-input-icon,
.tpc-home-booking .tpc-time-field .tpc-field-icon{
  width:42px!important;
  min-width:42px!important;
  flex-basis:42px!important;
}

/* Mantém o select flexível e impede que a palavra seja cortada pela largura fixa. */
.tpc-home-booking .tpc-time-row select,
.tpc-home-booking .tpc-time-field select{
  min-width:0!important;
  width:100%!important;
  flex:1 1 auto!important;
}


/* =========================================================
   v8.0.18 — Homepage: correção real do formulário rápido
   ========================================================= */

/*
 * O "risco" não vinha do ícone: era a borda do próprio select
 * aplicada pela regra global [class*="tpc-booking"] select.
 * Aqui removemos essa borda INTERNA apenas no formulário da homepage.
 */
.tpc-home-booking .tpc-field-wrap > select,
.tpc-home-booking .tpc-field-wrap > input{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  border-radius:0 10px 10px 0!important;
  background-color:#fff!important;
}

.tpc-home-booking .tpc-field-wrap > select:focus,
.tpc-home-booking .tpc-field-wrap > input:focus{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}

/* O contorno fica exclusivamente no wrapper exterior. */
.tpc-home-booking .tpc-field-wrap{
  overflow:hidden!important;
}

/* Ícone sem qualquer separador lateral. */
.tpc-home-booking .tpc-field-wrap > .tpc-field-icon{
  width:40px!important;
  min-width:40px!important;
  flex:0 0 40px!important;
  border:0!important;
  border-right:0!important;
  box-shadow:none!important;
  background:transparent!important;
}

/* Horas: nomes reais dos selects da homepage. */
.tpc-home-booking select[name="tpc_home_time"],
.tpc-home-booking select[name="tpc_home_end_time"]{
  padding-left:2px!important;
  padding-right:28px!important;
  font-size:14px!important;
  line-height:46px!important;
  background-position:right 9px center!important;
  background-size:12px 12px!important;
}

/* Nas duas caixas de hora ganha-se mais espaço para “Selecionar”. */
.tpc-home-date-grid > label:nth-child(3) .tpc-field-icon,
.tpc-home-date-grid > label:nth-child(4) .tpc-field-icon{
  width:34px!important;
  min-width:34px!important;
  flex-basis:34px!important;
  font-size:16px!important;
}

.tpc-home-date-grid > label:nth-child(3) select,
.tpc-home-date-grid > label:nth-child(4) select{
  min-width:0!important;
  width:100%!important;
}

/* Mantém serviço e nº de animais sem a borda interior também. */
.tpc-home-booking select[name="tpc_home_service"],
.tpc-home-booking select[name="tpc_home_animals"]{
  border:0!important;
  box-shadow:none!important;
}


/* v8.0.21 — Página individual Sobre mim */
.tpc-about-page-intro-v8021 .elementor-widget-image img{
  width:100%!important; max-width:430px!important; border-radius:20px!important;
  display:block!important; margin:0 auto!important;
}
.tpc-about-intro-v8021 .elementor-widget-text-editor,
.tpc-about-journey-v8021 .elementor-widget-text-editor{
  color:#4E5870!important; font-size:16px!important; line-height:1.55!important;
}
.tpc-about-intro-v8021 .elementor-widget-text-editor p,
.tpc-about-journey-v8021 .elementor-widget-text-editor p{margin:0 0 18px!important;}
.tpc-about-qualifications-v8021{min-height:100%!important; display:flex!important; align-items:center!important;}
.tpc-about-closing-v8021{
  max-width:900px!important; margin:0 auto 24px!important; padding:28px 38px!important;
  text-align:center!important; background:#F5EEFC!important; border-radius:18px!important;
  color:#4E5870!important; font-size:17px!important; line-height:1.55!important;
}
.tpc-about-closing-v8021 p{margin:0!important;}
.tpc-about-actions-v8021{max-width:560px!important; margin:0 auto!important;}
@media(max-width:767px){
 .tpc-about-intro-v8021{padding-left:0!important; padding-top:24px!important;}
 .tpc-about-journey-v8021 .elementor-column:first-child{padding-right:0!important;}
 .tpc-about-closing-v8021{padding:24px 20px!important;}
}


/* v8.0.22 — Sobre mim: foto da primeira secção ~30% menor */
.tpc-about-page-intro-v8021 .elementor-widget-image img{
  width:70%!important;
  max-width:301px!important;
  height:auto!important;
  object-fit:contain!important;
  display:block!important;
  margin:0 auto!important;
}


/* v9.0.0 — Sobre mim: alinhamento da primeira secção + CTAs uniformes */
.tpc-about-page-intro-v8021 > .elementor-container{
  align-items:center!important;
}
.tpc-about-page-intro-v8021 .tpc-about-photo-v8021,
.tpc-about-page-intro-v8021 .tpc-about-intro-v8021{
  align-self:center!important;
}
.tpc-about-page-intro-v8021 .tpc-about-intro-v8021 > .elementor-widget-wrap,
.tpc-about-page-intro-v8021 .tpc-about-photo-v8021 > .elementor-widget-wrap{
  align-content:center!important;
}

/* Os dois botões finais ficam com a mesma geometria visual */
.tpc-about-actions-v8021 .elementor-button{
  min-height:46px!important;
  padding:13px 24px!important;
  border-radius:12px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1.2!important;
}
.tpc-about-actions-v8021 .elementor-button-wrapper{
  display:flex!important;
  align-items:center!important;
}
.tpc-about-actions-v8021 .elementor-column:first-child .elementor-button-wrapper{
  justify-content:flex-end!important;
}
.tpc-about-actions-v8021 .elementor-column:last-child .elementor-button-wrapper{
  justify-content:flex-start!important;
}

@media(max-width:767px){
  .tpc-about-page-intro-v8021 > .elementor-container{
    align-items:stretch!important;
  }
  .tpc-about-actions-v8021 .elementor-column .elementor-button-wrapper{
    justify-content:center!important;
  }
}


/* v11.2.3 — Mobile header only. No homepage/footer/mobile layout conversion. */
.tpc-mobile-toggle,.tpc-mobile-panel{display:none}
@media(max-width:700px){
  .tpc-site-header{position:relative!important;z-index:100!important}
  .tpc-site-header > .elementor-container{
    min-height:66px!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    padding:6px 12px!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(1){
    width:auto!important;flex:1 1 auto!important;min-width:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(2){display:none!important}
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3){
    width:auto!important;flex:0 0 auto!important;margin-left:8px!important;
  }
  .tpc-site-header .elementor-widget-image,
  .tpc-site-header .elementor-widget-image .elementor-widget-container{
    margin:0!important;padding:0!important;line-height:0!important;overflow:hidden!important;
  }
  .tpc-site-header .tpc-brand-logo-img-header,
  .tpc-site-header .elementor-widget-image img{
    width:auto!important;max-width:180px!important;max-height:52px!important;height:auto!important;object-fit:contain!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3) .elementor-button{
    width:42px!important;height:42px!important;min-height:42px!important;padding:0!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:10px!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3) .elementor-button-text{display:none!important}
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3) .elementor-button-icon{margin:0!important}
  .tpc-mobile-toggle{
    display:inline-flex!important;flex:0 0 42px!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:4px!important;
    width:42px!important;height:42px!important;margin-left:8px!important;padding:0!important;
    border:1px solid #E5DCEF!important;border-radius:10px!important;background:#fff!important;cursor:pointer!important;
  }
  .tpc-mobile-toggle span{display:block!important;width:20px!important;height:2px!important;background:#5d3a7d!important;border-radius:2px!important;transition:.2s ease!important}
  .tpc-site-header.is-mobile-open .tpc-mobile-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)!important}
  .tpc-site-header.is-mobile-open .tpc-mobile-toggle span:nth-child(2){opacity:0!important}
  .tpc-site-header.is-mobile-open .tpc-mobile-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)!important}
  .tpc-mobile-panel{
    display:none!important;position:absolute!important;left:12px!important;right:12px!important;top:calc(100% + 4px)!important;z-index:999!important;
    padding:10px!important;background:#fff!important;border:1px solid #E9E1EF!important;border-radius:14px!important;box-shadow:0 14px 32px rgba(35,20,55,.12)!important;
  }
  .tpc-site-header.is-mobile-open .tpc-mobile-panel{display:flex!important;flex-direction:column!important}
  .tpc-mobile-panel > a{display:block!important;padding:11px 12px!important;border-radius:9px!important;color:#10182E!important;text-decoration:none!important;font-size:15px!important;font-weight:600!important}
  .tpc-mobile-panel .tpc-language-switcher{display:flex!important;width:100%!important;margin:6px 0 0!important;padding:10px 12px 4px!important;justify-content:flex-start!important;border-top:1px solid #EEE7F1!important}
}

/* =========================================================
   v13.0.0 — Responsive system layer
   Purpose: make the existing Elementor section/column layout behave
   predictably on tablet and mobile without rewriting Elementor data.
   Desktop rules above remain authoritative.
   ========================================================= */

/* Tablet: prevent legacy Elementor columns from producing overflow. */
@media (min-width:701px) and (max-width:1024px){
  body{overflow-x:hidden!important}
  .elementor-section.elementor-section-boxed > .elementor-container{max-width:94%!important}
  .tpc-site-header > .elementor-container{padding-left:18px!important;padding-right:18px!important}
  .tpc-main-nav{gap:14px!important;font-size:13px!important}
  .tpc-hero-v415 > .elementor-container{display:flex!important;flex-wrap:wrap!important;min-height:auto!important}
  .tpc-hero-v415 .tpc-hero-left-v415{width:52%!important;flex:0 0 52%!important}
  .tpc-hero-v415 .tpc-hero-photo-v415{width:48%!important;flex:0 0 48%!important}
  .tpc-hero-v415 .tpc-booking-col{width:100%!important;flex:0 0 100%!important;margin:0!important;padding:22px 0!important}
  .tpc-hero-v415 .tpc-home-booking{max-width:620px!important;margin:0 auto!important}
  .tpc-services-home .elementor-inner-section > .elementor-container{display:flex!important;flex-wrap:wrap!important;gap:14px!important}
  .tpc-services-home .tpc-service-card-v52{width:calc(50% - 7px)!important;flex:0 0 calc(50% - 7px)!important}
  .tpc-how-home .elementor-inner-section > .elementor-container{display:flex!important;flex-wrap:wrap!important;gap:12px 0!important}
  .tpc-how-home .tpc-how-step-v52{width:33.333%!important;flex:0 0 33.333%!important;max-width:33.333%!important}
  .tpc-how-home .tpc-how-step-v52::after{display:none!important}
}

@media (max-width:700px){
  html,body{max-width:100%!important;overflow-x:hidden!important}
  body{font-size:16px!important}
  .elementor-section.elementor-section-boxed > .elementor-container,
  .elementor-section > .elementor-container{max-width:100%!important}

  /* ---------- HEADER ---------- */
  .tpc-site-header{background:#fff!important;min-height:58px!important}
  .tpc-site-header > .elementor-container{
    min-height:58px!important;height:auto!important;display:flex!important;flex-wrap:nowrap!important;
    align-items:center!important;justify-content:space-between!important;padding:5px 14px!important;gap:8px!important
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(1){
    width:auto!important;max-width:none!important;flex:1 1 auto!important;min-width:0!important
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(1) > .elementor-element-populated{
    padding:0!important;display:flex!important;align-items:center!important;min-width:0!important
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(2){display:none!important}
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3){
    width:40px!important;max-width:40px!important;flex:0 0 40px!important;margin:0!important
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3) > .elementor-element-populated{padding:0!important}
  .tpc-site-header .elementor-widget-image,
  .tpc-site-header .elementor-widget-image .elementor-widget-container{
    width:auto!important;max-width:100%!important;margin:0!important;padding:0!important;overflow:visible!important;line-height:0!important
  }
  .tpc-site-header .tpc-brand-logo-img-header,
  .tpc-site-header .elementor-widget-image img{
    width:auto!important;max-width:138px!important;max-height:46px!important;height:auto!important;object-fit:contain!important;object-position:left center!important
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3) .elementor-button{
    width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;margin:0!important;
    border-radius:10px!important;display:flex!important;align-items:center!important;justify-content:center!important
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3) .elementor-button-text{display:none!important}
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3) .elementor-button-icon{margin:0!important;font-size:16px!important}
  .tpc-mobile-toggle{
    width:40px!important;height:40px!important;flex:0 0 40px!important;margin:0!important;padding:0!important;gap:4px!important;border-radius:10px!important
  }
  .tpc-mobile-toggle span{width:19px!important}
  .tpc-mobile-panel{left:12px!important;right:12px!important;top:calc(100% + 2px)!important}

  /* ---------- SHARED SECTION RHYTHM ---------- */
  .tpc-services-home,
  .tpc-how-home,
  .tpc-about-home,
  .tpc-reviews-home{padding-left:18px!important;padding-right:18px!important}
  .tpc-services-home > .elementor-container,
  .tpc-how-home > .elementor-container,
  .tpc-about-home > .elementor-container,
  .tpc-reviews-home > .elementor-container{width:100%!important;max-width:100%!important}
  .tpc-services-home .elementor-widget-heading h2,
  .tpc-how-home .elementor-widget-heading h2,
  .tpc-about-home .elementor-widget-heading h2,
  .tpc-reviews-home .elementor-widget-heading h2{
    font-size:34px!important;line-height:1.08!important;letter-spacing:-.5px!important;margin-bottom:24px!important
  }

  /* ---------- HERO ---------- */
  .tpc-hero-v415{min-height:0!important;overflow:hidden!important;padding:0!important;background:#FFF9F5!important}
  .tpc-hero-v415 > .elementor-container{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;min-height:0!important;width:100%!important}
  .tpc-hero-v415 .tpc-hero-left-v415,
  .tpc-hero-v415 .tpc-hero-photo-v415,
  .tpc-hero-v415 .tpc-booking-col{width:100%!important;max-width:100%!important;flex:0 0 auto!important;margin:0!important}
  .tpc-hero-v415 .tpc-hero-left-v415{order:1!important;padding:0!important;background:#FFF9F5!important}
  .tpc-hero-v415 .tpc-hero-left-v415 > .elementor-element-populated{
    padding:34px 20px 26px!important;display:flex!important;flex-direction:column!important;align-items:stretch!important
  }
  .tpc-hero-v415 .tpc-hero-left-v415 .elementor-widget-heading{margin:0 0 14px!important}
  .tpc-hero-v415 .tpc-hero-left-v415 .elementor-widget-heading h1{
    font-size:48px!important;line-height:.98!important;letter-spacing:-1.7px!important;text-align:left!important
  }
  .tpc-hero-v415 .tpc-hero-copy{max-width:none!important;font-size:18px!important;line-height:1.52!important}
  .tpc-hero-v415 .tpc-hero-copy br{display:none!important}
  .tpc-hero-v415 .tpc-benefits{margin:26px 0 0!important;width:100%!important}
  .tpc-hero-v415 .tpc-benefits > .elementor-container{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:flex-start!important;gap:8px!important
  }
  .tpc-hero-v415 .tpc-benefits .elementor-column{
    width:33.333%!important;max-width:33.333%!important;flex:1 1 0!important;padding:0!important
  }
  .tpc-hero-v415 .tpc-benefits .elementor-element-populated{padding:0!important}
  .tpc-hero-v415 .tpc-benefits .elementor-widget-icon-box{width:100%!important;text-align:center!important;margin:0!important}
  .tpc-hero-v415 .tpc-benefits .elementor-icon-box-icon{margin:0 0 9px!important}
  .tpc-hero-v415 .tpc-benefits .elementor-icon{
    width:50px!important;height:50px!important;font-size:23px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important
  }
  .tpc-hero-v415 .tpc-benefits .elementor-icon-box-title{
    width:100%!important;max-width:118px!important;min-height:38px!important;margin:0 auto!important;
    font-size:13px!important;line-height:1.14!important;text-align:center!important;display:flex!important;align-items:flex-start!important;justify-content:center!important
  }
  .tpc-hero-v415 .tpc-hero-ctas{width:100%!important;max-width:none!important;margin:24px 0 0!important}
  .tpc-hero-v415 .tpc-hero-ctas > .elementor-container{display:flex!important;flex-wrap:nowrap!important;gap:10px!important}
  .tpc-hero-v415 .tpc-hero-ctas .elementor-column{width:50%!important;max-width:50%!important;flex:1 1 0!important;padding:0!important}
  .tpc-hero-v415 .tpc-hero-ctas .elementor-element-populated{padding:0!important}
  .tpc-hero-v415 .tpc-hero-ctas .elementor-button{
    width:100%!important;min-height:50px!important;padding:12px 10px!important;border-radius:12px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;font-size:14px!important;white-space:nowrap!important
  }
  .tpc-hero-v415 .tpc-hero-photo-v415{order:2!important;height:auto!important;min-height:0!important;overflow:hidden!important;padding:0!important}
  .tpc-hero-v415 .tpc-hero-photo-v415 > .elementor-element-populated{padding:0!important}
  .tpc-hero-v415 .tpc-hero-photo-v415 .elementor-widget-image,
  .tpc-hero-v415 .tpc-hero-photo-v415 .elementor-widget-image .elementor-widget-container{height:auto!important}
  .tpc-hero-v415 .tpc-hero-photo-v415 img{
    width:100%!important;max-width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:1.28/1!important;
    object-fit:cover!important;object-position:center 44%!important;transform:none!important;display:block!important
  }
  .tpc-hero-v415 .tpc-hero-photo-v415::before,
  .tpc-hero-v415 .tpc-hero-photo-v415::after{display:none!important}
  .tpc-hero-v415 .tpc-booking-col{order:3!important;padding:24px 18px 30px!important;background:#fff!important}
  .tpc-hero-v415 .tpc-booking-col > .elementor-element-populated{padding:0!important}
  .tpc-home-booking{width:100%!important;max-width:520px!important;margin:0 auto!important;padding:20px!important;border-radius:18px!important}
  .tpc-home-booking .tpc-booking-row{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .tpc-home-booking input,.tpc-home-booking select,.tpc-home-booking button{min-height:46px!important}

  /* ---------- SERVICES ---------- */
  .tpc-services-home{padding-top:34px!important;padding-bottom:34px!important}
  .tpc-services-home .elementor-inner-section > .elementor-container{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;width:100%!important
  }
  .tpc-services-home .tpc-service-card-v52{
    width:100%!important;max-width:none!important;min-width:0!important;flex:none!important;margin:0!important
  }
  .tpc-services-home .tpc-service-card-v52 > .elementor-element-populated{
    min-height:174px!important;height:100%!important;padding:20px 10px!important;border-radius:16px!important
  }
  .tpc-services-home .tpc-service-card-v52 .elementor-icon{width:66px!important;height:66px!important;font-size:29px!important}
  .tpc-services-home .tpc-service-card-v52 .elementor-icon-box-title{font-size:15px!important;line-height:1.15!important;max-width:145px!important}

  /* Extras card/shortcode: full width and no accidental two-column descendants. */
  .tpc-services-home .tpc-extras-home,
  .tpc-services-home [class*="extras"]{max-width:100%!important}

  /* ---------- HOW IT WORKS ---------- */
  .tpc-how-home{padding-top:38px!important;padding-bottom:38px!important}
  .tpc-how-home .elementor-inner-section > .elementor-container{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px 14px!important;width:100%!important
  }
  .tpc-how-home .tpc-how-step-v52{
    width:100%!important;max-width:none!important;min-width:0!important;flex:none!important;position:relative!important;margin:0!important
  }
  .tpc-how-home .tpc-how-step-v52 > .elementor-element-populated{
    min-height:132px!important;padding:4px 6px 8px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important
  }
  .tpc-how-home .tpc-how-step-v52 .elementor-widget-html{
    position:absolute!important;top:0!important;left:50%!important;transform:translateX(-47px)!important;z-index:5!important;margin:0!important
  }
  .tpc-step-number-v52,.tpc-step-number{width:31px!important;height:31px!important;font-size:14px!important}
  .tpc-how-home .tpc-how-step-v52 .elementor-icon{width:70px!important;height:70px!important;font-size:28px!important}
  .tpc-how-home .tpc-how-step-v52 .elementor-icon-box-icon{margin:0 0 10px!important}
  .tpc-how-home .tpc-how-step-v52 .elementor-icon-box-title{
    width:100%!important;max-width:150px!important;min-height:36px!important;margin:0 auto!important;font-size:15px!important;line-height:1.16!important;
    display:flex!important;align-items:flex-start!important;justify-content:center!important;text-align:center!important
  }
  .tpc-how-home .tpc-how-step-v52::after{display:none!important}

  /* ---------- ABOUT HOME ---------- */
  .tpc-about-home{padding-top:36px!important;padding-bottom:36px!important}
  .tpc-about-home > .elementor-container{display:flex!important;flex-direction:column!important;gap:0!important}
  .tpc-about-home > .elementor-container > .elementor-column{
    width:100%!important;max-width:100%!important;flex:0 0 auto!important;margin:0!important
  }
  .tpc-about-home > .elementor-container > .elementor-column:nth-child(1){order:1!important}
  .tpc-about-home > .elementor-container > .elementor-column:nth-child(2){order:2!important}
  .tpc-about-home > .elementor-container > .elementor-column:nth-child(3){order:3!important;margin-top:14px!important}
  .tpc-about-home > .elementor-container > .elementor-column > .elementor-element-populated{padding-left:0!important;padding-right:0!important}
  .tpc-about-home .elementor-column:first-child .elementor-widget-image img{
    width:100%!important;height:auto!important;aspect-ratio:1.18/1!important;object-fit:cover!important;transform:none!important;border-radius:18px!important
  }
  .tpc-about-home > .elementor-container > .elementor-column:nth-child(2) > .elementor-element-populated{padding-top:24px!important;padding-bottom:0!important}
  .tpc-about-home .elementor-widget-text-editor{font-size:17px!important;line-height:1.55!important}
  .tpc-about-home .elementor-button{min-height:46px!important;padding:12px 22px!important}
  .tpc-about-home > .elementor-container > .elementor-column:nth-child(3) > .elementor-element-populated{
    padding:20px!important;border-radius:18px!important
  }
  .tpc-about-home .elementor-icon-list-items{margin:0!important}
  .tpc-about-home .elementor-icon-list-item{margin:0 0 13px!important;padding:0!important;align-items:center!important}
  .tpc-about-home .elementor-icon-list-item:last-child{margin-bottom:0!important}
  .tpc-about-home .elementor-icon-list-icon{width:44px!important;height:44px!important;min-width:44px!important;margin-right:12px!important}
  .tpc-about-home .elementor-icon-list-text{font-size:16px!important;line-height:1.3!important}

  /* ---------- REVIEWS ---------- */
  .tpc-reviews-home{padding-top:36px!important;padding-bottom:38px!important}
  .tpc-reviews-home .tpc-reviews-carousel{max-width:100%!important}
  .tpc-reviews-home .tpc-review-card,
  .tpc-reviews-home [class*="tpc-review-card"]{width:100%!important;max-width:100%!important}
  .tpc-reviews-home .tpc-review-card-v56 .elementor-testimonial-wrapper{min-height:0!important}

  /* ---------- FOOTER ---------- */
  .tpc-site-footer{padding:0!important;border-top:1px solid #EEE7F1!important}
  .tpc-site-footer > .elementor-container{
    display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important;max-width:100%!important;
    padding:28px 20px 30px!important;gap:18px!important
  }
  .tpc-site-footer > .elementor-container > .elementor-column{
    width:100%!important;max-width:100%!important;flex:0 0 auto!important;margin:0!important;padding:0!important
  }
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-widget-wrap,
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-element-populated{
    width:100%!important;min-height:0!important;padding:0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important
  }
  .tpc-site-footer .elementor-widget-image,
  .tpc-site-footer .elementor-widget-image .elementor-widget-container{width:auto!important;max-width:100%!important;margin:0!important;padding:0!important}
  .tpc-site-footer .tpc-brand-logo-img-footer,
  .tpc-site-footer .elementor-widget-image img{width:auto!important;max-width:230px!important;max-height:92px!important;height:auto!important;object-fit:contain!important}
  .tpc-site-footer .elementor-widget-text-editor:has(.tpc-footer-nav),
  .tpc-site-footer .elementor-widget-text-editor:has(.tpc-footer-nav) > .elementor-widget-container{min-height:0!important;height:auto!important;width:100%!important}
  .tpc-site-footer .tpc-footer-nav{
    display:flex!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;gap:10px 18px!important;
    width:100%!important;margin:0!important;padding:0!important;transform:none!important;font-size:14px!important;line-height:1.2!important
  }
  .tpc-site-footer .tpc-footer-nav a{display:inline-flex!important;line-height:1.2!important}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section{width:110px!important;margin:0 auto!important}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:center!important;gap:18px!important;width:110px!important
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section .elementor-column{
    width:auto!important;max-width:none!important;flex:0 0 auto!important
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section .elementor-element-populated{padding:0!important}
  .tpc-site-footer .elementor-widget-icon{width:auto!important;margin:0!important}
  .tpc-site-footer .elementor-widget-icon .elementor-icon{font-size:30px!important}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button-wrapper{text-align:center!important;width:100%!important}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button{
    min-height:48px!important;min-width:220px!important;padding:12px 22px!important;margin:0 auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important
  }

  /* ---------- FULL BOOKING ---------- */
  .tpc-booking{width:calc(100% - 28px)!important;max-width:none!important;margin:20px auto!important;padding:18px 16px!important;border-radius:18px!important}
  .tpc-booking-title{align-items:flex-start!important}
  .tpc-booking-title h2{font-size:24px!important;line-height:1.15!important}
  .tpc-booking-progress{grid-template-columns:repeat(6,1fr)!important;gap:6px!important;margin:22px 0 20px!important}
  .tpc-booking-progress i{display:none!important}
  .tpc-booking-progress b{width:30px!important;height:30px!important;margin:0 auto!important}
  .tpc-booking-progress small{display:none!important}
  .tpc-pane{padding-top:8px!important}
  .tpc-pane h3{font-size:24px!important;line-height:1.15!important}
  .tpc-service-choices{grid-template-columns:1fr!important;gap:10px!important}
  .tpc-service-choices button{padding:16px!important}
  .tpc-form-grid,.tpc-form-grid.one{grid-template-columns:1fr!important;gap:12px!important}
  .tpc-form-grid input,.tpc-form-grid select,.tpc-form-grid textarea{min-height:46px!important;font-size:16px!important}
  .tpc-extra{grid-template-columns:1fr auto!important;gap:8px 12px!important;padding:13px!important}
  .tpc-extra em{grid-column:2!important;grid-row:1!important;white-space:nowrap!important}
  .tpc-extra input{grid-column:2!important;grid-row:2!important;justify-self:end!important}
  .tpc-summary{padding:10px!important}
  .tpc-summary > div{gap:12px!important;padding:10px 6px!important;align-items:flex-start!important}
  .tpc-summary strong{text-align:right!important;overflow-wrap:anywhere!important}
  .tpc-booking-actions{gap:10px!important;margin-top:22px!important}
  .tpc-booking-actions button{min-height:46px!important}

  /* ---------- CONTACT + GENERIC PUBLIC FORMS ---------- */
  .tpc-contact-form,.tpc-contact-card,[class*="tpc-contact"] form{max-width:100%!important}
  .tpc-contact-form input,.tpc-contact-form select,.tpc-contact-form textarea,
  [class*="tpc-contact"] input,[class*="tpc-contact"] select,[class*="tpc-contact"] textarea{font-size:16px!important;max-width:100%!important}

  /* ---------- INDIVIDUAL ABOUT PAGE ---------- */
  .tpc-about-page-intro-v8021 > .elementor-container,
  .tpc-about-journey-v8021 > .elementor-container{display:flex!important;flex-direction:column!important}
  .tpc-about-page-intro-v8021 .elementor-column,
  .tpc-about-journey-v8021 .elementor-column{width:100%!important;max-width:100%!important;flex:0 0 auto!important}
  .tpc-about-page-intro-v8021 .elementor-widget-image img{width:min(78%,300px)!important;max-width:300px!important}
  .tpc-about-intro-v8021{padding:20px 0 0!important}
  .tpc-about-journey-v8021 .elementor-column:first-child{padding-right:0!important}
  .tpc-about-closing-v8021{width:calc(100% - 32px)!important;padding:22px 18px!important}
  .tpc-about-actions-v8021 > .elementor-container{display:flex!important;flex-direction:column!important;gap:10px!important}
  .tpc-about-actions-v8021 .elementor-column{width:100%!important;max-width:100%!important}
  .tpc-about-actions-v8021 .elementor-button-wrapper{justify-content:center!important}
}

@media (max-width:420px){
  .tpc-site-header .tpc-brand-logo-img-header,
  .tpc-site-header .elementor-widget-image img{max-width:124px!important;max-height:43px!important}
  .tpc-hero-v415 .tpc-hero-left-v415 .elementor-widget-heading h1{font-size:44px!important}
  .tpc-hero-v415 .tpc-hero-left-v415 > .elementor-element-populated{padding-left:18px!important;padding-right:18px!important}
  .tpc-hero-v415 .tpc-benefits{margin-top:22px!important}
  .tpc-hero-v415 .tpc-benefits .elementor-icon{width:46px!important;height:46px!important;font-size:21px!important}
  .tpc-hero-v415 .tpc-benefits .elementor-icon-box-title{font-size:12px!important;max-width:104px!important}
  .tpc-hero-v415 .tpc-hero-ctas > .elementor-container{gap:8px!important}
  .tpc-hero-v415 .tpc-hero-ctas .elementor-button{font-size:13px!important;padding-left:7px!important;padding-right:7px!important}
  .tpc-services-home .tpc-service-card-v52 > .elementor-element-populated{min-height:164px!important;padding:18px 8px!important}
  .tpc-services-home .tpc-service-card-v52 .elementor-icon{width:60px!important;height:60px!important;font-size:27px!important}
  .tpc-how-home .elementor-inner-section > .elementor-container{gap:18px 10px!important}
  .tpc-how-home .tpc-how-step-v52 .elementor-widget-html{transform:translateX(-44px)!important}
  .tpc-site-footer > .elementor-container{padding-left:16px!important;padding-right:16px!important}
}

/* =========================================================
   v13.0.1 — Targeted mobile polish only
   Scope: header logo, individual About page and footer.
   All other v13.0.0 responsive rules remain untouched.
   ========================================================= */
@media (max-width:700px){
  /* HEADER — slightly larger brand, same compact row */
  .tpc-site-header .tpc-brand-logo-img-header,
  .tpc-site-header .elementor-widget-image img{
    max-width:152px!important;
    max-height:50px!important;
  }

  /* INDIVIDUAL ABOUT PAGE — consistent mobile alignment */
  .tpc-about-page-intro-v8021,
  .tpc-about-journey-v8021,
  .tpc-about-actions-v8021{
    padding-left:20px!important;
    padding-right:20px!important;
  }
  .tpc-about-page-intro-v8021 > .elementor-container,
  .tpc-about-journey-v8021 > .elementor-container,
  .tpc-about-actions-v8021 > .elementor-container{
    width:100%!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .tpc-about-page-intro-v8021 .tpc-about-photo-v8021,
  .tpc-about-page-intro-v8021 .tpc-about-intro-v8021,
  .tpc-about-journey-v8021 > .elementor-container > .elementor-column{
    padding-left:0!important;
    padding-right:0!important;
  }
  .tpc-about-page-intro-v8021 .tpc-about-photo-v8021 > .elementor-element-populated,
  .tpc-about-page-intro-v8021 .tpc-about-intro-v8021 > .elementor-element-populated,
  .tpc-about-journey-v8021 > .elementor-container > .elementor-column > .elementor-element-populated{
    padding-left:0!important;
    padding-right:0!important;
  }
  .tpc-about-page-intro-v8021 .elementor-widget-image,
  .tpc-about-page-intro-v8021 .elementor-widget-image .elementor-widget-container{
    text-align:center!important;
    width:100%!important;
  }
  .tpc-about-page-intro-v8021 .elementor-widget-image img{
    width:min(100%,320px)!important;
    max-width:320px!important;
    margin:0 auto!important;
  }
  .tpc-about-intro-v8021{
    padding-top:24px!important;
  }
  .tpc-about-intro-v8021 .elementor-widget-heading,
  .tpc-about-intro-v8021 .elementor-widget-text-editor,
  .tpc-about-journey-v8021 .elementor-widget-heading,
  .tpc-about-journey-v8021 .elementor-widget-text-editor{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    text-align:left!important;
  }
  .tpc-about-intro-v8021 .elementor-widget-text-editor p,
  .tpc-about-journey-v8021 .elementor-widget-text-editor p{
    margin-left:0!important;
    margin-right:0!important;
  }
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021{
    margin-top:18px!important;
  }
  .tpc-about-closing-v8021{
    width:calc(100% - 40px)!important;
    max-width:640px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .tpc-about-actions-v8021{
    max-width:100%!important;
    margin:20px auto 0!important;
  }
  .tpc-about-actions-v8021 > .elementor-container{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:12px!important;
  }
  .tpc-about-actions-v8021 .elementor-column{
    width:100%!important;
    max-width:100%!important;
    flex:0 0 auto!important;
    margin:0!important;
    padding:0!important;
  }
  .tpc-about-actions-v8021 .elementor-column > .elementor-element-populated{
    padding:0!important;
    margin:0!important;
  }
  .tpc-about-actions-v8021 .elementor-button-wrapper{
    width:100%!important;
    display:flex!important;
    justify-content:center!important;
    text-align:center!important;
  }
  .tpc-about-actions-v8021 .elementor-button{
    width:100%!important;
    max-width:310px!important;
    min-height:48px!important;
    margin:0 auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  /* FOOTER — one centered visual axis, compact and balanced */
  .tpc-site-footer > .elementor-container{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:flex-start!important;
    padding:24px 20px 26px!important;
    gap:14px!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column{
    width:100%!important;
    max-width:100%!important;
    flex:0 0 auto!important;
    margin:0!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-element-populated,
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-widget-wrap{
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .tpc-site-footer .elementor-widget-image,
  .tpc-site-footer .elementor-widget-image .elementor-widget-container{
    width:100%!important;
    margin:0!important;
    padding:0!important;
    text-align:center!important;
  }
  .tpc-site-footer .tpc-brand-logo-img-footer,
  .tpc-site-footer .elementor-widget-image img{
    width:auto!important;
    max-width:250px!important;
    max-height:94px!important;
    margin:0 auto!important;
    display:block!important;
  }
  .tpc-site-footer .tpc-footer-nav{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    flex-wrap:wrap!important;
    gap:9px 18px!important;
    width:min(100%,360px)!important;
    margin:0 auto!important;
    padding:0!important;
    text-align:center!important;
    transform:none!important;
  }
  .tpc-site-footer .tpc-footer-nav a{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    line-height:1.25!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section{
    width:auto!important;
    max-width:none!important;
    margin:0 auto!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    max-width:none!important;
    gap:22px!important;
    margin:0 auto!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section .elementor-column{
    width:38px!important;
    max-width:38px!important;
    flex:0 0 38px!important;
    margin:0!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section .elementor-element-populated,
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section .elementor-widget-wrap{
    width:38px!important;
    min-height:38px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .tpc-site-footer .elementor-widget-icon,
  .tpc-site-footer .elementor-widget-icon .elementor-widget-container{
    width:38px!important;
    height:38px!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .tpc-site-footer .elementor-widget-icon .elementor-icon{
    width:38px!important;
    height:38px!important;
    margin:0!important;
    padding:0!important;
    font-size:30px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button-wrapper{
    width:100%!important;
    display:flex!important;
    justify-content:center!important;
    text-align:center!important;
    margin:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button{
    width:auto!important;
    min-width:220px!important;
    max-width:290px!important;
    min-height:48px!important;
    margin:0 auto!important;
    padding:12px 24px!important;
  }
}

@media (max-width:420px){
  .tpc-site-header .tpc-brand-logo-img-header,
  .tpc-site-header .elementor-widget-image img{
    max-width:145px!important;
    max-height:48px!important;
  }
  .tpc-site-footer .tpc-brand-logo-img-footer,
  .tpc-site-footer .elementor-widget-image img{
    max-width:235px!important;
  }
}


/* =========================================================
   v13.0.2 — Final targeted mobile alignment
   Scope ONLY: footer mobile + restore About qualifications card padding.
   ========================================================= */
@media (max-width:700px){
  /* ABOUT — restore the qualifications card's original internal spacing. */
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 > .elementor-element-populated,
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 > .elementor-widget-wrap{
    padding:28px!important;
  }

  /* FOOTER — two deliberate rows:
     row 1: logo | menu
     row 2: social icons | booking button */
  .tpc-site-footer > .elementor-container{
    display:grid!important;
    grid-template-columns:minmax(135px, 0.9fr) minmax(0, 1.35fr)!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:16px!important;
    row-gap:20px!important;
    padding:24px 20px 28px!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(1){grid-column:1!important;grid-row:1!important;}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(2){grid-column:2!important;grid-row:1!important;}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3){grid-column:1!important;grid-row:2!important;}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4){grid-column:2!important;grid-row:2!important;}

  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-element-populated,
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-widget-wrap{
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  /* Logo is large enough to read, but stays inside its half-row. */
  .tpc-site-footer .elementor-widget-image,
  .tpc-site-footer .elementor-widget-image .elementor-widget-container{
    width:100%!important;
    margin:0!important;
    padding:0!important;
    text-align:center!important;
  }
  .tpc-site-footer .tpc-brand-logo-img-footer,
  .tpc-site-footer .elementor-widget-image img{
    width:100%!important;
    max-width:180px!important;
    max-height:none!important;
    height:auto!important;
    margin:0 auto!important;
    display:block!important;
  }

  /* Menu stays beside the logo and wraps neatly within its own column. */
  .tpc-site-footer .tpc-footer-nav{
    width:100%!important;
    max-width:230px!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px 14px!important;
    text-align:center!important;
    transform:none!important;
  }
  .tpc-site-footer .tpc-footer-nav a{
    margin:0!important;
    padding:0!important;
    font-size:14px!important;
    line-height:1.25!important;
    white-space:nowrap!important;
  }

  /* Social icons form one horizontal group in the left cell of row 2. */
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section,
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{
    width:auto!important;
    max-width:none!important;
    margin:0 auto!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:18px!important;
  }

  /* Booking button occupies the right cell and shares the same vertical centre. */
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button-wrapper{
    width:100%!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button{
    width:100%!important;
    min-width:0!important;
    max-width:250px!important;
    min-height:48px!important;
    margin:0!important;
    padding:12px 16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}

@media (max-width:420px){
  .tpc-site-footer > .elementor-container{
    grid-template-columns:minmax(125px, .9fr) minmax(0, 1.25fr)!important;
    column-gap:12px!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .tpc-site-footer .tpc-brand-logo-img-footer,
  .tpc-site-footer .elementor-widget-image img{max-width:160px!important;}
  .tpc-site-footer .tpc-footer-nav{max-width:210px!important;gap:7px 10px!important;}
  .tpc-site-footer .tpc-footer-nav a{font-size:13px!important;}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button{padding-left:12px!important;padding-right:12px!important;}
}

/* =========================================================
   v13.0.3 — Final mobile footer structure + About card restore
   Scope ONLY: mobile footer and individual About qualifications card.
   ========================================================= */
@media (max-width:700px){
  /* ABOUT — restore the qualification card's original 28px inner inset.
     The background stays on the Elementor column; padding is applied to
     the widget container so the icon list cannot be pulled to the edge by
     responsive column rules. */
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 > .elementor-element-populated,
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 > .elementor-widget-wrap{
    padding:0!important;
  }
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 .elementor-widget-icon-list,
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 .elementor-widget-icon-list > .elementor-widget-container{
    width:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 .elementor-widget-icon-list > .elementor-widget-container{
    padding:28px!important;
  }
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 .elementor-icon-list-items{
    width:100%!important;
    margin:0!important;
    padding:0!important;
  }

  /* FOOTER — exact requested mobile hierarchy:
     row 1: centered logo
     row 2: complete menu on one line
     row 3: social icons + booking button on one line */
  .tpc-site-footer > .elementor-container{
    display:grid!important;
    grid-template-columns:104px minmax(0,1fr)!important;
    grid-template-rows:auto auto auto!important;
    width:100%!important;
    max-width:100%!important;
    align-items:center!important;
    justify-items:center!important;
    column-gap:16px!important;
    row-gap:18px!important;
    padding:24px 14px 28px!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(1){
    grid-column:1 / -1!important;grid-row:1!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(2){
    grid-column:1 / -1!important;grid-row:2!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3){
    grid-column:1!important;grid-row:3!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4){
    grid-column:2!important;grid-row:3!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-element-populated,
  .tpc-site-footer > .elementor-container > .elementor-column > .elementor-widget-wrap{
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  .tpc-site-footer .elementor-widget-image,
  .tpc-site-footer .elementor-widget-image .elementor-widget-container{
    width:100%!important;margin:0!important;padding:0!important;text-align:center!important;
  }
  .tpc-site-footer .tpc-brand-logo-img-footer,
  .tpc-site-footer .elementor-widget-image img{
    width:auto!important;
    max-width:235px!important;
    max-height:94px!important;
    height:auto!important;
    margin:0 auto!important;
    display:block!important;
    object-fit:contain!important;
  }

  .tpc-site-footer .elementor-widget-text-editor:has(.tpc-footer-nav),
  .tpc-site-footer .elementor-widget-text-editor:has(.tpc-footer-nav) > .elementor-widget-container{
    width:100%!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;
  }
  .tpc-site-footer .tpc-footer-nav{
    width:100%!important;
    max-width:none!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0 11px!important;
    white-space:nowrap!important;
    text-align:center!important;
    transform:none!important;
  }
  .tpc-site-footer .tpc-footer-nav a{
    flex:0 0 auto!important;
    margin:0!important;
    padding:0!important;
    font-size:13px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
  }

  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section,
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{
    width:100%!important;
    max-width:104px!important;
    margin:0!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:14px!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section .elementor-column{
    width:42px!important;max-width:42px!important;flex:0 0 42px!important;margin:0!important;padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section .elementor-element-populated,
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section .elementor-widget-wrap{
    width:42px!important;min-height:42px!important;margin:0!important;padding:0!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
  }
  .tpc-site-footer .elementor-widget-icon,
  .tpc-site-footer .elementor-widget-icon .elementor-widget-container{
    width:42px!important;height:42px!important;margin:0!important;padding:0!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
  }
  .tpc-site-footer .elementor-widget-icon .elementor-icon{
    width:42px!important;height:42px!important;margin:0!important;padding:0!important;font-size:30px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
  }

  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button-wrapper{
    width:100%!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button{
    width:100%!important;
    max-width:250px!important;
    min-width:0!important;
    min-height:48px!important;
    margin:0!important;
    padding:12px 16px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}

@media (max-width:420px){
  .tpc-site-footer > .elementor-container{
    grid-template-columns:96px minmax(0,1fr)!important;
    column-gap:12px!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .tpc-site-footer .tpc-brand-logo-img-footer,
  .tpc-site-footer .elementor-widget-image img{max-width:220px!important;}
  .tpc-site-footer .tpc-footer-nav{gap:0 8px!important;}
  .tpc-site-footer .tpc-footer-nav a{font-size:12px!important;}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section,
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{max-width:96px!important;}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button{font-size:14px!important;padding-left:11px!important;padding-right:11px!important;}
}

/* =========================================================
   v13.0.4 — Two targeted mobile corrections only
   1) Footer: centered logo; menu unchanged; Instagram + WhatsApp + CTA on one row.
   2) Individual About: restore the qualifications list's original inner inset.
   ========================================================= */
@media (max-width:700px){
  /* ABOUT — move the actual list content inward.  Previous rules were
     landing on the outer Elementor wrappers, while the live icon list
     itself still started on the card edge. */
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 .elementor-widget-icon-list > .elementor-widget-container{
    padding:0!important;
  }
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 .elementor-icon-list-items{
    box-sizing:border-box!important;
    width:100%!important;
    margin:0!important;
    padding:28px 22px 28px 28px!important;
  }
  .tpc-about-journey-v8021 .tpc-about-qualifications-v8021 .elementor-icon-list-item{
    width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* FOOTER row 1 — force the fixed-width logo widget to be centered
     inside the full-width first row, regardless of Elementor inline width. */
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(1) > .elementor-element-populated,
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(1) > .elementor-widget-wrap{
    display:block!important;
    width:100%!important;
    text-align:center!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(1) .elementor-widget-image{
    display:block!important;
    margin-left:auto!important;
    margin-right:auto!important;
    float:none!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(1) .elementor-widget-image > .elementor-widget-container{
    display:flex!important;
    width:100%!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(1) .elementor-widget-image img{
    display:block!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  /* FOOTER row 3 — social icons are a true two-column horizontal group. */
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section,
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{
    width:100%!important;
    max-width:104px!important;
    margin:0!important;
    padding:0!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container{
    display:grid!important;
    grid-template-columns:42px 42px!important;
    grid-template-rows:42px!important;
    column-gap:14px!important;
    align-items:center!important;
    justify-content:start!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container > .elementor-column{
    width:42px!important;
    max-width:42px!important;
    min-width:42px!important;
    height:42px!important;
    margin:0!important;
    padding:0!important;
    display:block!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container > .elementor-column:nth-child(1){grid-column:1!important;grid-row:1!important;}
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3) .elementor-inner-section > .elementor-container > .elementor-column:nth-child(2){grid-column:2!important;grid-row:1!important;}

  /* Keep the booking CTA on the same row and vertically centred with icons. */
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(3),
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4){
    align-self:center!important;
  }
  .tpc-site-footer > .elementor-container > .elementor-column:nth-child(4) .elementor-button-wrapper{
    min-height:42px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
  }
}

/* v14.0.0 — Área de Cliente. Isolada do restante layout. */
.tpc-client-area{background:#fbf7f0;padding:64px 20px 80px;color:#342b38}.tpc-client-shell{width:min(1080px,100%);margin:0 auto}.tpc-client-login{width:min(520px,100%);margin:20px auto;background:#fff;border:1px solid #eadfed;border-radius:22px;padding:38px;box-shadow:0 12px 35px rgba(72,42,82,.07);text-align:center}.tpc-client-paw{font-size:34px}.tpc-client-login h1,.tpc-client-welcome h1{color:#5d356e;margin:8px 0 10px}.tpc-client-login p{color:#6e6571;line-height:1.6}.tpc-client-login form{text-align:left;margin-top:24px}.tpc-client-login label{font-weight:700;color:#4c4050}.tpc-client-login input{display:block;width:100%;margin-top:8px;border:1px solid #d8cbdc;border-radius:11px;padding:13px 14px;font:inherit;background:#fff}.tpc-client-login button,.tpc-client-logout{border:0;border-radius:11px;background:#6b3d7a;color:#fff;font-weight:700;padding:13px 22px;cursor:pointer}.tpc-client-login form>button{width:100%;margin-top:16px}.tpc-client-error{background:#fff1f1;color:#9c3030;padding:11px 14px;border-radius:9px;margin-top:16px}.tpc-client-welcome{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#ead9ee;border-radius:20px;padding:28px 32px;margin-bottom:28px}.tpc-client-welcome span{font-weight:700;color:#755281}.tpc-client-welcome h1{font-size:30px}.tpc-client-welcome p{margin:0;color:#6c5b70}.tpc-client-tabs{margin-top:30px}.tpc-client-tabs>h2{font-size:25px;color:#5d356e;margin:0 0 16px}.tpc-client-booking{background:#fff;border:1px solid #e8dfe9;border-radius:18px;padding:22px 24px;margin:0 0 15px;box-shadow:0 5px 20px rgba(72,42,82,.04)}.tpc-client-booking-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;border-bottom:1px solid #eee6ef;padding-bottom:15px;margin-bottom:17px}.tpc-client-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:#8b7d8e;font-weight:700}.tpc-client-booking h3{margin:4px 0 0;color:#4f315b;font-size:20px}.tpc-client-status{background:#efe4f2;color:#643c70;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700;white-space:nowrap}.tpc-client-booking-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.tpc-client-booking-grid>div{min-width:0}.tpc-client-booking-grid span{display:block;font-size:12px;color:#8a7e8d;margin-bottom:5px}.tpc-client-booking-grid strong{font-size:14px;overflow-wrap:anywhere}.tpc-client-empty{background:#fff;border:1px dashed #d9cbdc;border-radius:14px;padding:24px;text-align:center;color:#776b79}@media(max-width:800px){.tpc-client-area{padding:34px 16px 55px}.tpc-client-booking-grid{grid-template-columns:repeat(2,1fr)}.tpc-client-welcome{padding:22px;align-items:flex-start}.tpc-client-login{padding:28px 22px}.tpc-client-booking{padding:18px}.tpc-client-booking-head{flex-direction:column}.tpc-client-welcome h1{font-size:25px}}@media(max-width:480px){.tpc-client-booking-grid{grid-template-columns:1fr}.tpc-client-welcome{flex-direction:column}.tpc-client-logout{padding:10px 16px}}

/* =========================================================
   v14.0.1 — Public Client Area access in header only.
   Keeps the approved v13/v14 layout intact.
   ========================================================= */
.tpc-site-header > .elementor-container > .elementor-column:last-child > .elementor-element-populated{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex-wrap:nowrap!important;
}
.tpc-client-area-link{
  width:40px;height:40px;flex:0 0 40px;border-radius:50%;display:inline-flex!important;align-items:center;justify-content:center;
  color:#6b3d7a!important;background:#f2e7f4;text-decoration:none!important;transition:transform .15s ease,background .15s ease;
}
.tpc-client-area-link:hover{background:#e7d5eb;transform:translateY(-1px)}
.tpc-client-area-link svg{width:20px;height:20px;display:block;fill:currentColor}
@media(max-width:700px){
  .tpc-site-header > .elementor-container > .elementor-column:last-child > .elementor-element-populated{gap:7px!important}
  .tpc-client-area-link{width:36px;height:36px;flex-basis:36px}
  .tpc-client-area-link svg{width:18px;height:18px}
}


/* =========================================================
   v14.0.2 — Client Area access refinement only.
   Desktop: keep icon beside booking CTA and normalize EN alignment.
   Mobile: hide header icon and expose Client Area inside hamburger menu.
   ========================================================= */
@media (min-width:701px){
  .tpc-site-header > .elementor-container > .elementor-column:last-child > .elementor-element-populated{
    display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex-wrap:nowrap!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-widget-button{
    width:auto!important;max-width:none!important;flex:0 0 auto!important;margin:0!important;align-self:center!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-button-wrapper{
    display:flex!important;align-items:center!important;justify-content:flex-end!important;margin:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-button{
    white-space:nowrap!important;margin:0!important;
  }
  .tpc-client-area-link{align-self:center!important;margin:0!important;}
}
@media (max-width:700px){
  .tpc-client-area-link{display:none!important;}
  .tpc-mobile-panel > .tpc-mobile-client-area{
    display:flex!important;align-items:center!important;gap:9px!important;padding:11px 12px!important;border-radius:9px!important;
    color:#5d3a7d!important;text-decoration:none!important;font-size:15px!important;font-weight:700!important;
  }
  .tpc-mobile-panel > .tpc-mobile-client-area:hover{background:#f6eff8!important;}
  .tpc-mobile-client-area svg{width:18px!important;height:18px!important;flex:0 0 18px!important;fill:currentColor!important;}
}

/* =========================================================
   v14.0.3 — Desktop header vertical alignment only.
   Mobile remains exactly as approved in v14.0.2.
   ========================================================= */
@media (min-width:701px){
  .tpc-site-header > .elementor-container{
    display:flex!important;
    align-items:center!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column,
  .tpc-site-header > .elementor-container > .elementor-column > .elementor-element-populated{
    align-self:stretch!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column > .elementor-element-populated{
    display:flex!important;
    align-items:center!important;
  }
  .tpc-site-header .tpc-main-nav{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    line-height:1!important;
    margin:0!important;
  }
  .tpc-site-header .tpc-main-nav > a,
  .tpc-site-header .tpc-language-switcher,
  .tpc-site-header .tpc-language-switcher > a,
  .tpc-site-header .tpc-language-switcher > span{
    display:inline-flex!important;
    align-items:center!important;
    line-height:1!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child > .elementor-element-populated{
    min-height:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
  }
  .tpc-site-header .tpc-client-area-link,
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-widget-button,
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-button-wrapper,
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-button{
    align-self:center!important;
    vertical-align:middle!important;
  }
}

/* =========================================================
   v14.0.4 — Targeted fixes only
   1) Desktop header: keep navigation/language + client icon + booking CTA
      on one horizontal axis without wrapping.
   2) Mobile Client Area login: contain the complete card/form in viewport.
   Mobile header/menu and every other approved layout remain untouched.
   ========================================================= */
@media (min-width:701px){
  .tpc-site-header > .elementor-container{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(1){
    flex:0 1 31%!important;
    width:auto!important;
    min-width:240px!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(2){
    flex:1 1 auto!important;
    width:auto!important;
    min-width:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3),
  .tpc-site-header > .elementor-container > .elementor-column:last-child{
    flex:0 0 auto!important;
    width:auto!important;
    max-width:none!important;
    min-width:max-content!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child > .elementor-element-populated,
  .tpc-site-header > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap{
    width:auto!important;
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:12px!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .tpc-site-header .tpc-client-area-link{
    order:1!important;
    flex:0 0 40px!important;
    margin:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-widget-button{
    order:2!important;
    position:static!important;
    float:none!important;
    width:auto!important;
    max-width:none!important;
    flex:0 0 auto!important;
    margin:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-widget-button .elementor-widget-container,
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-button-wrapper{
    width:auto!important;
    margin:0!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-button{
    width:auto!important;
    white-space:nowrap!important;
    margin:0!important;
  }
}

@media (max-width:700px){
  .tpc-client-area,
  .tpc-client-shell,
  .tpc-client-login,
  .tpc-client-login form,
  .tpc-client-login input,
  .tpc-client-login button{
    box-sizing:border-box!important;
  }
  .tpc-client-area{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }
  .tpc-client-shell{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .tpc-client-login{
    width:100%!important;
    max-width:520px!important;
    min-width:0!important;
    margin:14px auto!important;
    padding:26px 20px!important;
  }
  .tpc-client-login form,
  .tpc-client-login input,
  .tpc-client-login form>button{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
}
@media (max-width:420px){
  .tpc-client-area{padding-left:12px!important;padding-right:12px!important;}
  .tpc-client-login{padding:22px 16px!important;border-radius:18px!important;}
}


/* =========================================================
   v14.0.5 — Definitive desktop header alignment.
   Client Area is part of the navigation row on desktop, while the
   booking CTA stays in its original Elementor column. Mobile untouched.
   ========================================================= */
@media (min-width:701px){
  .tpc-site-header > .elementor-container{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(1){
    flex:0 0 30%!important;width:30%!important;min-width:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(2){
    flex:0 0 50%!important;width:50%!important;min-width:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3),
  .tpc-site-header > .elementor-container > .elementor-column:last-child{
    flex:0 0 20%!important;width:20%!important;min-width:0!important;max-width:20%!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(2) > .elementor-element-populated,
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(2) > .elementor-widget-wrap{
    display:flex!important;align-items:center!important;justify-content:center!important;
  }
  .tpc-site-header .tpc-main-nav{
    width:100%!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;justify-content:center!important;gap:24px!important;white-space:nowrap!important;
  }
  .tpc-site-header .tpc-main-nav > a,
  .tpc-site-header .tpc-language-switcher,
  .tpc-site-header .tpc-client-area-link{
    flex:0 0 auto!important;align-self:center!important;margin:0!important;
  }
  .tpc-site-header .tpc-client-area-link{
    display:inline-flex!important;width:40px!important;height:40px!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child > .elementor-element-populated,
  .tpc-site-header > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    align-items:center!important;justify-content:flex-end!important;width:100%!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-widget-button{
    display:block!important;width:100%!important;max-width:none!important;margin:0!important;position:static!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-button-wrapper{
    display:flex!important;align-items:center!important;justify-content:flex-end!important;width:100%!important;margin:0!important;
  }
  .tpc-site-header > .elementor-container > .elementor-column:last-child .elementor-button{
    width:auto!important;margin:0!important;white-space:nowrap!important;
  }
}

/* v14.0.9 — Desktop header: lower the right-side controls a further 5px. */
@media (min-width:701px){
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(2),
  .tpc-site-header > .elementor-container > .elementor-column:nth-child(3),
  .tpc-site-header > .elementor-container > .elementor-column:last-child{
    transform:translateY(44px)!important;
  }
}

/* v16.3.0 — quantidades de extras; mantém a grelha e responsividade existentes. */
.tpc-extra-choice{display:flex;align-items:center;justify-content:flex-end;gap:10px}.tpc-extra-choice>input[type=checkbox]{width:20px;height:20px;margin:0}.tpc-extra-qty-wrap{display:inline-flex!important;align-items:center;gap:5px;color:var(--tpc-muted);font-weight:700;white-space:nowrap}.tpc-extra .tpc-extra-qty{width:58px!important;min-width:58px;height:38px;padding:6px 7px!important;border:1px solid #ddd6e3;border-radius:8px;background:#fff;text-align:center}.tpc-extra:not(:has([data-extra]:checked)) .tpc-extra-qty-wrap{opacity:.55}@media(max-width:640px){.tpc-extra-choice{grid-column:2!important;grid-row:2!important}.tpc-extra .tpc-extra-qty{grid-column:auto!important;grid-row:auto!important;justify-self:auto!important;width:54px!important;min-width:54px}}

/* v16.4.1 — deslocação */
.tpc-travel-choice{margin-top:22px;padding:18px;border:1px solid #e7e1ee;border-radius:14px;background:#faf8fc}.tpc-travel-choice h3{margin:0 0 12px}.tpc-travel-choice label{display:flex;gap:9px;align-items:flex-start;margin:10px 0;font-weight:600}.tpc-travel-info{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#fff;color:#5d5268;font-size:.93rem}

/* v17.2.7 — prazo do passo Confirmação como nota visual, não como continuação do título. */
.tpc-how-home .tpc-how-step-v52:last-child .elementor-icon-box-description,
.tpc-confirmation-note-v1727 .elementor-icon-box-description,
.tpc-confirmation-note-text-v1727 {
  margin-top: 7px;
  font-size: 0.82em;
  line-height: 1.35;
  font-style: italic;
  font-weight: 400;
  opacity: .78;
}


/* v17.2.8 — homepage: o CSS histórico ocultava todas as descrições do bloco Como funciona.
   Mostra apenas a nota do passo 6, mantendo os passos 1–5 sem descrição. */
.tpc-how-home .tpc-how-step-v52:last-child .elementor-icon-box-description,
.tpc-how-home .tpc-confirmation-note-v1727 .elementor-icon-box-description {
  display:block!important;
  margin:7px 0 0!important;
  font-size:.82em!important;
  line-height:1.35!important;
  font-style:italic!important;
  font-weight:400!important;
  opacity:.78!important;
}
