:root{
  --tcp-primary:#071B4A;
  --tcp-secondary:#A8D629;
  --tcp-accent:#ffffff;
  --tcp-light:#F5F7FA;
  --tcp-dark:#061536;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--tcp-font-body);font-size:var(--tcp-font-size-base);color:var(--tcp-text);background:var(--tcp-bg);line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.tcp-container{width:min(1180px,92%);margin:0 auto}
.tcp-header-wrap{position:relative;z-index:1000}
.tcp-topbar{background:var(--tcp-dark);color:white;font-size:14px;padding:8px 0}
.tcp-topbar .tcp-container{display:flex;gap:24px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.tcp-topbar a{color:inherit;text-decoration:none}
.tcp-topbar-private-link{display:inline-flex;align-items:center;gap:6px;font-weight:800;white-space:nowrap}
.tcp-topbar-private-link:hover{text-decoration:underline}
.tcp-topbar-lock{font-size:.92em;line-height:1}
.tcp-site-header{background:var(--tcp-primary);color:white;position:relative;z-index:1001;width:100%;transition:box-shadow .25s ease, background .25s ease, transform .25s ease}
.tcp-site-header.is-sticky.is-fixed{position:fixed;left:0;right:0;top:0}
body.admin-bar .tcp-site-header.is-sticky.is-fixed{top:32px}
.tcp-site-header.is-scrolled{box-shadow:0 14px 36px rgba(6,21,54,.18)}
.tcp-header-inner{display:flex;align-items:center;justify-content:space-between;min-height:88px;gap:24px;transition:min-height .25s ease,padding .25s ease}
.tcp-site-header.is-scrolled .tcp-header-inner{min-height:62px}
.tcp-brand{display:flex;align-items:center;gap:14px;color:white;min-width:max-content}
.tcp-brand-logo{width:var(--tcp-logo-width,82px);max-height:78px;object-fit:contain;display:block;transition:width .25s ease,max-height .25s ease}
.tcp-site-header.is-scrolled .tcp-brand-logo{width:var(--tcp-logo-width-scrolled,56px);max-height:50px}
.tcp-brand-logo-fallback{width:var(--tcp-logo-width,82px);height:58px;display:grid;place-items:center;border:2px solid var(--tcp-secondary);border-radius:14px;font-weight:900;color:var(--tcp-secondary);transition:width .25s ease,height .25s ease}
.tcp-site-header.is-scrolled .tcp-brand-logo-fallback{width:var(--tcp-logo-width-scrolled,56px);height:42px}
.tcp-brand-text{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;line-height:1.12;min-height:var(--tcp-logo-width-scrolled,56px)}
.tcp-brand-text strong{display:block;font-weight:900;font-size:22px;letter-spacing:.2px;transition:font-size .25s ease}
.tcp-brand-text small{display:block;font-size:13px;opacity:.86;transition:opacity .25s ease,font-size .25s ease;margin-top:3px}
.tcp-site-header.is-scrolled .tcp-brand-text strong{font-size:18px}
.tcp-site-header.is-scrolled .tcp-brand-text small{font-size:11px;opacity:.72}
.tcp-nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0}
.tcp-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--tcp-secondary);color:var(--tcp-primary);font-weight:800;padding:13px 22px;border-radius:999px}
.tcp-btn-small{padding:10px 16px;font-size:14px}
.tcp-btn-outline{background:transparent;color:white;border:2px solid white}
.tcp-hero{min-height:var(--tcp-hero-height,720px);background:linear-gradient(135deg,var(--tcp-primary),#102e70);background-size:cover;background-position:center;color:white;padding:140px 0;text-align:center;position:relative;overflow:hidden;display:flex;align-items:center}
.tcp-hero:after{content:"";position:absolute;inset:auto -10% -30% auto;width:480px;height:480px;border:60px solid rgba(168,214,41,.25);border-radius:50%}
.tcp-hero h1{font-family:var(--tcp-font-heading);font-size:clamp(44px,8vw,var(--tcp-font-size-h1));line-height:1;margin:0 0 16px;text-transform:uppercase;letter-spacing:-2px}
.tcp-hero p{font-size:22px;margin:0 0 30px}
.tcp-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.tcp-section{padding:86px 0}
.tcp-light{background:var(--tcp-light)}
.tcp-primary{background:var(--tcp-primary);color:white}
.tcp-section h2{font-family:var(--tcp-font-heading);font-size:clamp(30px,4vw,var(--tcp-font-size-h2));margin:0 0 34px;color:var(--tcp-primary)}
.tcp-primary h2{color:white}
.tcp-grid{display:grid;gap:26px}
.tcp-grid-3{grid-template-columns:repeat(3,1fr)}
.tcp-grid-4{grid-template-columns:repeat(4,1fr)}
.tcp-card{background:white;border-radius:24px;padding:26px;box-shadow:0 14px 40px rgba(7,27,74,.08);transition:.2s ease}
.tcp-card:hover{transform:translateY(-4px)}
.tcp-card-img{border-radius:18px;margin-bottom:16px}
.tcp-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--tcp-secondary);font-size:28px;margin-bottom:16px}
.tcp-read-more{font-weight:800;color:var(--tcp-primary)}
.tcp-split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.tcp-image-placeholder{min-height:340px;border-radius:28px;background:linear-gradient(135deg,var(--tcp-secondary),#dff49a);display:grid;place-items:center;font-size:32px;font-weight:900;color:var(--tcp-primary)}
.tcp-content{max-width:860px}
.tcp-meta-box{background:var(--tcp-light);padding:24px;border-radius:18px;margin:24px 0}
.tcp-footer{background:var(--tcp-dark);color:white;padding:60px 0 0}
.tcp-footer-grid{display:grid;grid-template-columns:2fr 1fr 1.5fr 1fr;gap:34px}
.tcp-footer-bottom{text-align:center;padding:22px;margin-top:40px;background:rgba(255,255,255,.06)}
.tcp-social{display:inline-block;margin-right:10px}
.tcp-admin .regular-text{max-width:520px;width:100%}

.tcp-brand-logo_only .tcp-brand-text{display:none}
.tcp-brand-logo_name_slogan .tcp-brand-text{justify-content:center}
.tcp-site-header.is-scrolled .tcp-brand.hide-name-scroll .tcp-brand-text strong{display:none}
.tcp-site-header.is-scrolled .tcp-brand.hide-slogan-scroll .tcp-brand-text small{display:none}
.tcp-site-header.is-scrolled .tcp-brand.hide-name-scroll.hide-slogan-scroll .tcp-brand-text{display:none}

.tcp-nav{display:flex;align-items:center}
.tcp-nav .tcp-menu,
.tcp-nav ul{display:flex;align-items:center;gap:24px;list-style:none;margin:0;padding:0}
.tcp-nav a{color:#fff;font-family:var(--tcp-font-menu);font-weight:700;font-size:var(--tcp-font-size-menu);line-height:1;text-decoration:none;display:inline-flex;padding:10px 0;opacity:.95}
.tcp-nav a:hover{color:var(--tcp-secondary);opacity:1}
.tcp-menu-fallback a{color:#fff}


/* TCP 6.0.4 - Desktop menu visibility fix */
.tcp-menu-toggle{
  display:none !important;
}
.tcp-nav{
  display:flex;
}


/* TCP 6.0.5 - Premium hamburger */
.tcp-menu-toggle{
  width:48px;
  height:48px;
  border:1.5px solid rgba(255,255,255,.75);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  padding:0;
  transition:background .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.tcp-menu-toggle:hover{
  background:rgba(255,255,255,.16);
  border-color:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
}
.tcp-menu-toggle span{
  width:22px;
  height:2px;
  display:block;
  background:#fff;
  border-radius:999px;
  transition:transform .25s ease,opacity .2s ease,width .25s ease;
}
.tcp-menu-toggle span:nth-child(2){
  width:18px;
}
.tcp-menu-toggle.is-active span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
.tcp-menu-toggle.is-active span:nth-child(2){
  opacity:0;
  transform:scaleX(0);
}
.tcp-menu-toggle.is-active span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}


/* TCP 6.0.6 - Graphic header style inspired by premium tennis mockup */
.tcp-site-header{
  background:
    radial-gradient(circle at 0% 0%, rgba(22,91,174,.35), transparent 36%),
    linear-gradient(135deg,var(--tcp-header-start) 0%, #05275e 45%, var(--tcp-header-end) 100%);
}
.tcp-site-header.is-scrolled{
  background:linear-gradient(135deg,var(--tcp-header-start) 0%, var(--tcp-header-end) 100%);
  box-shadow:0 16px 42px rgba(3,27,66,.26);
}
.tcp-header-inner{
  min-height:92px;
}
.tcp-site-header.is-scrolled .tcp-header-inner{
  min-height:66px;
}
.tcp-brand{
  gap:18px;
}
.tcp-brand-logo,
.tcp-brand-logo-fallback{
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.18));
}
.tcp-brand-text{
  position:relative;
  padding-left:18px;
}
.tcp-brand-text:before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:1px;
  height:48px;
  background:rgba(168,214,41,.85);
}
.tcp-site-header.is-scrolled .tcp-brand-text:before{
  height:36px;
}
.tcp-brand-text strong{
  color:#fff;
  text-shadow:0 2px 14px rgba(0,0,0,.16);
}
.tcp-brand-text small{
  color:var(--tcp-secondary);
  font-style:italic;
  letter-spacing:.2px;
}
.tcp-nav a{
  text-transform:none;
  letter-spacing:.01em;
  font-weight:800;
  text-shadow:0 1px 10px rgba(0,0,0,.12);
}
.tcp-btn-small{
  min-height:48px;
  padding:12px 24px;
  box-shadow:0 10px 24px rgba(168,214,41,.22);
}
.tcp-menu-toggle{
  width:54px;
  height:54px;
  border:2px solid rgba(255,255,255,.92);
  background:rgba(1,33,82,.35);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06), 0 10px 24px rgba(0,0,0,.16);
}
.tcp-menu-toggle:hover,
.tcp-menu-toggle.is-active{
  border-color:var(--tcp-secondary);
  background:rgba(168,214,41,.10);
}
.tcp-menu-toggle span{
  width:24px;
  height:2.5px;
}
.tcp-menu-toggle span:nth-child(2){
  width:20px;
}
.tcp-site-header.show-hamburger-desktop .tcp-menu-toggle{
  display:flex !important;
}
.tcp-site-header:not(.show-hamburger-desktop) .tcp-menu-toggle{
  display:none !important;
}

.tcp-hero-overlay{
  position:absolute;
  inset:0;
  background:var(--tcp-hero-overlay-color,var(--tcp-primary));
  opacity:var(--tcp-hero-overlay-opacity,.68);
  z-index:1;
}
.tcp-hero-content{
  position:relative;
  z-index:2;
}
.tcp-hero > .tcp-hero-slider{
  position:absolute;
  inset:0;
  z-index:0;
}
.tcp-hero-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:var(--tcp-hero-bg-position,center center);
  opacity:0;
  transform:scale(1.04);
  transition:opacity .8s ease,transform 5s ease;
}
.tcp-hero-slide.is-active{
  opacity:1;
  transform:scale(1);
}
.tcp-hero .tcp-actions{
  position:relative;
  z-index:3;
}

/* TCP 6.2 - Hero Premium */
.tcp-hero{min-height:var(--tcp-hero-height,520px)}
.tcp-hero-content{display:flex}
.tcp-hero-content-center .tcp-hero-content{justify-content:center;text-align:center}
.tcp-hero-content-left .tcp-hero-content{justify-content:flex-start;text-align:left}
.tcp-hero-content-right .tcp-hero-content{justify-content:flex-end;text-align:right}
.tcp-hero-box{max-width:820px}
.tcp-hero-content-left .tcp-actions{justify-content:flex-start}
.tcp-hero-content-right .tcp-actions{justify-content:flex-end}
.tcp-hero-ken-burns.tcp-hero-image{animation:tcpHeroBgZoom 14s ease-in-out infinite alternate}
@keyframes tcpHeroBgZoom{from{background-size:100% auto}to{background-size:108% auto}}
.tcp-hero-ken-burns .tcp-hero-slide.is-active{animation:tcpHeroSlideZoom 5s linear forwards}
@keyframes tcpHeroSlideZoom{from{transform:scale(1.02)}to{transform:scale(1.09)}}
.tcp-hero-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(7,27,74,.38);color:#fff;font-size:40px;line-height:1;display:grid;place-items:center;cursor:pointer;transition:.2s ease}
.tcp-hero-arrow:hover{background:var(--tcp-secondary);color:var(--tcp-primary);border-color:var(--tcp-secondary)}
.tcp-hero-prev{left:28px}.tcp-hero-next{right:28px}
.tcp-hero-dots{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;gap:10px;z-index:4}
.tcp-hero-dots button{width:11px;height:11px;border-radius:999px;border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.25);padding:0;cursor:pointer;transition:.2s ease}
.tcp-hero-dots button.is-active{width:32px;background:var(--tcp-secondary);border-color:var(--tcp-secondary)}
@media(max-width:900px){.tcp-hero{min-height:var(--tcp-hero-height-tablet,420px)}.tcp-hero-arrow{width:44px;height:44px;font-size:34px}.tcp-hero-prev{left:14px}.tcp-hero-next{right:14px}}
@media(max-width:600px){.tcp-hero{min-height:var(--tcp-hero-height-mobile,320px);padding:80px 0}.tcp-hero h1{font-size:38px}.tcp-hero p{font-size:17px}.tcp-hero-arrow{display:none}}

/* V7.3.8 Header Mobile Fix */
:root{
  --tcp-current-header-height:0px;
}

.tcp-header-wrap{
  padding-bottom:0;
}

@media (max-width: 900px){
  .tcp-topbar{
    display:none!important;
    height:0!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    overflow:hidden!important;
  }

  .tcp-header-wrap{
    padding-top:0!important;
    margin-top:0!important;
  }

  .tcp-site-header{
    top:0!important;
  }

  body.admin-bar .tcp-site-header.is-sticky.is-fixed{
    top:46px!important;
  }

  .tcp-site-header.is-sticky.is-fixed{
    top:0!important;
  }

  .tcp-header-inner{
    min-height:70px!important;
  }

  .tcp-site-header.is-scrolled .tcp-header-inner{
    min-height:62px!important;
  }

  .tcp-main,
  main.tcp-main{
    margin-top:0!important;
  }
}

@supports (padding-top: env(safe-area-inset-top)){
  @media (max-width: 900px){
    .tcp-site-header.is-sticky.is-fixed{
      padding-top:env(safe-area-inset-top);
    }
  }
}

/* V7.3.9 Mobile Header Fix - keep topbar visible and prevent hero/content offset bugs */
@media (max-width: 900px){
  .tcp-topbar{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    padding:5px 0!important;
    margin:0!important;
    overflow:visible!important;
    font-size:12px!important;
    line-height:1.25!important;
  }

  .tcp-topbar .tcp-container{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:6px 14px!important;
    justify-content:center!important;
    text-align:center!important;
  }

  .tcp-header-wrap{
    padding-top:0!important;
    margin-top:0!important;
  }

  .tcp-site-header{
    top:0!important;
  }

  .tcp-site-header.is-sticky.is-fixed{
    top:0!important;
  }

  body.admin-bar .tcp-site-header.is-sticky.is-fixed{
    top:46px!important;
  }

  .tcp-header-inner{
    min-height:68px!important;
  }

  .tcp-site-header.is-scrolled .tcp-header-inner{
    min-height:60px!important;
  }

  .tcp-header-wrap + .tcp-main,
  .tcp-header-wrap + main,
  main.tcp-main{
    margin-top:0!important;
    padding-top:0!important;
  }

  .tcp-hero{
    margin-top:0!important;
  }
}

/* Avoid accidental oversized placeholder after sticky header */
.tcp-header-wrap[style*="padding-bottom"]{
  transition:padding-bottom .15s ease;
}

/* V7.4 Maestri Pro */
.tcp-archive-header,
.tcp-section-heading{
  text-align:center;
  margin-bottom:34px;
}
.tcp-archive-header span,
.tcp-section-heading span{
  display:inline-block;
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:8px;
}
.tcp-coaches-grid{
  align-items:stretch;
}
.tcp-coach-card{
  background:#fff;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 14px 40px rgba(7,27,74,.10);
  transition:.2s ease;
  height:100%;
}
.tcp-coach-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 52px rgba(7,27,74,.16);
}
.tcp-coach-photo{
  display:block;
  aspect-ratio:4/3;
  background:linear-gradient(135deg,var(--tcp-primary),#123b82);
  overflow:hidden;
}
.tcp-coach-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}
.tcp-coach-card:hover .tcp-coach-photo img{
  transform:scale(1.05);
}
.tcp-coach-photo span{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:64px;
  font-weight:900;
}
.tcp-coach-body{
  padding:22px;
}
.tcp-coach-role{
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.06em;
  margin:0 0 6px;
}
.tcp-coach-body h3{
  margin:0 0 10px;
  color:var(--tcp-primary);
}
.tcp-coach-specialty,
.tcp-coach-cert{
  margin:6px 0;
  color:#42526b;
}
.tcp-coach-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.tcp-coach-whatsapp{
  background:#e9fff1;
  color:#128c4a;
  font-weight:900;
  border-radius:999px;
  padding:7px 12px;
  font-size:13px;
}
.tcp-single-coach-hero{
  display:grid;
  grid-template-columns:380px 1fr;
  gap:48px;
  align-items:center;
  background:linear-gradient(135deg,#f5f7fa,#fff);
  border-radius:28px;
  padding:34px;
  margin-bottom:40px;
}
.tcp-single-coach-photo img{
  width:100%;
  border-radius:24px;
  box-shadow:0 18px 52px rgba(7,27,74,.16);
}
.tcp-single-coach-info span{
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
}
.tcp-single-coach-info h1{
  color:var(--tcp-primary);
  margin:8px 0 14px;
}
.tcp-single-coach-contacts{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}
.tcp-single-coach-contacts a{
  background:var(--tcp-primary);
  color:#fff;
  border-radius:999px;
  padding:10px 16px;
  font-weight:800;
}
@media(max-width:900px){
  .tcp-single-coach-hero{
    grid-template-columns:1fr;
    padding:22px;
  }
}

/* V7.5 Campi Pro */
.tcp-courts-grid{align-items:stretch}
.tcp-court-card{
  background:#fff;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 14px 40px rgba(7,27,74,.10);
  transition:.2s ease;
  height:100%;
}
.tcp-court-card:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 52px rgba(7,27,74,.16);
}
.tcp-court-photo{
  position:relative;
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  background:linear-gradient(135deg,var(--tcp-primary),#123b82);
}
.tcp-court-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}
.tcp-court-card:hover .tcp-court-photo img{transform:scale(1.05)}
.tcp-court-photo span{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:60px;
}
.tcp-court-photo em{
  position:absolute;
  left:16px;
  bottom:16px;
  background:var(--tcp-secondary);
  color:var(--tcp-primary);
  font-style:normal;
  font-weight:900;
  border-radius:999px;
  padding:7px 12px;
  font-size:12px;
}
.tcp-court-body{padding:22px}
.tcp-court-type{
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.06em;
  margin:0 0 6px;
}
.tcp-court-body h3{margin:0 0 10px;color:var(--tcp-primary)}
.tcp-court-badges{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:12px 0;
}
.tcp-court-badges span{
  background:#f1f5f9;
  color:#071B4A;
  border-radius:999px;
  padding:6px 10px;
  font-weight:800;
  font-size:12px;
}
.tcp-court-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-top:16px;
}
.tcp-court-book{
  background:var(--tcp-secondary);
  color:var(--tcp-primary);
  border-radius:999px;
  padding:8px 13px;
  font-weight:900;
}
.tcp-single-court-hero{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:42px;
  align-items:center;
  background:linear-gradient(135deg,#f5f7fa,#fff);
  border-radius:28px;
  padding:34px;
  margin-bottom:38px;
}
.tcp-single-court-photo img{
  width:100%;
  border-radius:24px;
  box-shadow:0 18px 52px rgba(7,27,74,.16);
}
.tcp-single-court-info span{
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
}
.tcp-single-court-info h1{
  color:var(--tcp-primary);
  margin:8px 0 18px;
}
.tcp-court-facts{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin:22px 0;
}
.tcp-court-facts div{
  background:#fff;
  border:1px solid #e8edf5;
  border-radius:14px;
  padding:13px;
}
.tcp-court-gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-bottom:34px;
}
.tcp-court-gallery img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:16px;
}
@media(max-width:900px){
  .tcp-single-court-hero{grid-template-columns:1fr;padding:22px}
  .tcp-court-gallery{grid-template-columns:repeat(2,1fr)}
}

/* V7.5.1 Global Button Colors */
.tcp-btn,
.tcp-court-book,
.tcp-coach-whatsapp{
  background:var(--tcp-btn-bg)!important;
  color:var(--tcp-btn-text)!important;
  border:2px solid var(--tcp-btn-border)!important;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.tcp-btn:hover,
.tcp-court-book:hover,
.tcp-coach-whatsapp:hover{
  background:var(--tcp-btn-bg-hover)!important;
  color:var(--tcp-btn-text-hover)!important;
  border-color:var(--tcp-btn-bg-hover)!important;
  transform:translateY(-1px);
}
.tcp-btn-outline{
  background:transparent!important;
  color:var(--tcp-btn-outline-text)!important;
  border-color:var(--tcp-btn-outline-border)!important;
}
.tcp-btn-outline:hover{
  background:var(--tcp-btn-outline-hover-bg)!important;
  color:var(--tcp-btn-outline-hover-text)!important;
  border-color:var(--tcp-btn-outline-hover-bg)!important;
}

/* V7.6 Footer Builder Pro */
.tcp-footer-pro{
  background:var(--tcp-footer-bg);
  color:var(--tcp-footer-text);
  padding:58px 0 0;
}
.tcp-footer-brand{
  display:flex;
  align-items:center;
  gap:18px;
  padding-bottom:32px;
  margin-bottom:32px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.tcp-footer-brand img{
  max-width:120px;
  max-height:80px;
  object-fit:contain;
}
.tcp-footer-brand h3{
  margin:0;
  color:var(--tcp-footer-title);
  font-size:28px;
}
.tcp-footer-brand p{
  margin:4px 0 0;
}
.tcp-footer-pro .tcp-footer-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px;
}
.tcp-footer-pro.tcp-footer-cols-3 .tcp-footer-grid{
  grid-template-columns:repeat(3,1fr);
}
.tcp-footer-pro.tcp-footer-cols-2 .tcp-footer-grid{
  grid-template-columns:repeat(2,1fr);
}
.tcp-footer-col h4{
  color:var(--tcp-footer-title);
  margin:0 0 14px;
}
.tcp-footer-col p{
  color:var(--tcp-footer-text);
  opacity:.9;
}
.tcp-footer-col ul{
  list-style:none;
  margin:0;
  padding:0;
}
.tcp-footer-col li{
  margin-bottom:8px;
}
.tcp-footer-pro a{
  color:var(--tcp-footer-link);
}
.tcp-footer-pro a:hover{
  color:var(--tcp-footer-link-hover);
}
.tcp-footer-social{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.tcp-footer-social a{
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  padding:7px 12px;
  font-weight:800;
  font-size:13px;
}
.tcp-footer-pro .tcp-footer-bottom{
  background:var(--tcp-footer-bottom-bg);
  margin-top:44px;
  padding:18px 0;
}
.tcp-footer-bottom .tcp-container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.tcp-footer-legal{
  display:flex;
  gap:14px;
}
@media(max-width:900px){
  .tcp-footer-pro .tcp-footer-grid,
  .tcp-footer-pro.tcp-footer-cols-3 .tcp-footer-grid,
  .tcp-footer-pro.tcp-footer-cols-2 .tcp-footer-grid{
    grid-template-columns:1fr;
  }
  .tcp-footer-brand,
  .tcp-footer-bottom .tcp-container{
    flex-direction:column;
    align-items:flex-start;
  }
}

/* V8.0 All Modules */
.tcp-tournament-card,
.tcp-gallery-card,
.tcp-sponsor-card{
  background:#fff;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 14px 40px rgba(7,27,74,.10);
}
.tcp-tournament-photo,
.tcp-gallery-card a{
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  position:relative;
  background:linear-gradient(135deg,var(--tcp-primary),#123b82);
}
.tcp-tournament-photo img,
.tcp-gallery-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}
.tcp-tournament-card:hover img,
.tcp-gallery-card:hover img{
  transform:scale(1.05);
}
.tcp-tournament-photo span,
.tcp-gallery-card span{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:54px;
}
.tcp-tournament-body{
  padding:22px;
}
.tcp-card-kicker{
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.06em;
  margin:0 0 6px;
}
.tcp-tournament-body h3{margin:0 0 10px;color:var(--tcp-primary)}
.tcp-card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-top:16px;
}
.tcp-event-hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:42px;
  align-items:center;
  background:linear-gradient(135deg,#f5f7fa,#fff);
  border-radius:28px;
  padding:34px;
  margin-bottom:38px;
}
.tcp-event-hero img{
  width:100%;
  border-radius:22px;
}
.tcp-event-hero span{
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
}
.tcp-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.tcp-gallery-card strong{
  position:absolute;
  left:16px;
  right:16px;
  bottom:16px;
  color:#fff;
  font-size:20px;
  text-shadow:0 3px 18px rgba(0,0,0,.4);
}
.tcp-sponsor-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  align-items:center;
}
.tcp-sponsor-card{
  padding:26px;
  display:grid;
  place-items:center;
  min-height:130px;
}
.tcp-sponsor-card img{
  max-width:180px;
  max-height:90px;
  object-fit:contain;
  filter:grayscale(100%);
  opacity:.82;
  transition:.2s ease;
}
.tcp-sponsor-card:hover img{
  filter:none;
  opacity:1;
}
@media(max-width:900px){
  .tcp-event-hero{grid-template-columns:1fr;padding:22px}
  .tcp-gallery-grid{grid-template-columns:1fr}
  .tcp-sponsor-grid{grid-template-columns:repeat(2,1fr)}
}

/* V8.1 Production Ready */
.tcp-container{
  max-width:var(--tcp-container-width,1180px);
}
.tcp-coach-card,
.tcp-court-card,
.tcp-tournament-card,
.tcp-gallery-card,
.tcp-sponsor-card,
.tcp-single-coach-hero,
.tcp-single-court-hero,
.tcp-event-hero{
  border-radius:var(--tcp-radius,24px);
  box-shadow:0 14px 40px rgba(7,27,74,var(--tcp-shadow-alpha,.14));
}
.tcp-court-number,
.tcp-tournament-status,
.tcp-sponsor-level,
.tcp-gallery-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  border-radius:999px;
  padding:5px 9px;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.tcp-court-number{
  background:#e9fff1;
  color:#128c4a;
  margin:0 0 6px;
}
.tcp-tournament-status{
  background:var(--tcp-secondary);
  color:var(--tcp-primary);
  margin-bottom:8px;
}
.tcp-sponsor-level{
  margin-top:12px;
  background:#f1f5f9;
  color:var(--tcp-primary);
}
.tcp-gallery-badge{
  position:absolute;
  top:14px;
  right:14px;
  background:var(--tcp-secondary);
  color:var(--tcp-primary);
  z-index:2;
}
.tcp-gallery-single-media{
  max-width:900px;
  margin:0 auto 34px;
  text-align:center;
}
.tcp-gallery-single-media img{
  width:100%;
  border-radius:var(--tcp-radius,24px);
}
.tcp-video-embed{
  background:#f5f7fa;
  border-radius:var(--tcp-radius,24px);
  padding:80px 20px;
}
.tcp-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(120px,1fr));
  gap:14px;
  margin:20px 0;
}
.tcp-dashboard-card{
  background:#fff;
  border:1px solid #dcdcde;
  border-radius:14px;
  padding:18px;
  box-shadow:0 6px 18px rgba(7,27,74,.06);
}
.tcp-dashboard-card strong{
  display:block;
  font-size:30px;
  color:#071B4A;
}
.tcp-dashboard-card span{
  text-transform:uppercase;
  font-weight:800;
  color:#687280;
}
.tcp-dashboard-actions{
  display:flex;
  gap:10px;
  margin-top:18px;
}
@media(max-width:900px){
  .tcp-dashboard-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

/* V8.3 News + Contatti Pro */
.tcp-news-card{
  background:#fff;
  border-radius:var(--tcp-radius,24px);
  overflow:hidden;
  box-shadow:0 14px 40px rgba(7,27,74,var(--tcp-shadow-alpha,.14));
  height:100%;
}
.tcp-news-photo{
  display:block;
  aspect-ratio:16/10;
  overflow:hidden;
  background:linear-gradient(135deg,var(--tcp-primary),#123b82);
}
.tcp-news-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}
.tcp-news-card:hover .tcp-news-photo img{transform:scale(1.05)}
.tcp-news-photo span{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:50px;
}
.tcp-news-body{padding:22px}
.tcp-news-date{
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.06em;
  margin:0 0 8px;
}
.tcp-news-body h3{margin:0 0 10px;color:var(--tcp-primary)}
.tcp-narrow{max-width:900px}
.tcp-single-article h1{color:var(--tcp-primary)}
.tcp-single-featured img{
  width:100%;
  border-radius:var(--tcp-radius,24px);
  margin:24px 0;
}
.tcp-contact-layout{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:38px;
  align-items:stretch;
}
.tcp-contact-info,
.tcp-contact-side{
  background:#fff;
  border-radius:var(--tcp-radius,24px);
  box-shadow:0 14px 40px rgba(7,27,74,var(--tcp-shadow-alpha,.14));
  padding:34px;
}
.tcp-contact-info span{
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.tcp-contact-info h2{
  color:var(--tcp-primary);
  margin:8px 0 12px;
}
.tcp-contact-cards{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin-top:24px;
}
.tcp-contact-cards a,
.tcp-contact-cards div{
  background:#f5f7fa;
  border-radius:16px;
  padding:14px;
  color:#071B4A;
}
.tcp-contact-map iframe{
  width:100%;
  min-height:360px;
  border:0;
  border-radius:18px;
}
.tcp-contact-placeholder{
  min-height:320px;
  display:grid;
  place-items:center;
  background:#f5f7fa;
  border-radius:18px;
  color:#687280;
  font-weight:800;
}
@media(max-width:900px){
  .tcp-contact-layout{grid-template-columns:1fr}
}

/* V8.4 Modern Frontend UI */
:root{
  --tcp-modern-radius:14px;
  --tcp-modern-radius-sm:10px;
  --tcp-modern-shadow:0 10px 28px rgba(7,27,74,.08);
  --tcp-modern-border:1px solid rgba(7,27,74,.08);
}

/* Less rounded, cleaner cards */
.tcp-coach-card,
.tcp-court-card,
.tcp-tournament-card,
.tcp-news-card,
.tcp-gallery-card,
.tcp-sponsor-card,
.tcp-contact-info,
.tcp-contact-side,
.tcp-single-coach-hero,
.tcp-single-court-hero,
.tcp-event-hero,
.tcp-footer-pro,
.tcp-single-featured img,
.tcp-gallery-single-media img{
  border-radius:var(--tcp-modern-radius)!important;
  box-shadow:var(--tcp-modern-shadow)!important;
  border:var(--tcp-modern-border);
}

/* Cleaner image blocks */
.tcp-coach-photo,
.tcp-court-photo,
.tcp-tournament-photo,
.tcp-news-photo,
.tcp-gallery-card a,
.tcp-court-gallery img,
.tcp-single-coach-photo img,
.tcp-single-court-photo img,
.tcp-event-hero img{
  border-radius:var(--tcp-modern-radius-sm)!important;
}

/* Reduce heavy section feel */
.tcp-section{
  padding-top:78px;
  padding-bottom:78px;
}
.tcp-light{
  background:#f7f9fc;
}

/* Modern card spacing */
.tcp-coach-body,
.tcp-court-body,
.tcp-tournament-body,
.tcp-news-body{
  padding:20px!important;
}

/* More editorial headings */
.tcp-section-heading,
.tcp-archive-header{
  margin-bottom:28px!important;
}
.tcp-section-heading h2,
.tcp-archive-header h1{
  letter-spacing:-.035em;
}

/* Buttons cleaner */
.tcp-btn,
.tcp-court-book,
.tcp-coach-whatsapp,
.tcp-read-more{
  border-radius:10px!important;
  box-shadow:none!important;
}
.tcp-btn:hover,
.tcp-court-book:hover,
.tcp-coach-whatsapp:hover{
  transform:translateY(-1px)!important;
}

/* Badges less pill-like */
.tcp-court-badges span,
.tcp-court-photo em,
.tcp-court-number,
.tcp-tournament-status,
.tcp-sponsor-level,
.tcp-gallery-badge{
  border-radius:8px!important;
}

/* Footer more premium/flat */
.tcp-footer-pro{
  border-radius:0!important;
  box-shadow:none!important;
  border:0!important;
}

/* Contact cards less boxed */
.tcp-contact-cards a,
.tcp-contact-cards div,
.tcp-court-facts div{
  border-radius:10px!important;
  border:1px solid rgba(7,27,74,.08);
}

/* Hover softer */
.tcp-coach-card:hover,
.tcp-court-card:hover,
.tcp-tournament-card:hover,
.tcp-news-card:hover,
.tcp-gallery-card:hover{
  transform:translateY(-3px)!important;
  box-shadow:0 14px 34px rgba(7,27,74,.12)!important;
}

/* Mobile tighter */
@media(max-width:900px){
  .tcp-section{
    padding-top:54px;
    padding-bottom:54px;
  }
  .tcp-coach-body,
  .tcp-court-body,
  .tcp-tournament-body,
  .tcp-news-body{
    padding:18px!important;
  }
}

/* V8.4.3 Fotogallery Pro */
.tcp-photo-gallery-section .tcp-section-heading p{
  max-width:680px;
  margin:10px auto 0;
  color:#5f6b7a;
}
.tcp-photo-gallery{
  display:grid;
  gap:14px;
}
.tcp-photo-gallery-cols-2{grid-template-columns:repeat(2,1fr)}
.tcp-photo-gallery-cols-3{grid-template-columns:repeat(3,1fr)}
.tcp-photo-gallery-cols-4{grid-template-columns:repeat(4,1fr)}
.tcp-photo-gallery-cols-5{grid-template-columns:repeat(5,1fr)}
.tcp-photo-gallery-cols-6{grid-template-columns:repeat(6,1fr)}
.tcp-photo-gallery-item{
  display:block;
  overflow:hidden;
  background:#f5f7fa;
  border-radius:var(--tcp-modern-radius-sm,10px);
  aspect-ratio:4/3;
  border:1px solid rgba(7,27,74,.08);
}
.tcp-photo-gallery-item:nth-child(5n+1){
  aspect-ratio:3/4;
}
.tcp-photo-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease,filter .25s ease;
}
.tcp-photo-gallery-item:hover img{
  transform:scale(1.05);
  filter:saturate(1.08);
}
.tcp-photo-gallery-empty{
  background:#f5f7fa;
  border:1px dashed rgba(7,27,74,.25);
  border-radius:14px;
  padding:34px;
  text-align:center;
  color:#687280;
  font-weight:800;
}
.tcp-lightbox-overlay{
  position:fixed;
  inset:0;
  z-index:999999;
  background:rgba(0,0,0,.88);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.tcp-lightbox-overlay img{
  max-width:min(1100px,94vw);
  max-height:90vh;
  object-fit:contain;
  border-radius:10px;
}
.tcp-lightbox-close{
  position:absolute;
  top:18px;
  right:18px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#fff;
  color:#071B4A;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
@media(max-width:900px){
  .tcp-photo-gallery,
  .tcp-photo-gallery-cols-2,
  .tcp-photo-gallery-cols-3,
  .tcp-photo-gallery-cols-4,
  .tcp-photo-gallery-cols-5,
  .tcp-photo-gallery-cols-6{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:560px){
  .tcp-photo-gallery,
  .tcp-photo-gallery-cols-2,
  .tcp-photo-gallery-cols-3,
  .tcp-photo-gallery-cols-4,
  .tcp-photo-gallery-cols-5,
  .tcp-photo-gallery-cols-6{
    grid-template-columns:1fr;
  }
}

/* V8.5 WPBakery Sections Builder */
.tcp-vc-hero{position:relative;display:flex;align-items:center;background-size:cover;background-position:center;color:#fff;overflow:hidden}
.tcp-vc-hero-overlay{position:absolute;inset:0;background:#071B4A;z-index:1}
.tcp-vc-hero-content{position:relative;z-index:2;display:flex}
.tcp-vc-hero h1{font-size:var(--tcp-font-size-h1,64px);margin:0 0 14px;color:#fff}
.tcp-vc-hero p{font-size:20px;max-width:760px}
.tcp-hero-content-center .tcp-vc-hero-content{justify-content:center;text-align:center}
.tcp-hero-content-left .tcp-vc-hero-content{justify-content:flex-start;text-align:left}
.tcp-hero-content-right .tcp-vc-hero-content{justify-content:flex-end;text-align:right}
.tcp-vc-cta{padding:70px 0;background:var(--tcp-primary);color:#fff;text-align:center}
.tcp-vc-cta h2{color:#fff;margin:0 0 12px}
.tcp-vc-cta p{max-width:720px;margin:0 auto 24px;opacity:.9}
.tcp-center{justify-content:center}
.tcp-vc-section .tcp-section-heading p{max-width:720px;margin:10px auto 0;color:#5f6b7a}
@media(max-width:900px){.tcp-vc-hero h1{font-size:40px}.tcp-vc-hero p{font-size:17px}}

/* V8.5.1 WPBakery Advanced Controls */
.tcp-text-left,.tcp-text-left .tcp-section-heading{text-align:left!important}
.tcp-text-center,.tcp-text-center .tcp-section-heading{text-align:center!important}
.tcp-text-right,.tcp-text-right .tcp-section-heading{text-align:right!important}
.tcp-vc-custom{background-size:cover;background-position:center}

/* V8.5.2 Static Front Page + WPBakery Fix */
.tcp-wpbakery-page{
  width:100%;
  overflow:hidden;
}
.tcp-wpbakery-page .vc_row{
  margin-left:0;
  margin-right:0;
}
.tcp-wpbakery-page .vc_row[data-vc-full-width="true"]{
  overflow:visible;
}
.tcp-wpbakery-page .vc_section{
  margin-left:0;
  margin-right:0;
}
.tcp-wpbakery-full-width .entry-content,
.tcp-static-front-page .entry-content{
  max-width:none;
  width:100%;
}
.tcp-static-front-page > .vc_row:first-child,
.tcp-static-front-page > .wpb-content-wrapper > .vc_row:first-child{
  margin-top:0;
}
.tcp-wpbakery-page .tcp-section:first-child,
.tcp-wpbakery-page .tcp-vc-hero:first-child{
  margin-top:0;
}

/* V8.6 Hero Slider Pro */
.tcp-hero-slider-pro{
  min-height:var(--tcp-hero-height,620px);
}
.tcp-hero-slider-pro .tcp-hero-slides,
.tcp-hero-slider-pro .tcp-hero-slide{
  position:absolute;
  inset:0;
}
.tcp-hero-slider-pro .tcp-hero-slide{
  background-size:cover;
  background-position:center;
  opacity:0;
  transform:scale(1);
  transition:opacity .8s ease, transform 6s ease;
}
.tcp-hero-slider-pro .tcp-hero-slide.is-active{
  opacity:1;
  z-index:1;
}
.tcp-hero-slider-pro.tcp-hero-kenburns .tcp-hero-slide.is-active{
  transform:scale(1.06);
}
.tcp-hero-slider-pro.tcp-hero-effect-slide .tcp-hero-slide{
  opacity:1;
  transform:translateX(100%);
  transition:transform .65s ease;
}
.tcp-hero-slider-pro.tcp-hero-effect-slide .tcp-hero-slide.is-active{
  transform:translateX(0);
}
.tcp-hero-slider-pro .tcp-vc-hero-overlay,
.tcp-hero-slider-pro .tcp-vc-hero-content,
.tcp-hero-slider-pro .tcp-hero-arrow,
.tcp-hero-slider-pro .tcp-hero-dots{
  z-index:3;
}
.tcp-hero-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border:0;
  border-radius:10px;
  background:rgba(255,255,255,.88);
  color:#071B4A;
  font-size:34px;
  line-height:1;
  cursor:pointer;
  transition:.2s ease;
}
.tcp-hero-arrow:hover{
  background:var(--tcp-secondary);
}
.tcp-hero-prev{left:26px}
.tcp-hero-next{right:26px}
.tcp-hero-dots{
  position:absolute;
  left:50%;
  bottom:26px;
  transform:translateX(-50%);
  display:flex;
  gap:9px;
}
.tcp-hero-dots button{
  width:10px;
  height:10px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.55);
  cursor:pointer;
  padding:0;
}
.tcp-hero-dots button.is-active{
  background:var(--tcp-secondary);
  transform:scale(1.25);
}
.tcp-hero-slide-empty{
  background:linear-gradient(135deg,#071B4A,#123b82);
}
@media(max-width:1024px){
  .tcp-hero-slider-pro{
    min-height:var(--tcp-hero-height-tablet,520px);
  }
}
@media(max-width:700px){
  .tcp-hero-slider-pro{
    min-height:var(--tcp-hero-height-mobile,420px);
  }
  .tcp-hero-arrow{
    width:38px;
    height:38px;
    font-size:28px;
  }
  .tcp-hero-prev{left:12px}
  .tcp-hero-next{right:12px}
}

/* V8.7.2 Tournament deadline */
.tcp-tournament-deadline{
  display:inline-block;
  background:#fff7ed;
  color:#9a3412;
  border:1px solid #fed7aa;
  border-radius:8px;
  padding:6px 9px;
  font-size:12px;
  font-weight:900;
  margin:4px 0 8px;
}

/* V8.7.3 Scopri il Club Pro */
.tcp-club-pro-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:46px;
  align-items:center;
}
.tcp-club-layout-media_left .tcp-club-pro-content{order:2}
.tcp-club-layout-media_left .tcp-club-pro-media{order:1}
.tcp-club-layout-center .tcp-club-pro-grid{
  grid-template-columns:1fr;
  text-align:center;
}
.tcp-club-layout-center .tcp-club-pro-content{
  max-width:920px;
  margin:0 auto;
}
.tcp-club-kicker{
  display:inline-block;
  color:var(--tcp-secondary);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:10px;
}
.tcp-club-pro h2{
  color:var(--tcp-primary);
  margin:0 0 14px;
  letter-spacing:-.035em;
}
.tcp-club-subtitle{
  font-size:20px;
  color:#44536a;
  margin:0 0 18px;
}
.tcp-club-description{
  color:#4b5563;
  line-height:1.75;
}
.tcp-club-features{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin:24px 0;
}
.tcp-club-features div{
  background:#fff;
  border:1px solid rgba(7,27,74,.08);
  border-radius:10px;
  padding:12px 14px;
  font-weight:800;
  color:#071B4A;
  box-shadow:0 8px 22px rgba(7,27,74,.05);
}
.tcp-club-media-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.tcp-club-media-grid img{
  width:100%;
  height:100%;
  min-height:190px;
  object-fit:cover;
  border-radius:14px;
  box-shadow:0 12px 30px rgba(7,27,74,.10);
}
.tcp-club-media-count-1{
  grid-template-columns:1fr;
}
.tcp-club-media-count-1 img{
  min-height:420px;
}
.tcp-club-media-count-3 img:first-child,
.tcp-club-media-count-4 img:first-child{
  grid-row:span 2;
}
.tcp-club-media-placeholder{
  min-height:360px;
  display:grid;
  place-items:center;
  background:#f5f7fa;
  border:1px dashed rgba(7,27,74,.25);
  border-radius:14px;
  color:#687280;
  font-weight:800;
}
.tcp-club-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-top:38px;
}
.tcp-club-stats div{
  background:#fff;
  border:1px solid rgba(7,27,74,.08);
  border-radius:12px;
  padding:20px;
  text-align:center;
  box-shadow:0 10px 26px rgba(7,27,74,.06);
}
.tcp-club-stats strong{
  display:block;
  color:var(--tcp-primary);
  font-size:36px;
  line-height:1;
}
.tcp-club-stats span{
  display:block;
  margin-top:6px;
  color:#687280;
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.04em;
}
.tcp-club-actions{
  margin-top:26px;
}
@media(max-width:900px){
  .tcp-club-pro-grid{
    grid-template-columns:1fr;
  }
  .tcp-club-layout-media_left .tcp-club-pro-content,
  .tcp-club-layout-media_left .tcp-club-pro-media{
    order:initial;
  }
  .tcp-club-features,
  .tcp-club-stats{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:560px){
  .tcp-club-features,
  .tcp-club-stats,
  .tcp-club-media-grid{
    grid-template-columns:1fr;
  }
}

/* V8.8.1 WCAG Ready */
.tcp-skip-link{
  position:absolute;
  left:16px;
  top:-80px;
  z-index:1000000;
  background:#071B4A;
  color:#fff;
  padding:12px 16px;
  border-radius:8px;
  font-weight:900;
  text-decoration:none;
}
.tcp-skip-link:focus{
  top:16px;
  color:#fff;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.tcp-btn:focus-visible{
  outline:3px solid #A8D629!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 5px rgba(168,214,41,.25)!important;
}
.tcp-hero-arrow:focus-visible,
.tcp-hero-dots button:focus-visible{
  outline:3px solid #fff!important;
  outline-offset:3px!important;
}
.tcp-booking-cell,
.tcp-tournament-status,
.tcp-tournament-deadline{
  font-weight:800;
}
.screen-reader-text{
  border:0;
  clip:rect(1px,1px,1px,1px);
  clip-path:inset(50%);
  height:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute!important;
  width:1px;
  word-wrap:normal!important;
}
@media (prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
  .tcp-hero-slide{
    transform:none!important;
  }
}

/* V8.8.2 Gallery Pro Upgrade */
.tcp-gallery-layout-masonry{
  columns:4 240px;
  column-gap:16px;
  display:block!important;
}
.tcp-gallery-layout-masonry .tcp-photo-gallery-item,
.tcp-gallery-layout-masonry > div{
  break-inside:avoid;
  margin-bottom:16px;
}
.tcp-photo-gallery-item{
  position:relative;
  margin:0;
  background:#fff;
  border-radius:12px;
  overflow:hidden;
  border:1px solid rgba(7,27,74,.08);
  box-shadow:0 10px 28px rgba(7,27,74,.06);
}
.tcp-photo-gallery-item a{
  display:block;
}
.tcp-photo-gallery-item img{
  width:100%;
  height:auto;
  display:block;
}
.tcp-photo-gallery-item figcaption{
  padding:10px 12px;
  font-size:13px;
  color:#4b5563;
  font-weight:700;
}
.tcp-gallery-layout-grid{
  display:grid!important;
}
.tcp-gallery-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:center;
  margin:0 0 24px;
}
.tcp-gallery-filters button{
  border:1px solid rgba(7,27,74,.14);
  background:#fff;
  color:#071B4A;
  border-radius:10px;
  padding:8px 13px;
  font-weight:900;
  cursor:pointer;
}
.tcp-gallery-filters button.is-active,
.tcp-gallery-filters button:hover{
  background:#071B4A;
  color:#fff;
}
.tcp-gallery-card-pro small{
  position:absolute;
  left:14px;
  top:14px;
  background:rgba(255,255,255,.92);
  color:#071B4A;
  border-radius:8px;
  padding:5px 8px;
  font-size:11px;
  font-weight:900;
  z-index:2;
}
.tcp-lightbox-pro .tcp-lightbox-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  border:0;
  border-radius:10px;
  background:#fff;
  color:#071B4A;
  font-size:36px;
  cursor:pointer;
}
.tcp-lightbox-prev{left:22px}
.tcp-lightbox-next{right:22px}
.tcp-lightbox-caption{
  position:absolute;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  max-width:min(780px,90vw);
  color:#fff;
  background:rgba(0,0,0,.55);
  border-radius:10px;
  padding:10px 14px;
  font-weight:700;
  text-align:center;
}
@media(max-width:900px){
  .tcp-gallery-layout-masonry{columns:2 180px}
  .tcp-lightbox-pro .tcp-lightbox-nav{width:40px;height:40px;font-size:30px}
  .tcp-lightbox-prev{left:10px}
  .tcp-lightbox-next{right:10px}
}
@media(max-width:560px){
  .tcp-gallery-layout-masonry{columns:1}
}

/* V8.9.0 Modern Frontend Refresh */
:root{
  --tcp-radius-xl:24px;
  --tcp-radius-lg:18px;
  --tcp-soft-shadow:0 18px 45px rgba(7,27,74,.10);
  --tcp-soft-border:1px solid rgba(7,27,74,.08);
}
.tcp-section{
  position:relative;
}
.tcp-section-title,
.tcp-section-header h2,
.tcp-home-section h2{
  letter-spacing:-.035em;
}
.tcp-card,
.tcp-court-card,
.tcp-coach-card,
.tcp-event-card,
.tcp-tournament-card,
.tcp-news-card,
.tcp-sponsor-card,
.tcp-gallery-card,
.tcp-photo-gallery-item{
  border-radius:var(--tcp-radius-lg)!important;
  border:var(--tcp-soft-border)!important;
  box-shadow:var(--tcp-soft-shadow)!important;
  overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.tcp-card:hover,
.tcp-court-card:hover,
.tcp-coach-card:hover,
.tcp-event-card:hover,
.tcp-tournament-card:hover,
.tcp-news-card:hover,
.tcp-sponsor-card:hover,
.tcp-gallery-card:hover,
.tcp-photo-gallery-item:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 60px rgba(7,27,74,.15)!important;
  border-color:rgba(168,214,41,.45)!important;
}
.tcp-btn,
.button.tcp-btn,
a.tcp-btn{
  border-radius:999px!important;
  padding-inline:22px!important;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
/* V10.1.9 - Fix caratteri strani sui pulsanti Hero: rimosso pseudo-elemento freccia globale */
.tcp-btn::after{
  content:none!important;
  display:none!important;
}
.tcp-hero,
.tcp-hero-section{
  border-radius:0 0 34px 34px;
  overflow:hidden;
}
.tcp-hero-content,
.tcp-hero-inner{
  max-width:1180px;
}
.tcp-hero h1{
  letter-spacing:-.055em;
  line-height:.95;
}
.tcp-hero p{
  max-width:720px;
}
.tcp-gallery-layout-masonry .tcp-photo-gallery-item img,
.tcp-gallery-card img,
.tcp-court-card img,
.tcp-coach-card img,
.tcp-event-card img,
.tcp-tournament-card img{
  aspect-ratio:4/3;
  object-fit:cover;
}
.tcp-lightbox-pro{
  backdrop-filter:blur(8px);
}
.tcp-lightbox-pro img{
  border-radius:18px;
  box-shadow:0 24px 70px rgba(0,0,0,.38);
}
@media(max-width:760px){
  .tcp-section{padding-block:48px!important}
  .tcp-hero,
  .tcp-hero-section{border-radius:0 0 22px 22px}
  .tcp-hero h1{font-size:clamp(36px,12vw,56px)!important}
  .tcp-btn{width:100%;max-width:360px}
}

/* V8.9.1 - Modern contacts block */
.tcp-contacts-modern .tcp-contact-head{
  max-width:760px;
  margin:0 auto 30px;
  text-align:center;
}
.tcp-contacts-modern .tcp-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--tcp-secondary);
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.tcp-contacts-modern .tcp-contact-head h2{
  color:var(--tcp-primary);
  margin:0 0 10px;
}
.tcp-contacts-modern .tcp-contact-head p{
  margin:0;
  color:#687280;
  font-size:18px;
}
.tcp-contacts-modern .tcp-contact-layout{
  grid-template-columns:1fr 1.15fr;
  gap:28px;
}
.tcp-contacts-modern .tcp-contact-info,
.tcp-contacts-modern .tcp-contact-side{
  border:1px solid rgba(7,27,74,.08);
  box-shadow:0 18px 50px rgba(7,27,74,.10);
}
.tcp-contacts-modern .tcp-contact-cards{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:0;
}
.tcp-contacts-modern .tcp-contact-card{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-height:126px;
  padding:18px;
  text-decoration:none;
  border:1px solid rgba(7,27,74,.07);
  background:linear-gradient(180deg,#fff,#f7f9fc);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.tcp-contacts-modern a.tcp-contact-card:hover,
.tcp-contacts-modern a.tcp-contact-card:focus{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(7,27,74,.10);
  border-color:rgba(12,143,85,.28);
}
.tcp-contacts-modern .tcp-contact-icon{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:#fff;
  background:var(--tcp-secondary);
  font-weight:900;
  margin-bottom:4px;
}
.tcp-contacts-modern .tcp-contact-card strong{
  color:var(--tcp-primary);
  font-size:15px;
}
.tcp-contacts-modern .tcp-contact-card small{
  color:#687280;
  font-size:14px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.tcp-contacts-modern .tcp-contact-hours{
  margin-top:18px;
  padding:18px;
  border-radius:18px;
  background:#f5f7fa;
  border-left:4px solid var(--tcp-secondary);
}
.tcp-contacts-modern .tcp-contact-hours strong{
  display:block;
  color:var(--tcp-primary);
  margin-bottom:6px;
}
.tcp-contacts-modern .tcp-contact-hours p{margin:0;color:#687280}
.tcp-contacts-modern .tcp-contact-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:20px;
}
.tcp-contacts-modern .tcp-button-outline{
  background:#fff;
  color:var(--tcp-primary);
  border:1px solid rgba(7,27,74,.14);
}
.tcp-contacts-modern .tcp-contact-side{
  display:grid;
  gap:18px;
}
.tcp-contacts-modern .tcp-contact-form{
  padding:18px;
  border-radius:18px;
  background:#f7f9fc;
}
.tcp-contacts-modern .tcp-contact-form input,
.tcp-contacts-modern .tcp-contact-form textarea,
.tcp-contacts-modern .tcp-contact-form select{
  width:100%;
  max-width:100%;
  border-radius:12px;
  border:1px solid rgba(7,27,74,.14);
  padding:12px 14px;
}
.tcp-contacts-modern .tcp-contact-map iframe{min-height:390px}
@media(max-width:900px){
  .tcp-contacts-modern .tcp-contact-layout{grid-template-columns:1fr}
}
@media(max-width:560px){
  .tcp-contacts-modern .tcp-contact-cards{grid-template-columns:1fr}
  .tcp-contacts-modern .tcp-contact-info,
  .tcp-contacts-modern .tcp-contact-side{padding:22px}
  .tcp-contacts-modern .tcp-contact-head{text-align:left}
}


/* V8.9.2 - Contacts responsive hardening */
.tcp-contacts-modern,
.tcp-contacts-modern *{
  box-sizing:border-box;
}
.tcp-contacts-modern .tcp-contact-layout,
.tcp-contacts-modern .tcp-contact-info,
.tcp-contacts-modern .tcp-contact-side,
.tcp-contacts-modern .tcp-contact-card,
.tcp-contacts-modern .tcp-contact-form,
.tcp-contacts-modern .tcp-contact-map{
  min-width:0;
}
.tcp-contacts-modern .tcp-contact-card small,
.tcp-contacts-modern .tcp-contact-hours p,
.tcp-contacts-modern .tcp-contact-placeholder{
  overflow-wrap:anywhere;
  word-break:break-word;
}
.tcp-contacts-modern .tcp-contact-map{
  width:100%;
  overflow:hidden;
  border-radius:18px;
  background:#f5f7fa;
}
.tcp-contacts-modern .tcp-contact-map iframe{
  display:block;
  width:100%!important;
  max-width:100%!important;
  min-height:390px;
  border:0;
}
.tcp-contacts-modern .tcp-contact-form form,
.tcp-contacts-modern .tcp-contact-form p{
  max-width:100%;
}
.tcp-contacts-modern .tcp-contact-form input[type="submit"],
.tcp-contacts-modern .tcp-contact-form button{
  max-width:100%;
  white-space:normal;
}
@media(max-width:1024px){
  .tcp-contacts-modern .tcp-contact-layout{
    grid-template-columns:1fr;
    gap:22px;
  }
  .tcp-contacts-modern .tcp-contact-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .tcp-contacts-modern .tcp-contact-map iframe{
    min-height:340px;
  }
}
@media(max-width:640px){
  .tcp-contacts-modern .tcp-contact-head{
    text-align:left;
    margin-bottom:22px;
  }
  .tcp-contacts-modern .tcp-contact-head p{
    font-size:16px;
  }
  .tcp-contacts-modern .tcp-contact-info,
  .tcp-contacts-modern .tcp-contact-side{
    padding:18px;
    border-radius:18px!important;
  }
  .tcp-contacts-modern .tcp-contact-cards{
    grid-template-columns:1fr;
    gap:12px;
  }
  .tcp-contacts-modern .tcp-contact-card{
    min-height:auto;
    padding:16px;
  }
  .tcp-contacts-modern .tcp-contact-actions{
    flex-direction:column;
  }
  .tcp-contacts-modern .tcp-contact-actions .tcp-button,
  .tcp-contacts-modern .tcp-contact-actions .tcp-btn{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .tcp-contacts-modern .tcp-contact-map iframe{
    min-height:280px;
  }
  .tcp-contacts-modern .tcp-contact-form{
    padding:14px;
  }
}
@media(max-width:380px){
  .tcp-contacts-modern .tcp-contact-info,
  .tcp-contacts-modern .tcp-contact-side{
    padding:14px;
  }
  .tcp-contacts-modern .tcp-contact-icon{
    width:36px;
    height:36px;
  }
}

/* V9.0 Accessibilità Pro */
.tcp-skip-link{position:absolute;left:-999px;top:12px;z-index:100000;background:#fff;color:#071B4A;padding:12px 16px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);font-weight:800}
.tcp-skip-link:focus{left:12px;outline:3px solid var(--tcp-secondary,#A8D629);outline-offset:3px}
.tcp-a11y-toolbar{position:fixed;right:16px;bottom:16px;z-index:99998;font-family:var(--tcp-font-body,system-ui)}
.tcp-a11y-toggle,.tcp-a11y-panel button{min-height:44px;min-width:44px;border:2px solid #071B4A;border-radius:999px;background:#fff;color:#071B4A;font-weight:800;cursor:pointer;padding:10px 14px;box-shadow:0 12px 30px rgba(0,0,0,.16)}
.tcp-a11y-panel{position:absolute;right:0;bottom:58px;display:grid;gap:8px;width:max-content;max-width:calc(100vw - 32px);padding:10px;border-radius:18px;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.2)}
.tcp-a11y-panel button{border-radius:12px;text-align:left;box-shadow:none}
.tcp-a11y-panel button[aria-pressed="true"]{background:#071B4A;color:#fff}
html.tcp-a11y-contrast body{background:#000!important;color:#fff!important}
html.tcp-a11y-contrast a,html.tcp-a11y-contrast button:not(.tcp-a11y-toggle):not(.tcp-a11y-panel button){color:#ffff00!important}
html.tcp-a11y-contrast .tcp-card,html.tcp-a11y-contrast .tcp-contact-card,html.tcp-a11y-contrast .tcp-contact-form,html.tcp-a11y-contrast .tcp-contact-map,html.tcp-a11y-contrast section{background:#000!important;color:#fff!important;border-color:#fff!important}
html.tcp-a11y-large-text body{font-size:118%!important}
html.tcp-a11y-large-text p,html.tcp-a11y-large-text li,html.tcp-a11y-large-text a,html.tcp-a11y-large-text button,html.tcp-a11y-large-text input,html.tcp-a11y-large-text textarea{font-size:1.08em!important;line-height:1.65!important}
html.tcp-a11y-reduce-motion *,html.tcp-a11y-reduce-motion *::before,html.tcp-a11y-reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--tcp-secondary,#A8D629)!important;outline-offset:3px!important}
.tcp-contact-card,.tcp-button,.tcp-menu-toggle,.tcp-lightbox-close,.tcp-lightbox-nav,.tcp-gallery-filters button{min-height:44px;min-width:44px}
.tcp-lightbox-overlay[role="dialog"]{outline:none}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media (max-width:640px){.tcp-a11y-toolbar{right:10px;bottom:10px}.tcp-a11y-toggle{font-size:13px;padding:9px 12px}.tcp-a11y-panel{bottom:54px}}

/* V9.3 WPBakery Design Manager */
.tcp-vc-design-manager{background-size:cover;background-position:center;color:var(--tcp-vc-text-color,inherit);font-family:var(--tcp-vc-text-font,inherit);font-weight:var(--tcp-vc-text-weight,inherit);line-height:var(--tcp-vc-line-height,inherit)}
.tcp-vc-design-manager h1,.tcp-vc-design-manager h2,.tcp-vc-design-manager h3,.tcp-vc-design-manager .tcp-section-heading h2,.tcp-vc-design-manager .tcp-contact-head h2{color:var(--tcp-vc-title-color,inherit);font-family:var(--tcp-vc-title-font,var(--tcp-font-heading));font-weight:var(--tcp-vc-title-weight,inherit);font-size:var(--tcp-vc-title-size-desktop,inherit)}
.tcp-vc-design-manager p,.tcp-vc-design-manager li,.tcp-vc-design-manager small,.tcp-vc-design-manager .tcp-section-heading p,.tcp-vc-design-manager .tcp-contact-head p{color:var(--tcp-vc-text-color,inherit);font-family:var(--tcp-vc-text-font,var(--tcp-font-body));font-weight:var(--tcp-vc-text-weight,inherit);font-size:var(--tcp-vc-text-size-desktop,inherit);line-height:var(--tcp-vc-line-height,inherit)}
.tcp-vc-design-manager a:not(.tcp-btn){color:var(--tcp-vc-link-color,inherit)}
.tcp-vc-design-manager .tcp-btn{background:var(--tcp-vc-btn-bg,var(--tcp-btn-bg));color:var(--tcp-vc-btn-text,var(--tcp-btn-text));border-color:var(--tcp-vc-btn-bg,var(--tcp-btn-border))}
.tcp-vc-design-manager .tcp-btn:hover,.tcp-vc-design-manager .tcp-btn:focus{background:var(--tcp-vc-btn-hover-bg,var(--tcp-btn-bg-hover));color:var(--tcp-vc-btn-hover-text,var(--tcp-btn-text-hover));border-color:var(--tcp-vc-btn-hover-bg,var(--tcp-btn-bg-hover))}
.tcp-vc-design-manager .tcp-card,.tcp-vc-design-manager .tcp-contact-card,.tcp-vc-design-manager .tcp-photo-gallery-item,.tcp-vc-design-manager .tcp-club-stats>div{border-radius:var(--tcp-vc-card-radius,var(--tcp-radius));padding:var(--tcp-vc-card-padding,inherit);border:var(--tcp-vc-card-border-width,0) solid var(--tcp-vc-border-color,transparent);min-height:var(--tcp-vc-card-min-height,auto);box-shadow:0 14px 32px rgba(0,0,0,var(--tcp-vc-card-shadow-alpha,var(--tcp-shadow-alpha,0.08)))}
.tcp-vc-design-manager .tcp-grid{grid-template-columns:repeat(var(--tcp-vc-cols-desktop,3),minmax(0,1fr))!important}
@media (max-width: 1024px){.tcp-vc-design-manager h1,.tcp-vc-design-manager h2,.tcp-vc-design-manager h3,.tcp-vc-design-manager .tcp-section-heading h2,.tcp-vc-design-manager .tcp-contact-head h2{font-size:var(--tcp-vc-title-size-tablet,var(--tcp-vc-title-size-desktop,inherit))}.tcp-vc-design-manager p,.tcp-vc-design-manager li,.tcp-vc-design-manager small,.tcp-vc-design-manager .tcp-section-heading p,.tcp-vc-design-manager .tcp-contact-head p{font-size:var(--tcp-vc-text-size-tablet,var(--tcp-vc-text-size-desktop,inherit))}.tcp-vc-design-manager .tcp-grid{grid-template-columns:repeat(var(--tcp-vc-cols-tablet,var(--tcp-vc-cols-desktop,2)),minmax(0,1fr))!important}}
@media (max-width: 640px){.tcp-vc-design-manager h1,.tcp-vc-design-manager h2,.tcp-vc-design-manager h3,.tcp-vc-design-manager .tcp-section-heading h2,.tcp-vc-design-manager .tcp-contact-head h2{font-size:var(--tcp-vc-title-size-mobile,var(--tcp-vc-title-size-tablet,var(--tcp-vc-title-size-desktop,inherit)))}.tcp-vc-design-manager p,.tcp-vc-design-manager li,.tcp-vc-design-manager small,.tcp-vc-design-manager .tcp-section-heading p,.tcp-vc-design-manager .tcp-contact-head p{font-size:var(--tcp-vc-text-size-mobile,var(--tcp-vc-text-size-tablet,var(--tcp-vc-text-size-desktop,inherit)))}.tcp-vc-design-manager .tcp-grid{grid-template-columns:repeat(var(--tcp-vc-cols-mobile,1),minmax(0,1fr))!important}}

/* ============================================================
   Design Presets V9.4 — "look completo" (colori + font + dimensioni)
   Applicabili globalmente (classe sul <body>, Theme Options) o per-modulo
   (Design Manager). I preset definiscono le variabili --tcp-vc-* consumate
   dal blocco .tcp-vc-design-manager. Precedenza per cascata:
   campo manuale inline > preset per-modulo (classe sezione) > preset globale
   (classe body) > stile base del tema.
   ============================================================ */
.tcp-preset-chiaro{
  --tcp-vc-bg:#ffffff;
  --tcp-vc-title-color:#0b1c3f;--tcp-vc-text-color:#4a566e;--tcp-vc-link-color:#0b1c3f;--tcp-vc-border-color:#e6e9f0;
  --tcp-vc-btn-bg:#0b1c3f;--tcp-vc-btn-text:#ffffff;--tcp-vc-btn-hover-bg:#16306e;--tcp-vc-btn-hover-text:#ffffff;
  --tcp-vc-title-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--tcp-vc-text-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --tcp-vc-title-weight:700;--tcp-vc-text-weight:400;--tcp-vc-line-height:1.7;
  --tcp-vc-title-size-desktop:40px;--tcp-vc-title-size-tablet:32px;--tcp-vc-title-size-mobile:26px;
  --tcp-vc-text-size-desktop:17px;--tcp-vc-text-size-tablet:16px;--tcp-vc-text-size-mobile:15px;
  --tcp-vc-card-radius:18px;--tcp-vc-card-padding:24px;--tcp-vc-card-border-width:1px;--tcp-vc-card-shadow-alpha:0.06;
}
.tcp-preset-scuro{
  --tcp-vc-bg:#0b1c3f;
  --tcp-vc-title-color:#ffffff;--tcp-vc-text-color:#c7d0e2;--tcp-vc-link-color:#A8D629;--tcp-vc-border-color:rgba(255,255,255,.12);
  --tcp-vc-btn-bg:#A8D629;--tcp-vc-btn-text:#071B4A;--tcp-vc-btn-hover-bg:#bfe84a;--tcp-vc-btn-hover-text:#071B4A;
  --tcp-vc-title-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--tcp-vc-text-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --tcp-vc-title-weight:700;--tcp-vc-text-weight:400;--tcp-vc-line-height:1.7;
  --tcp-vc-title-size-desktop:40px;--tcp-vc-title-size-tablet:32px;--tcp-vc-title-size-mobile:26px;
  --tcp-vc-text-size-desktop:17px;--tcp-vc-text-size-tablet:16px;--tcp-vc-text-size-mobile:15px;
  --tcp-vc-card-radius:18px;--tcp-vc-card-padding:26px;--tcp-vc-card-border-width:1px;--tcp-vc-card-shadow-alpha:0.35;
}
.tcp-preset-sportivo{
  --tcp-vc-bg:#f4f7ec;
  --tcp-vc-title-color:#071B4A;--tcp-vc-text-color:#3a4660;--tcp-vc-link-color:#5a8a00;--tcp-vc-border-color:#A8D629;
  --tcp-vc-btn-bg:#A8D629;--tcp-vc-btn-text:#071B4A;--tcp-vc-btn-hover-bg:#071B4A;--tcp-vc-btn-hover-text:#A8D629;
  --tcp-vc-title-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--tcp-vc-text-font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --tcp-vc-title-weight:800;--tcp-vc-text-weight:500;--tcp-vc-line-height:1.55;
  --tcp-vc-title-size-desktop:46px;--tcp-vc-title-size-tablet:36px;--tcp-vc-title-size-mobile:28px;
  --tcp-vc-text-size-desktop:17px;--tcp-vc-text-size-tablet:16px;--tcp-vc-text-size-mobile:15px;
  --tcp-vc-card-radius:14px;--tcp-vc-card-padding:22px;--tcp-vc-card-border-width:2px;--tcp-vc-card-shadow-alpha:0.12;
}
/* Sfondo modulo dal preset: si applica SOLO ai moduli che portano un preset
   (per-modulo) o che discendono da un body con preset globale. Non tocca le
   sezioni senza preset; un colore di sfondo impostato a mano (inline) vince. */
[class*="tcp-preset-"].tcp-vc-design-manager,
[class*="tcp-preset-"] .tcp-vc-design-manager{background-color:var(--tcp-vc-bg,transparent)}
/* Tocco "Sportivo": titoli in maiuscolo con spaziatura compatta. */
.tcp-preset-sportivo.tcp-vc-design-manager h2,
.tcp-preset-sportivo .tcp-vc-design-manager h2,
.tcp-preset-sportivo.tcp-vc-design-manager .tcp-section-heading h2,
.tcp-preset-sportivo .tcp-vc-design-manager .tcp-section-heading h2{text-transform:uppercase;letter-spacing:.5px}

/* ============================================================
   V9.5 — Preset Club + font dedicati Design System
   ============================================================ */
.tcp-preset-tennis_classic{
  --tcp-vc-bg:#f7fbf4;--tcp-vc-title-color:#103b22;--tcp-vc-text-color:#304338;--tcp-vc-link-color:#1d6b35;--tcp-vc-border-color:#b7d9a8;
  --tcp-vc-btn-bg:#1d6b35;--tcp-vc-btn-text:#ffffff;--tcp-vc-btn-hover-bg:#103b22;--tcp-vc-btn-hover-text:#ffffff;
  --tcp-vc-title-font:var(--tcp-font-heading);--tcp-vc-text-font:var(--tcp-font-body);--tcp-vc-title-weight:800;--tcp-vc-text-weight:400;--tcp-vc-line-height:1.65;
  --tcp-vc-title-size-desktop:44px;--tcp-vc-title-size-tablet:34px;--tcp-vc-title-size-mobile:28px;--tcp-vc-text-size-desktop:17px;--tcp-vc-text-size-tablet:16px;--tcp-vc-text-size-mobile:15px;
  --tcp-vc-card-radius:22px;--tcp-vc-card-padding:26px;--tcp-vc-card-border-width:1px;--tcp-vc-card-shadow-alpha:.10;
}
.tcp-preset-clay_court{
  --tcp-vc-bg:#fff7ef;--tcp-vc-title-color:#6b2d16;--tcp-vc-text-color:#594035;--tcp-vc-link-color:#b65324;--tcp-vc-border-color:#e5b08a;
  --tcp-vc-btn-bg:#c95f2b;--tcp-vc-btn-text:#ffffff;--tcp-vc-btn-hover-bg:#6b2d16;--tcp-vc-btn-hover-text:#ffffff;
  --tcp-vc-title-font:var(--tcp-font-heading);--tcp-vc-text-font:var(--tcp-font-body);--tcp-vc-title-weight:800;--tcp-vc-text-weight:400;--tcp-vc-line-height:1.65;
  --tcp-vc-title-size-desktop:44px;--tcp-vc-title-size-tablet:34px;--tcp-vc-title-size-mobile:28px;--tcp-vc-text-size-desktop:17px;--tcp-vc-text-size-tablet:16px;--tcp-vc-text-size-mobile:15px;
  --tcp-vc-card-radius:18px;--tcp-vc-card-padding:25px;--tcp-vc-card-border-width:1px;--tcp-vc-card-shadow-alpha:.12;
}
.tcp-preset-luxury_club{
  --tcp-vc-bg:#090909;--tcp-vc-title-color:#f6d47a;--tcp-vc-text-color:#e8e1d2;--tcp-vc-link-color:#f6d47a;--tcp-vc-border-color:rgba(246,212,122,.32);
  --tcp-vc-btn-bg:#f6d47a;--tcp-vc-btn-text:#090909;--tcp-vc-btn-hover-bg:#ffffff;--tcp-vc-btn-hover-text:#090909;
  --tcp-vc-title-font:var(--tcp-font-heading);--tcp-vc-text-font:var(--tcp-font-body);--tcp-vc-title-weight:700;--tcp-vc-text-weight:400;--tcp-vc-line-height:1.75;
  --tcp-vc-title-size-desktop:46px;--tcp-vc-title-size-tablet:36px;--tcp-vc-title-size-mobile:28px;--tcp-vc-text-size-desktop:17px;--tcp-vc-text-size-tablet:16px;--tcp-vc-text-size-mobile:15px;
  --tcp-vc-card-radius:28px;--tcp-vc-card-padding:30px;--tcp-vc-card-border-width:1px;--tcp-vc-card-shadow-alpha:.42;
}
.tcp-preset-padel_modern{
  --tcp-vc-bg:#f2f8ff;--tcp-vc-title-color:#062b55;--tcp-vc-text-color:#2f4158;--tcp-vc-link-color:#0878d8;--tcp-vc-border-color:#b7dfff;
  --tcp-vc-btn-bg:#0878d8;--tcp-vc-btn-text:#ffffff;--tcp-vc-btn-hover-bg:#062b55;--tcp-vc-btn-hover-text:#ffffff;
  --tcp-vc-title-font:var(--tcp-font-heading);--tcp-vc-text-font:var(--tcp-font-body);--tcp-vc-title-weight:800;--tcp-vc-text-weight:400;--tcp-vc-line-height:1.62;
  --tcp-vc-title-size-desktop:44px;--tcp-vc-title-size-tablet:34px;--tcp-vc-title-size-mobile:27px;--tcp-vc-text-size-desktop:17px;--tcp-vc-text-size-tablet:16px;--tcp-vc-text-size-mobile:15px;
  --tcp-vc-card-radius:20px;--tcp-vc-card-padding:24px;--tcp-vc-card-border-width:1px;--tcp-vc-card-shadow-alpha:.11;
}
.tcp-hero h1,.tcp-vc-hero h1{font-family:var(--tcp-font-hero,var(--tcp-font-heading))}
.tcp-card,.tcp-vc-design-manager .tcp-card{font-family:var(--tcp-font-card,var(--tcp-font-body))}
.tcp-btn,.tcp-vc-design-manager .tcp-btn,button,input[type="button"],input[type="submit"]{font-family:var(--tcp-font-button,var(--tcp-font-body))}
.tcp-booking-admin,.tcp-booking-admin input,.tcp-booking-admin select,.tcp-booking-admin button{font-family:var(--tcp-font-booking,var(--tcp-font-body))}
.tcp-preset-luxury_club.tcp-vc-design-manager .tcp-card,
.tcp-preset-luxury_club .tcp-vc-design-manager .tcp-card{background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.02));color:var(--tcp-vc-text-color)}
.tcp-preset-clay_court.tcp-vc-design-manager .tcp-card,
.tcp-preset-clay_court .tcp-vc-design-manager .tcp-card{background:linear-gradient(145deg,#fff,#fff3e7)}
.tcp-preset-tennis_classic.tcp-vc-design-manager .tcp-card,
.tcp-preset-tennis_classic .tcp-vc-design-manager .tcp-card{background:linear-gradient(145deg,#fff,#f5fbf0)}
.tcp-preset-padel_modern.tcp-vc-design-manager .tcp-card,
.tcp-preset-padel_modern .tcp-vc-design-manager .tcp-card{background:linear-gradient(145deg,#fff,#eef8ff)}


/* ============================================================
   V9.5.1 — Home Page CSS Fix
   Corregge la resa della homepage con Home Builder e pagine statiche/WPBakery.
   ============================================================ */
.tcp-container{
  width:min(var(--tcp-container-width,1180px),92%)!important;
  max-width:var(--tcp-container-width,1180px);
}
.site-main,
.tcp-home-builder-front,
.tcp-static-front-page{
  width:100%;
  min-height:1px;
  overflow-x:clip;
}
.tcp-home-builder-front .tcp-section,
.tcp-static-front-page .tcp-section,
.tcp-wpbakery-page .tcp-section{
  width:100%;
  clear:both;
}
.tcp-home-builder-front .tcp-section:first-child,
.tcp-static-front-page > :first-child,
.tcp-wpbakery-page > :first-child{
  margin-top:0!important;
}
.tcp-home-builder-front .tcp-section-heading,
.tcp-static-front-page .tcp-section-heading,
.tcp-wpbakery-page .tcp-section-heading{
  text-align:center;
}
.tcp-home-builder-front .tcp-section-heading span,
.tcp-static-front-page .tcp-section-heading span,
.tcp-wpbakery-page .tcp-section-heading span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:5px 12px;
  margin-bottom:10px;
  border-radius:999px;
  background:rgba(168,214,41,.18);
  color:var(--tcp-primary);
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.tcp-home-builder-front .tcp-grid,
.tcp-static-front-page .tcp-grid,
.tcp-wpbakery-page .tcp-grid{
  display:grid;
  align-items:stretch;
}
.tcp-home-builder-front .tcp-grid-2,
.tcp-static-front-page .tcp-grid-2,
.tcp-wpbakery-page .tcp-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tcp-home-builder-front .tcp-grid-3,
.tcp-static-front-page .tcp-grid-3,
.tcp-wpbakery-page .tcp-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tcp-home-builder-front .tcp-grid-4,
.tcp-static-front-page .tcp-grid-4,
.tcp-wpbakery-page .tcp-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tcp-home-builder-front .tcp-split,
.tcp-static-front-page .tcp-split,
.tcp-wpbakery-page .tcp-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.tcp-home-builder-front .tcp-card,
.tcp-home-builder-front .tcp-court-card,
.tcp-home-builder-front .tcp-coach-card,
.tcp-home-builder-front .tcp-event-card,
.tcp-home-builder-front .tcp-tournament-card,
.tcp-home-builder-front .tcp-news-card,
.tcp-home-builder-front .tcp-gallery-card,
.tcp-home-builder-front .tcp-sponsor-card{
  height:100%;
  background:#fff;
}
.tcp-home-builder-front .tcp-court-photo,
.tcp-home-builder-front .tcp-coach-photo,
.tcp-home-builder-front .tcp-news-photo,
.tcp-home-builder-front .tcp-tournament-photo,
.tcp-home-builder-front .tcp-gallery-card a{
  display:block;
  width:100%;
  overflow:hidden;
}
.tcp-home-builder-front .tcp-court-photo img,
.tcp-home-builder-front .tcp-coach-photo img,
.tcp-home-builder-front .tcp-news-photo img,
.tcp-home-builder-front .tcp-tournament-photo img,
.tcp-home-builder-front .tcp-gallery-card img{
  display:block;
  width:100%;
  height:auto;
}
/* Preset globali anche sulla Home Builder, non solo sui moduli WPBakery. */
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-section:not(.tcp-hero),
body[class*="tcp-preset-"] .tcp-static-front-page .tcp-section:not(.tcp-hero){
  background-color:var(--tcp-vc-bg,inherit);
  color:var(--tcp-vc-text-color,var(--tcp-text));
}
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-section h1,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-section h2,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-section h3,
body[class*="tcp-preset-"] .tcp-static-front-page .tcp-section h1,
body[class*="tcp-preset-"] .tcp-static-front-page .tcp-section h2,
body[class*="tcp-preset-"] .tcp-static-front-page .tcp-section h3{
  color:var(--tcp-vc-title-color,var(--tcp-primary));
  font-family:var(--tcp-vc-title-font,var(--tcp-font-heading));
}
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-section p,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-section li,
body[class*="tcp-preset-"] .tcp-static-front-page .tcp-section p,
body[class*="tcp-preset-"] .tcp-static-front-page .tcp-section li{
  color:var(--tcp-vc-text-color,var(--tcp-text));
  font-family:var(--tcp-vc-text-font,var(--tcp-font-body));
}
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-btn,
body[class*="tcp-preset-"] .tcp-static-front-page .tcp-btn{
  background:var(--tcp-vc-btn-bg,var(--tcp-btn-bg));
  color:var(--tcp-vc-btn-text,var(--tcp-btn-text));
  border-color:var(--tcp-vc-btn-bg,var(--tcp-btn-border));
}
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-btn:hover,
body[class*="tcp-preset-"] .tcp-static-front-page .tcp-btn:hover{
  background:var(--tcp-vc-btn-hover-bg,var(--tcp-btn-bg-hover));
  color:var(--tcp-vc-btn-hover-text,var(--tcp-btn-text-hover));
}
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-card,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-court-card,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-coach-card,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-event-card,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-tournament-card,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-news-card,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-gallery-card,
body[class*="tcp-preset-"] .tcp-home-builder-front .tcp-sponsor-card{
  border-radius:var(--tcp-vc-card-radius,var(--tcp-radius));
  border:var(--tcp-vc-card-border-width,1px) solid var(--tcp-vc-border-color,rgba(7,27,74,.08));
}
/* WPBakery homepage: evita overflow e margini negativi che fanno sembrare rotto il CSS. */
.tcp-static-front-page .wpb-content-wrapper,
.tcp-wpbakery-page .wpb-content-wrapper{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
.tcp-static-front-page .vc_row,
.tcp-wpbakery-page .vc_row{
  box-sizing:border-box;
}
.tcp-static-front-page .vc_row:not([data-vc-full-width="true"]),
.tcp-wpbakery-page .vc_row:not([data-vc-full-width="true"]){
  width:min(var(--tcp-container-width,1180px),92%);
  max-width:var(--tcp-container-width,1180px);
  margin-left:auto!important;
  margin-right:auto!important;
}
.tcp-static-front-page .vc_row[data-vc-full-width="true"],
.tcp-wpbakery-page .vc_row[data-vc-full-width="true"]{
  max-width:100vw;
}
@media(max-width:1024px){
  .tcp-home-builder-front .tcp-grid-4,
  .tcp-static-front-page .tcp-grid-4,
  .tcp-wpbakery-page .tcp-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .tcp-home-builder-front .tcp-grid-3,
  .tcp-static-front-page .tcp-grid-3,
  .tcp-wpbakery-page .tcp-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .tcp-home-builder-front .tcp-section,
  .tcp-static-front-page .tcp-section,
  .tcp-wpbakery-page .tcp-section{padding-block:48px!important}
  .tcp-home-builder-front .tcp-grid-2,
  .tcp-home-builder-front .tcp-grid-3,
  .tcp-home-builder-front .tcp-grid-4,
  .tcp-static-front-page .tcp-grid-2,
  .tcp-static-front-page .tcp-grid-3,
  .tcp-static-front-page .tcp-grid-4,
  .tcp-wpbakery-page .tcp-grid-2,
  .tcp-wpbakery-page .tcp-grid-3,
  .tcp-wpbakery-page .tcp-grid-4{grid-template-columns:1fr!important}
  .tcp-home-builder-front .tcp-split,
  .tcp-static-front-page .tcp-split,
  .tcp-wpbakery-page .tcp-split{grid-template-columns:1fr!important;gap:28px!important}
  .tcp-static-front-page .vc_row:not([data-vc-full-width="true"]),
  .tcp-wpbakery-page .vc_row:not([data-vc-full-width="true"]){width:92%!important}
}

/* V9.6.0 design tokens applicati ai componenti principali */
.tcp-container,.tcp-home-section .tcp-container{max-width:var(--tcp-container-width);margin-left:auto;margin-right:auto}
.tcp-card,.tcp-event-card,.tcp-court-card,.tcp-coach-card,.tcp-tournament-card,.tcp-sponsor-card,.tcp-gallery-card,.tcp-contact-card{border-radius:var(--tcp-radius-medium);box-shadow:var(--tcp-shadow-small)}
.tcp-card:hover,.tcp-event-card:hover,.tcp-court-card:hover,.tcp-coach-card:hover,.tcp-tournament-card:hover,.tcp-gallery-card:hover{box-shadow:var(--tcp-shadow-medium)}
.tcp-btn,.tcp-button,.vc_btn3{font-family:var(--tcp-font-button);border-radius:var(--tcp-radius-small)}
.tcp-hero,.tcp-hero-title,.tcp-hero h1{font-family:var(--tcp-font-hero)}
.tcp-booking-wrapper,.tcp-booking-table,.tcp-booking-calendar{font-family:var(--tcp-font-booking)}
.tcp-home-section{padding-top:var(--tcp-space-large);padding-bottom:var(--tcp-space-large)}
@media(max-width:767px){.tcp-home-section{padding-top:32px;padding-bottom:32px}.tcp-container,.tcp-home-section .tcp-container{padding-left:16px;padding-right:16px}}

/* V9.6.1 Gallery Home selector */
.tcp-gallery-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.tcp-gallery-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.tcp-gallery-cols-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.tcp-gallery-cols-5{grid-template-columns:repeat(5,minmax(0,1fr));}
.tcp-gallery-cols-6{grid-template-columns:repeat(6,minmax(0,1fr));}
@media (max-width: 1024px){.tcp-gallery-grid[class*="tcp-gallery-cols-"]{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 640px){.tcp-gallery-grid[class*="tcp-gallery-cols-"]{grid-template-columns:1fr;}}

/* V10 Gallery Pro Enterprise */
.tcp-gallery-pro-v10 .tcp-gallery-card a{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:100%;}
.tcp-gallery-album-card small{position:absolute;left:14px;top:14px;z-index:2;background:rgba(7,27,74,.86);color:#fff;border-radius:999px;padding:6px 10px;font-weight:700;font-size:12px;line-height:1;}
.tcp-gallery-album-card em{font-style:normal;color:var(--tcp-text-color,#16213a);opacity:.75;margin-top:4px;font-size:.92rem;}
.tcp-single-gallery .tcp-photo-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
.tcp-single-gallery .tcp-photo-gallery-item{margin:0;border-radius:var(--tcp-radius,14px);overflow:hidden;background:#fff;box-shadow:var(--tcp-shadow,0 10px 30px rgba(0,0,0,.08));}
.tcp-single-gallery .tcp-photo-gallery-item img{width:100%;height:260px;object-fit:cover;display:block;transition:transform .25s ease;}
.tcp-single-gallery .tcp-photo-gallery-item a:hover img{transform:scale(1.04);}
.tcp-gallery-album-description{max-width:820px;margin:0 auto 32px;text-align:center;color:var(--tcp-text-color,#16213a);}
.tcp-album-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding:10px;background:#f6f7f7;border:1px solid #dcdcde;border-radius:8px;min-height:54px;}
.tcp-album-preview img{width:70px;height:70px;object-fit:cover;border-radius:6px;border:1px solid #dcdcde;background:#fff;}
@media (max-width: 980px){.tcp-single-gallery .tcp-photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}.tcp-single-gallery .tcp-photo-gallery-item img{height:220px;}}
@media (max-width: 640px){.tcp-single-gallery .tcp-photo-gallery{grid-template-columns:1fr;}.tcp-single-gallery .tcp-photo-gallery-item img{height:240px;}}

/* V10.1.0 - Backend/Frontend Sync */
.tcp-home-booking .tcp-booking-home-card{display:grid;grid-template-columns:1.4fr .9fr;gap:28px;align-items:center;background:var(--tcp-color-white,#fff);border:1px solid rgba(7,27,74,.10);border-radius:var(--tcp-radius-large,22px);box-shadow:0 14px 40px rgba(7,27,74,.08);padding:clamp(24px,4vw,44px)}
.tcp-booking-home-copy h2{margin:8px 0 12px}.tcp-booking-home-copy p{max-width:680px}.tcp-booking-home-action{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.tcp-booking-contacts{display:flex;flex-wrap:wrap;gap:10px 18px}.tcp-booking-contacts a{font-weight:700;text-decoration:none;color:var(--tcp-primary,#071B4A)}.tcp-booking-hint{font-size:14px;opacity:.75;margin:0}.tcp-booking-shortcode{width:100%}
@media (max-width: 780px){.tcp-home-booking .tcp-booking-home-card{grid-template-columns:1fr;padding:24px}.tcp-booking-home-action .tcp-button{width:100%;text-align:center}.tcp-booking-contacts{flex-direction:column}}

/* V10.1.4 - Modulo contatti integrato con honeypot */
.tcp-contact-form-wrap {
  width: 100%;
}
.tcp-contact-form {
  display: grid;
  gap: 14px;
}
.tcp-contact-form p {
  margin: 0;
}
.tcp-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.tcp-contact-form label {
  display: block;
  font-weight: 700;
  color: var(--tcp-text, #16213a);
  margin-bottom: 6px;
}
.tcp-contact-form input[type="text"],
.tcp-contact-form input[type="email"],
.tcp-contact-form input[type="tel"],
.tcp-contact-form select,
.tcp-contact-form textarea {
  width: 100%;
  border: 1px solid rgba(7, 27, 74, .16);
  border-radius: var(--tcp-radius-medium, 14px);
  padding: 12px 14px;
  font: inherit;
  color: var(--tcp-text, #16213a);
  background: #fff;
  box-sizing: border-box;
}
.tcp-contact-form textarea {
  resize: vertical;
  min-height: 130px;
}
.tcp-contact-form input:focus,
.tcp-contact-form select:focus,
.tcp-contact-form textarea:focus {
  outline: 3px solid rgba(168, 214, 41, .35);
  border-color: var(--tcp-secondary, #A8D629);
}
.tcp-form-consent label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-weight: 500;
  line-height: 1.45;
}
.tcp-form-consent input {
  margin-top: 3px;
}
.tcp-hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.tcp-form-message {
  border-radius: var(--tcp-radius-medium, 14px);
  padding: 12px 14px;
  margin-bottom: 14px;
  font-weight: 700;
}
.tcp-form-success {
  background: #eaf8ef;
  color: #14532d;
  border: 1px solid #bbf7d0;
}
.tcp-form-error {
  background: #fff1f2;
  color: #9f1239;
  border: 1px solid #fecdd3;
}
.tcp-contact-submit {
  width: fit-content;
  cursor: pointer;
}
@media (max-width: 700px) {
  .tcp-form-grid {
    grid-template-columns: 1fr;
  }
  .tcp-contact-submit {
    width: 100%;
  }
}

/* V10.1.5 - Contact layout: info left, form right, map below */
.tcp-contacts-modern .tcp-contact-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:stretch;
  gap:28px;
}
.tcp-contacts-modern .tcp-contact-form-panel{
  display:flex;
  flex-direction:column;
  justify-content:stretch;
}
.tcp-contacts-modern .tcp-contact-form-panel .tcp-contact-form{
  height:100%;
}
.tcp-contacts-modern .tcp-contact-map-full{
  margin-top:28px;
  width:100%;
  border:1px solid rgba(7,27,74,.08);
  box-shadow:0 18px 50px rgba(7,27,74,.10);
}
.tcp-contacts-modern .tcp-contact-map-placeholder{
  margin-top:28px;
  padding:24px;
  border-radius:18px;
  border:1px dashed rgba(7,27,74,.20);
  background:#f7f9fc;
  text-align:center;
}
.tcp-contacts-modern .tcp-contact-map-full iframe{
  min-height:430px;
}
@media(max-width:900px){
  .tcp-contacts-modern .tcp-contact-layout{
    grid-template-columns:1fr;
    gap:22px;
  }
  .tcp-contacts-modern .tcp-contact-map-full{
    margin-top:22px;
  }
}
@media(max-width:640px){
  .tcp-contacts-modern .tcp-contact-map-full iframe{
    min-height:300px;
  }
}


/* V10.1.6 - Consenso privacy modulo contatti compatto */
.tcp-contact-form .tcp-form-consents{
  display:grid;
  gap:8px;
  margin:2px 0 0;
}
.tcp-contact-form .tcp-form-consent{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  align-items:start;
  gap:8px;
  margin:0;
  padding:10px 12px;
  border:1px solid rgba(7,27,74,.10);
  border-radius:var(--tcp-radius-medium,14px);
  background:rgba(7,27,74,.035);
  color:var(--tcp-text,#16213a);
  line-height:1.32;
  cursor:pointer;
}
.tcp-contact-form .tcp-form-consent-required{
  background:rgba(168,214,41,.10);
  border-color:rgba(168,214,41,.34);
}
.tcp-contact-form .tcp-form-consent-optional{
  font-size:.94rem;
  background:rgba(255,255,255,.70);
}
.tcp-contact-form .tcp-consent-check{
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  min-height:28px;
  padding-top:1px;
}
.tcp-contact-form .tcp-form-consent input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:0;
  flex:0 0 auto;
  accent-color:var(--tcp-primary,#071B4A);
}
.tcp-contact-form .tcp-consent-copy{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  font-size:.93rem;
  font-weight:500;
}
.tcp-contact-form .tcp-consent-link{
  width:max-content;
  max-width:100%;
  color:var(--tcp-primary,#071B4A);
  font-weight:800;
  text-decoration:none;
}
.tcp-contact-form .tcp-consent-link:hover,
.tcp-contact-form .tcp-consent-link:focus{
  text-decoration:underline;
}
.tcp-contact-form .tcp-form-consent:focus-within{
  outline:3px solid rgba(168,214,41,.35);
  border-color:var(--tcp-secondary,#A8D629);
}
@media(max-width:640px){
  .tcp-contact-form .tcp-form-consent{
    grid-template-columns:32px minmax(0,1fr);
    gap:8px;
    padding:10px;
  }
  .tcp-contact-form .tcp-consent-check{
    width:32px;
    min-height:32px;
  }
  .tcp-contact-form .tcp-consent-copy{
    font-size:.9rem;
    line-height:1.34;
  }
}

/* V10.1.7 - Fix contatti + Il Club Home Builder Pro */
.tcp-contacts-modern .tcp-contact-actions{
  margin-top:18px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.tcp-contacts-modern .tcp-contact-actions .tcp-button,
.tcp-contacts-modern .tcp-contact-actions .tcp-button-outline{
  min-height:42px;
  padding:11px 18px;
  border-radius:var(--tcp-radius-medium,14px);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.15;
  font-weight:800;
  text-decoration:none;
}
.tcp-contacts-modern .tcp-contact-actions .tcp-button-outline{
  border:1px solid rgba(7,27,74,.16);
  background:#fff;
  color:var(--tcp-primary,#071B4A);
  box-shadow:0 8px 20px rgba(7,27,74,.06);
}
.tcp-contacts-modern .tcp-contact-actions .tcp-button-outline:hover,
.tcp-contacts-modern .tcp-contact-actions .tcp-button-outline:focus{
  background:var(--tcp-secondary,#A8D629);
  border-color:var(--tcp-secondary,#A8D629);
  color:var(--tcp-primary,#071B4A);
}
.tcp-contacts-modern .tcp-contact-map-full,
.tcp-contacts-modern .tcp-contact-map-placeholder{
  margin-top:30px;
}
.tcp-contact-form .tcp-form-consents{
  margin-top:14px;
}
.tcp-contact-form .tcp-form-consent{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:9px 11px;
}
.tcp-contact-form .tcp-consent-check{
  width:22px;
  min-width:22px;
  min-height:22px;
  padding-top:1px;
  justify-content:flex-start;
}
.tcp-contact-form .tcp-form-consent input[type="checkbox"]{
  width:16px;
  height:16px;
  margin:2px 0 0;
}
.tcp-contact-form .tcp-consent-copy{
  flex:1 1 auto;
  display:block;
  font-size:.9rem;
  line-height:1.32;
}
.tcp-contact-form .tcp-consent-link{
  display:inline;
  margin-left:4px;
}

.tcp-home-club-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,0.9fr);
  gap:clamp(28px,4vw,56px);
  align-items:center;
}
.tcp-home-club-layout-media_left .tcp-home-club-content{order:2}
.tcp-home-club-layout-media_left .tcp-home-club-media{order:1}
.tcp-home-club-layout-center .tcp-home-club-grid{
  grid-template-columns:1fr;
  text-align:center;
  max-width:980px;
}
.tcp-home-club-layout-center .tcp-home-club-media{
  max-width:760px;
  margin:0 auto;
}
.tcp-home-club-content h2{
  margin:8px 0 12px;
  font-size:clamp(2rem,4vw,3.2rem);
  line-height:1.05;
}
.tcp-home-club-subtitle{
  margin:0 0 14px;
  font-size:clamp(1.05rem,2vw,1.25rem);
  font-weight:700;
  color:var(--tcp-primary,#071B4A);
}
.tcp-home-club-text{
  color:var(--tcp-text,#16213a);
  font-size:1.02rem;
  line-height:1.75;
}
.tcp-home-club-cta{margin-top:18px}
.tcp-home-club-media{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.tcp-home-club-media img{
  width:100%;
  min-height:160px;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:var(--tcp-radius-large,22px);
  box-shadow:var(--tcp-shadow-medium,0 18px 42px rgba(7,27,74,.12));
}
.tcp-home-club-media-count-1{grid-template-columns:1fr}
.tcp-home-club-media-count-1 img{aspect-ratio:16/10;min-height:260px}
.tcp-home-club-media-count-3 img:first-child,
.tcp-home-club-media-count-4 img:first-child{grid-row:span 2;min-height:332px}
@media(max-width:860px){
  .tcp-home-club-grid{grid-template-columns:1fr}
  .tcp-home-club-layout-media_left .tcp-home-club-content,
  .tcp-home-club-layout-media_left .tcp-home-club-media{order:initial}
  .tcp-contacts-modern .tcp-contact-map-full,
  .tcp-contacts-modern .tcp-contact-map-placeholder{margin-top:22px}
}
@media(max-width:640px){
  .tcp-contacts-modern .tcp-contact-actions .tcp-button,
  .tcp-contacts-modern .tcp-contact-actions .tcp-button-outline{width:100%}
  .tcp-home-club-media{grid-template-columns:1fr}
  .tcp-home-club-media img,
  .tcp-home-club-media-count-3 img:first-child,
  .tcp-home-club-media-count-4 img:first-child{min-height:220px;grid-row:auto}
}


/* V10.1.8 - Gallery Minimal: only photos, no visible image details */
.tcp-gallery-pro-v10 .tcp-gallery-card,
.tcp-gallery-pro-v10 .tcp-gallery-card-pro,
.tcp-photo-gallery-pro .tcp-photo-gallery-item,
.tcp-single-gallery .tcp-photo-gallery-item {
  padding: 0 !important;
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: hidden;
}
.tcp-gallery-pro-v10 .tcp-gallery-card a,
.tcp-photo-gallery-pro .tcp-photo-gallery-item a,
.tcp-single-gallery .tcp-photo-gallery-item a {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--tcp-radius-medium, 16px);
  background: #111;
  line-height: 0;
}
.tcp-gallery-pro-v10 .tcp-gallery-card img,
.tcp-photo-gallery-pro .tcp-photo-gallery-item img,
.tcp-single-gallery .tcp-photo-gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 220px;
  object-fit: cover;
  transition: transform .28s ease, filter .28s ease;
}
.tcp-gallery-pro-v10 .tcp-gallery-card strong,
.tcp-gallery-pro-v10 .tcp-gallery-card small,
.tcp-gallery-pro-v10 .tcp-gallery-card em,
.tcp-photo-gallery-pro .tcp-photo-gallery-item figcaption,
.tcp-gallery-card-pro strong,
.tcp-gallery-card-pro small,
.tcp-gallery-card-pro em {
  display: none !important;
}
.tcp-gallery-zoom-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 34px;
  line-height: 1;
  opacity: 0;
  background: rgba(0,0,0,.22);
  transition: opacity .22s ease;
  pointer-events: none;
}
.tcp-gallery-pro-v10 .tcp-gallery-card a:hover img,
.tcp-photo-gallery-pro .tcp-photo-gallery-item a:hover img,
.tcp-single-gallery .tcp-photo-gallery-item a:hover img {
  transform: scale(1.045);
  filter: brightness(.88);
}
.tcp-gallery-pro-v10 .tcp-gallery-card a:hover .tcp-gallery-zoom-icon,
.tcp-photo-gallery-pro .tcp-photo-gallery-item a:hover .tcp-gallery-zoom-icon,
.tcp-single-gallery .tcp-photo-gallery-item a:hover .tcp-gallery-zoom-icon,
.tcp-gallery-pro-v10 .tcp-gallery-card a:focus-visible .tcp-gallery-zoom-icon,
.tcp-photo-gallery-pro .tcp-photo-gallery-item a:focus-visible .tcp-gallery-zoom-icon,
.tcp-single-gallery .tcp-photo-gallery-item a:focus-visible .tcp-gallery-zoom-icon {
  opacity: 1;
}
.tcp-gallery-grid,
.tcp-photo-gallery {
  gap: var(--tcp-gallery-gap, 16px);
}
.tcp-gallery-placeholder {
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 42px;
  background: rgba(0,0,0,.06);
}
@media (max-width: 640px) {
  .tcp-gallery-pro-v10 .tcp-gallery-card img,
  .tcp-photo-gallery-pro .tcp-photo-gallery-item img,
  .tcp-single-gallery .tcp-photo-gallery-item img {
    min-height: 210px;
  }
}


/* V10.2 Footer quick links */
.tcp-footer-quick-links{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;}
.tcp-footer-quick-links a{text-decoration:none;color:var(--tcp-footer-link-color,#fff);}
.tcp-footer-quick-links a:hover,.tcp-footer-quick-links a:focus{color:var(--tcp-footer-link-hover-color,var(--tcp-secondary,#A8D629));text-decoration:underline;}


/* V10.2.1 Campi Pro Refresh */
.tcp-court-card-minimal .tcp-court-body > p,
.tcp-court-card-minimal .tcp-court-number,
.tcp-court-card-minimal .tcp-court-type{display:none!important;}
.tcp-court-card-minimal .tcp-court-body{padding:18px;}
.tcp-court-card-minimal h3{margin:0 0 12px;font-size:1.15rem;line-height:1.25;}
.tcp-court-badges-minimal{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;}
.tcp-court-badges-minimal span{font-size:.82rem;padding:6px 10px;border-radius:999px;background:rgba(20,120,80,.10);color:var(--tcp-primary,#12613a);font-weight:700;}
.tcp-court-card-minimal .tcp-court-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:auto;}
.tcp-court-card-minimal .tcp-read-more,
.tcp-court-card-minimal .tcp-court-book{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:999px;padding:10px 16px;text-decoration:none;font-weight:800;line-height:1.1;}
.tcp-court-card-minimal .tcp-read-more{background:var(--tcp-vc-btn-bg,var(--tcp-primary,#12613a));color:var(--tcp-vc-btn-text,#fff);}
.tcp-court-card-minimal .tcp-court-book{background:rgba(20,120,80,.10);color:var(--tcp-primary,#12613a);}
.tcp-single-court-pro .tcp-court-gallery-wrap{margin-top:44px;}
.tcp-section-heading-left{text-align:left;margin-bottom:18px;}
.tcp-court-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 34px;}
.tcp-court-gallery .tcp-court-gallery-item{position:relative;display:block;overflow:hidden;border-radius:var(--tcp-radius-medium,18px);background:#f3f5f7;box-shadow:var(--tcp-shadow-small,0 8px 24px rgba(0,0,0,.08));aspect-ratio:4/3;}
.tcp-court-gallery .tcp-court-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease, filter .25s ease;}
.tcp-court-gallery .tcp-court-gallery-item:hover img{transform:scale(1.045);filter:brightness(.82);}
.tcp-court-gallery .tcp-gallery-zoom-icon{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);color:var(--tcp-primary,#12613a);font-size:24px;font-weight:900;opacity:0;transition:opacity .2s ease;}
.tcp-court-gallery .tcp-court-gallery-item:hover .tcp-gallery-zoom-icon,
.tcp-court-gallery .tcp-court-gallery-item:focus .tcp-gallery-zoom-icon{opacity:1;}
.tcp-lightbox-pro::after{content:attr(data-counter);position:fixed;left:50%;bottom:28px;transform:translateX(-50%);color:#fff;background:rgba(0,0,0,.42);border-radius:999px;padding:7px 13px;font-weight:700;font-size:13px;}
@media(max-width:1024px){.tcp-court-gallery{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:760px){.tcp-court-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.tcp-single-court-pro .tcp-court-gallery-wrap{margin-top:30px}.tcp-court-card-minimal .tcp-court-actions{flex-direction:column;align-items:stretch}.tcp-court-card-minimal .tcp-read-more,.tcp-court-card-minimal .tcp-court-book{width:100%;}}


/* V10.2.2 - WPBakery Campo Singolo Pro */
.tcp-single-court-builder{background:var(--tcp-vc-bg, transparent);}
.tcp-single-court-builder .tcp-single-court-hero{margin-bottom:clamp(28px,4vw,54px);}
.tcp-single-court-builder .tcp-single-court-actions{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap;}
.tcp-single-court-builder .tcp-court-gallery-wrap{margin-top:clamp(26px,4vw,56px);}
.tcp-single-court-builder .tcp-court-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--tcp-gallery-gap,16px);}
.tcp-single-court-builder .tcp-court-gallery-layout-masonry .tcp-court-gallery{columns:3 240px;display:block;}
.tcp-single-court-builder .tcp-court-gallery-layout-masonry .tcp-court-gallery-item{display:block;margin:0 0 var(--tcp-gallery-gap,16px);break-inside:avoid;}
.tcp-single-court-builder-content{margin-top:clamp(28px,4vw,56px);}
.tcp-placeholder{padding:20px;border:1px dashed rgba(0,0,0,.18);border-radius:var(--tcp-radius-medium,14px);background:rgba(0,0,0,.03);}
@media (max-width: 900px){.tcp-single-court-builder .tcp-court-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 640px){.tcp-single-court-builder .tcp-court-gallery{grid-template-columns:1fr}.tcp-single-court-builder .tcp-single-court-actions .tcp-btn{width:100%;justify-content:center;}}


/* V10.2.3 - Campo Singolo Pro: descrizione breve sotto titolo */
.tcp-single-court-short-description{
  margin: 12px 0 18px;
  max-width: 680px;
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  line-height: 1.55;
  color: color-mix(in srgb, var(--tcp-text, #1f2937) 82%, transparent);
}
.tcp-single-court-builder-hero .tcp-single-court-actions{ margin-top: 18px; }
@media (max-width: 767px){
  .tcp-single-court-short-description{ margin: 10px 0 16px; font-size: 0.98rem; }
}

/* V10.2.4 - Campo Singolo Pro: contenuto sotto titolo */
.tcp-single-court-inline-content{
  margin: 14px 0 18px;
  max-width: 760px;
}
.tcp-single-court-inline-content > :first-child{margin-top:0;}
.tcp-single-court-inline-content > :last-child{margin-bottom:0;}
.tcp-single-court-inline-content p{line-height:1.65;}
.tcp-single-court-builder-content{display:none;}

/* V10.2.5 - Responsive embeds inside WPBakery Campo Singolo Pro */
.tcp-single-court-inline-content iframe,
.tcp-vc-single-court-pro .tcp-content iframe{
  display:block;
  width:100%;
  max-width:100%;
  min-height:280px;
  border:0;
  border-radius:var(--tcp-radius-medium, 16px);
  margin:14px 0;
}


/* V10.2.6 - Campo Singolo Pro: embed completi anche senza testo */
.tcp-single-court-inline-content .wp-block-embed,
.tcp-single-court-inline-content .wp-block-embed__wrapper,
.tcp-vc-single-court-pro .tcp-content .wp-block-embed,
.tcp-vc-single-court-pro .tcp-content .wp-block-embed__wrapper{
  width:100%;
  max-width:100%;
  margin:14px 0;
}
.tcp-single-court-inline-content iframe,
.tcp-vc-single-court-pro .tcp-content iframe{
  aspect-ratio:16/9;
  height:auto;
}

/* V10.2.9 - Global Page Hero */
.tcp-page-hero{
  min-height:var(--tcp-page-hero-height,360px);
  display:flex;
  align-items:center;
  background-size:cover;
  background-position:center;
  position:relative;
  isolation:isolate;
  color:#fff;
  overflow:hidden;
}
.tcp-page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
}
.tcp-page-hero-overlay-dark::before{background:linear-gradient(90deg,rgba(7,27,74,.78),rgba(7,27,74,.42));}
.tcp-page-hero-overlay-light::before{background:rgba(255,255,255,.68);}
.tcp-page-hero-overlay-light{color:var(--tcp-primary,#071B4A);}
.tcp-page-hero-overlay-none::before{display:none;}
.tcp-page-hero-inner{padding-top:56px;padding-bottom:56px;}
.tcp-page-hero-align-center{text-align:center;}
.tcp-page-hero-align-left{text-align:left;}
.tcp-page-hero-align-right{text-align:right;}
.tcp-page-hero-title{
  font-family:var(--tcp-font-hero,var(--tcp-font-heading));
  font-size:clamp(2.2rem,5vw,var(--tcp-font-size-h1,64px));
  line-height:1.05;
  margin:0 0 14px;
  color:inherit;
}
.tcp-page-hero-subtitle{
  max-width:760px;
  margin:0 0 24px;
  font-size:clamp(1.05rem,1.6vw,1.35rem);
  line-height:1.55;
  color:inherit;
  opacity:.94;
}
.tcp-page-hero-align-center .tcp-page-hero-subtitle{margin-left:auto;margin-right:auto;}
.tcp-page-hero-align-right .tcp-page-hero-subtitle{margin-left:auto;}
.tcp-page-hero-btn{margin-top:4px;}
@media(max-width:767px){
  .tcp-page-hero{min-height:var(--tcp-page-hero-mobile-height,240px);}
  .tcp-page-hero-inner{padding-top:38px;padding-bottom:38px;}
  .tcp-page-hero-align-right{text-align:left;}
  .tcp-page-hero-subtitle{font-size:1rem;}
}


/* V10.3.1 — Layout spacing controllato dal Design System */
.tcp-container,
.tcp-home-section .tcp-container{
  width:min(var(--tcp-container-width,1180px), calc(100% - (var(--tcp-container-padding-desktop,24px) * 2)))!important;
  max-width:var(--tcp-container-width,1180px);
  padding-left:0!important;
  padding-right:0!important;
}
.site-main#main-content:not(.tcp-home-builder-front):not(.tcp-static-front-page),
main#main-content.tcp-section:not(.tcp-home-builder-front):not(.tcp-static-front-page){
  padding-top:var(--tcp-main-padding-top,60px)!important;
  padding-bottom:var(--tcp-main-padding-bottom,60px)!important;
}
.tcp-page-hero + .site-main#main-content,
.tcp-page-hero + main#main-content.tcp-section{
  padding-top:var(--tcp-main-padding-top,60px)!important;
}
.tcp-home-section{
  padding-top:var(--tcp-home-section-spacing,72px)!important;
  padding-bottom:var(--tcp-home-section-spacing,72px)!important;
}
@media(max-width:1024px){
  .tcp-container,
  .tcp-home-section .tcp-container{
    width:min(var(--tcp-container-width,1180px), calc(100% - (var(--tcp-container-padding-tablet,20px) * 2)))!important;
  }
}
@media(max-width:767px){
  .tcp-container,
  .tcp-home-section .tcp-container{
    width:min(var(--tcp-container-width,1180px), calc(100% - (var(--tcp-container-padding-mobile,16px) * 2)))!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .site-main#main-content:not(.tcp-home-builder-front):not(.tcp-static-front-page),
  main#main-content.tcp-section:not(.tcp-home-builder-front):not(.tcp-static-front-page){
    padding-top:calc(var(--tcp-main-padding-top,60px) * .66)!important;
    padding-bottom:calc(var(--tcp-main-padding-bottom,60px) * .66)!important;
  }
  .tcp-home-section{
    padding-top:calc(var(--tcp-home-section-spacing,72px) * .62)!important;
    padding-bottom:calc(var(--tcp-home-section-spacing,72px) * .62)!important;
  }
}

/* V10.3.2 - WPBakery Fotogallery Pro refresh */
.tcp-photo-gallery-pro .tcp-photo-gallery{
  gap:clamp(10px,1.4vw,18px);
}
.tcp-photo-gallery-pro .tcp-photo-gallery-item{
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  border-radius:var(--tcp-radius-medium,14px);
  overflow:hidden;
}
.tcp-photo-gallery-pro .tcp-photo-gallery-item a{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  overflow:hidden;
  border-radius:inherit;
  background:#f3f4f6;
}
.tcp-photo-gallery-pro .tcp-gallery-layout-grid .tcp-photo-gallery-item a{
  aspect-ratio:4/3;
}
.tcp-photo-gallery-pro .tcp-photo-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .25s ease, filter .25s ease;
}
.tcp-photo-gallery-pro .tcp-gallery-layout-masonry .tcp-photo-gallery-item img{
  height:auto;
  object-fit:cover;
}
.tcp-photo-gallery-pro .tcp-photo-gallery-item:hover img{
  transform:scale(1.045);
  filter:saturate(1.06);
}
.tcp-photo-gallery-pro .tcp-gallery-zoom-icon{
  position:absolute;
  inset:auto 12px 12px auto;
  width:38px;
  height:38px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(0,0,0,.58);
  color:#fff;
  opacity:0;
  transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease;
  font-weight:900;
  line-height:1;
}
.tcp-photo-gallery-pro .tcp-photo-gallery-item:hover .tcp-gallery-zoom-icon,
.tcp-photo-gallery-pro .tcp-photo-gallery-item a:focus-visible .tcp-gallery-zoom-icon{
  opacity:1;
  transform:translateY(0);
}
.tcp-photo-gallery-pro .tcp-photo-gallery-item figcaption{
  display:block;
  padding:8px 2px 0;
  background:transparent;
  color:var(--tcp-color-text,#111827);
  font-size:13px;
  font-weight:700;
}
.tcp-photo-gallery-pro .tcp-gallery-layout-grid{
  display:grid!important;
}
.tcp-photo-gallery-pro .tcp-gallery-layout-masonry{
  display:block!important;
  columns:var(--tcp-gallery-columns,4) 230px;
  column-gap:clamp(10px,1.4vw,18px);
}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-2{--tcp-gallery-columns:2;grid-template-columns:repeat(2,minmax(0,1fr));}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-3{--tcp-gallery-columns:3;grid-template-columns:repeat(3,minmax(0,1fr));}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-4{--tcp-gallery-columns:4;grid-template-columns:repeat(4,minmax(0,1fr));}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-5{--tcp-gallery-columns:5;grid-template-columns:repeat(5,minmax(0,1fr));}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-6{--tcp-gallery-columns:6;grid-template-columns:repeat(6,minmax(0,1fr));}
.tcp-photo-gallery-pro .tcp-gallery-layout-masonry .tcp-photo-gallery-item{
  break-inside:avoid;
  margin:0 0 clamp(10px,1.4vw,18px)!important;
}
@media (max-width: 900px){
  .tcp-photo-gallery-pro .tcp-photo-gallery-cols-4,
  .tcp-photo-gallery-pro .tcp-photo-gallery-cols-5,
  .tcp-photo-gallery-pro .tcp-photo-gallery-cols-6{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width: 640px){
  .tcp-photo-gallery-pro .tcp-photo-gallery,
  .tcp-photo-gallery-pro .tcp-photo-gallery-cols-2,
  .tcp-photo-gallery-pro .tcp-photo-gallery-cols-3,
  .tcp-photo-gallery-pro .tcp-photo-gallery-cols-4,
  .tcp-photo-gallery-pro .tcp-photo-gallery-cols-5,
  .tcp-photo-gallery-pro .tcp-photo-gallery-cols-6{grid-template-columns:repeat(2,minmax(0,1fr));}
  .tcp-photo-gallery-pro .tcp-gallery-layout-masonry{columns:2 140px;}
}


/* V10.3.4 - WPBakery Fotogallery + spacing sync */
.tcp-vc-design-manager .tcp-container{
  position:relative;
}
.tcp-vc-design-manager .tcp-section-heading h2,
.tcp-vc-design-manager h1,
.tcp-vc-design-manager h2,
.tcp-vc-design-manager h3{
  color:var(--tcp-vc-title-color, inherit);
  font-family:var(--tcp-vc-title-font, inherit);
  font-weight:var(--tcp-vc-title-weight, inherit);
}
.tcp-vc-design-manager,
.tcp-vc-design-manager p,
.tcp-vc-design-manager small,
.tcp-vc-design-manager li{
  color:var(--tcp-vc-text-color, inherit);
  font-family:var(--tcp-vc-text-font, inherit);
  font-weight:var(--tcp-vc-text-weight, inherit);
  line-height:var(--tcp-vc-line-height, inherit);
}
.tcp-vc-design-manager a:not(.tcp-btn):not(.tcp-button){color:var(--tcp-vc-link-color, inherit);}
.tcp-vc-design-manager .tcp-btn,
.tcp-vc-design-manager .tcp-button{
  background:var(--tcp-vc-btn-bg, var(--tcp-primary, #12613a));
  color:var(--tcp-vc-btn-text, #fff);
}
.tcp-vc-design-manager .tcp-btn:hover,
.tcp-vc-design-manager .tcp-button:hover{
  background:var(--tcp-vc-btn-hover-bg, var(--tcp-primary-dark, #0b4227));
  color:var(--tcp-vc-btn-hover-text, #fff);
}
.tcp-vc-design-manager .tcp-card,
.tcp-vc-design-manager .tcp-court-card,
.tcp-vc-design-manager .tcp-gallery-card,
.tcp-vc-design-manager .tcp-photo-gallery-item,
.tcp-vc-design-manager .tcp-contact-card{
  border-radius:var(--tcp-vc-card-radius, var(--tcp-radius, 14px));
  min-height:var(--tcp-vc-card-min-height, auto);
  border-color:var(--tcp-vc-border-color, transparent);
  border-width:var(--tcp-vc-card-border-width, 0);
  box-shadow:0 12px 32px rgba(0,0,0,var(--tcp-vc-card-shadow-alpha, .08));
}
.tcp-vc-design-manager .tcp-card,
.tcp-vc-design-manager .tcp-contact-card{padding:var(--tcp-vc-card-padding, inherit);}
.tcp-vc-design-manager .tcp-grid,
.tcp-vc-design-manager .tcp-photo-gallery{
  grid-template-columns:repeat(var(--tcp-vc-cols-desktop, 3), minmax(0,1fr));
}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-2{--tcp-vc-cols-desktop:2;}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-3{--tcp-vc-cols-desktop:3;}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-4{--tcp-vc-cols-desktop:4;}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-5{--tcp-vc-cols-desktop:5;}
.tcp-photo-gallery-pro .tcp-photo-gallery-cols-6{--tcp-vc-cols-desktop:6;}
.tcp-photo-gallery-pro .tcp-gallery-layout-grid .tcp-photo-gallery-item a,
.tcp-single-gallery .tcp-gallery-layout-grid .tcp-photo-gallery-item a{aspect-ratio:4/3;}
.tcp-photo-gallery-pro .tcp-gallery-layout-masonry,
.tcp-single-gallery .tcp-gallery-layout-masonry{
  columns:var(--tcp-vc-cols-desktop,4) 220px;
  display:block;
}
.tcp-photo-gallery-pro .tcp-gallery-layout-masonry .tcp-photo-gallery-item,
.tcp-single-gallery .tcp-gallery-layout-masonry .tcp-photo-gallery-item{
  display:block;
  margin:0 0 var(--tcp-gallery-gap,16px);
  break-inside:avoid;
}
.tcp-single-gallery.tcp-photo-gallery-captions-off .tcp-photo-gallery-item figcaption{display:none!important;}
@media(max-width:980px){
  .tcp-vc-design-manager .tcp-grid,
  .tcp-vc-design-manager .tcp-photo-gallery{grid-template-columns:repeat(var(--tcp-vc-cols-tablet, 2), minmax(0,1fr));}
  .tcp-photo-gallery-pro .tcp-gallery-layout-masonry,
  .tcp-single-gallery .tcp-gallery-layout-masonry{columns:var(--tcp-vc-cols-tablet,2) 220px;}
}
@media(max-width:640px){
  .tcp-vc-design-manager .tcp-grid,
  .tcp-vc-design-manager .tcp-photo-gallery{grid-template-columns:repeat(var(--tcp-vc-cols-mobile, 1), minmax(0,1fr));}
  .tcp-photo-gallery-pro .tcp-gallery-layout-masonry,
  .tcp-single-gallery .tcp-gallery-layout-masonry{columns:var(--tcp-vc-cols-mobile,1) 220px;}
}


/* V10.3.8 - Area privata + Hero responsive background fix */
.tcp-hero-single-bg{
  position:absolute;
  inset:0;
  z-index:0;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:var(--tcp-hero-bg-position,center center);
  opacity:1;
  transform:scale(1);
  will-change:transform;
}
.tcp-hero-slider .tcp-hero-slide,
.tcp-hero-slider-pro .tcp-hero-slide{
  background-size:cover;
  background-repeat:no-repeat;
  background-position:var(--tcp-hero-bg-position,center center);
}
/* Evita il vecchio Ken Burns basato su background-size: 100% auto,
   che su tablet/mobile poteva lasciare aree scoperte o tagli anomali. */
.tcp-hero-ken-burns.tcp-hero-image{animation:none;}
.tcp-hero-ken-burns .tcp-hero-single-bg{animation:tcpHeroSingleScale 14s ease-in-out infinite alternate;}
@keyframes tcpHeroSingleScale{from{transform:scale(1.01)}to{transform:scale(1.08)}}
@media(max-width:900px){
  .tcp-hero-single-bg,
  .tcp-hero-slider .tcp-hero-slide,
  .tcp-hero-slider-pro .tcp-hero-slide{background-position:var(--tcp-hero-bg-position-tablet,var(--tcp-hero-bg-position,center center));}
}
@media(max-width:600px){
  .tcp-hero-single-bg,
  .tcp-hero-slider .tcp-hero-slide,
  .tcp-hero-slider-pro .tcp-hero-slide{background-position:var(--tcp-hero-bg-position-mobile,var(--tcp-hero-bg-position-tablet,var(--tcp-hero-bg-position,center center)));}
  .tcp-hero-ken-burns .tcp-hero-single-bg{animation:none;transform:scale(1.01);}
  .tcp-topbar .tcp-container{gap:8px 14px;justify-content:center;text-align:center;}
  .tcp-topbar-private-link{width:auto;}
}
.tcp-page-hero{background-position:var(--tcp-page-hero-bg-position,center center);background-repeat:no-repeat;}
@media(max-width:767px){.tcp-page-hero{background-position:var(--tcp-page-hero-bg-position-mobile,var(--tcp-page-hero-bg-position,center center));}}


/* Temporary booking/weather notice: immediately above the Hero/content */
.tcp-booking-weather-banner{position:relative;z-index:40;background:#b42318;color:#fff;border-top:4px solid #7a1710;border-bottom:4px solid #7a1710;box-shadow:0 8px 24px rgba(125,24,17,.28);font-family:var(--tcp-font-body,system-ui,sans-serif)}
.tcp-booking-weather-banner .tcp-container{min-height:64px;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;padding-top:12px;padding-bottom:12px}
.tcp-booking-weather-banner strong{font-size:clamp(16px,2vw,20px);line-height:1.3;letter-spacing:.01em;font-weight:900}
.tcp-booking-weather-banner-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#fff;color:#b42318;font-size:21px;line-height:1;font-weight:900}
.tcp-booking-weather-banner-label{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border:2px solid rgba(255,255,255,.82);border-radius:999px;font-size:11px;line-height:1;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
@media (max-width:767px){.tcp-booking-weather-banner .tcp-container{min-height:58px;gap:8px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}.tcp-booking-weather-banner strong{width:100%;font-size:16px}.tcp-booking-weather-banner-icon{width:30px;height:30px;flex-basis:30px;font-size:18px}.tcp-booking-weather-banner-label{min-height:26px}}
