/* ClubConnect global width overrides */
:root,
html,
body,
.wp-site-blocks {
  --wp--style--global--content-size: 1280px;
  --wp--style--global--wide-size: 1280px;
}

 

/* Sponsor detail: copertina più bassa con crop verticale */
.cc-sponsor__cover { position: relative; width: 100%; height: 160px; overflow: hidden; border-radius: 6px; background: #f3f4f6; }
.cc-sponsor__cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
@media (max-width: 640px) { .cc-sponsor__cover { height: 140px; } }

/* Single Sponsor: rimuovi blocco meta (data, ecc.) sotto il titolo */
body.single.single-sponsor .wp-block-group.is-content-justification-left.is-layout-flex,
body.single.single-sponsor .wp-block-post-date,
body.single.single-sponsor .wp-block-post-author,
body.single.single-sponsor .wp-block-post-terms {
  display: none !important;
}

/* Single Sponsor: featured image sopra al titolo con crop dall'alto */
body.single.single-sponsor .wp-block-post-featured-image {
  height: auto;
  overflow: visible;
  border-radius: 0 !important;
}
body.single.single-sponsor .wp-block-post-featured-image a {
  display: block;
  height: auto;
}
body.single.single-sponsor .wp-block-post-featured-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: initial;
  object-position: initial;
  border-radius: 0 !important;
}
/* nessun altezza forzata su mobile: manteniamo proporzioni naturali */

/* Colore link SOLO nel dettaglio Sponsor */
body.single.single-sponsor .cc-sponsor-detail a,
body.single.single-sponsor .cc-sponsor-detail a:visited {
  color: #540201;
}
body.single.single-sponsor .cc-sponsor-detail a:hover,
body.single.single-sponsor .cc-sponsor-detail a:focus {
  color: #540201;
}

/* Nascondi navigazione precedente/successivo nel single sponsor */
body.single.single-sponsor nav[aria-label="Articoli"],
body.single.single-sponsor .wp-block-post-navigation-link,
body.single.single-sponsor .post-navigation-link-previous,
body.single.single-sponsor .post-navigation-link-next {
  display: none !important;
}

/* Nascondi navigazione precedente/successivo nel single event e single offer */
body.single.single-event nav[aria-label="Articoli"],
body.single.single-event .wp-block-post-navigation-link,
body.single.single-event .post-navigation-link-previous,
body.single.single-event .post-navigation-link-next,
body.single.single-offer nav[aria-label="Articoli"],
body.single.single-offer .wp-block-post-navigation-link,
body.single.single-offer .post-navigation-link-previous,
body.single.single-offer .post-navigation-link-next {
  display: none !important;
}

/* Nascondi il titolo automatico del tema nelle pagine liste Offerte/Eventi (evita doppio H1) */
body.page.page-offerte .wp-block-post-title,
body.page.page-eventi .wp-block-post-title { display: none !important; }
/* Nascondi il titolo automatico del tema nei singoli Offerta/Evento quando il template ClubConnect già inserisce l'H1 custom */
body.single.single-offer .wp-block-post-title,
body.single.single-event .wp-block-post-title { display: none !important; }

/* Carosello sponsor correlati */
body.single.single-sponsor .cc-carousel {
  display: grid;
  grid-auto-flow: column;
  --cc-carousel-gap: 16px;
  /* Base: prova a mostrare 4 card, con min più basso per ampliare il numero visibile su container stretti */
  grid-auto-columns: clamp(140px, calc((100% - (3 * var(--cc-carousel-gap))) / 4), 220px);
  gap: var(--cc-carousel-gap);
  overflow-x: auto;
  padding: 8px 2px 12px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none; /* IE e Edge */
  scrollbar-width: none; /* Firefox */
  cursor: grab;
  user-select: none;
  touch-action: pan-y pan-x;
  width: 100%;
}
body.single.single-sponsor .cc-carousel::-webkit-scrollbar { display: none; }
body.single.single-sponsor .cc-carousel.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
}
body.single.single-sponsor .cc-carousel__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid #eee;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  scroll-snap-align: start;
}
body.single.single-sponsor .cc-carousel__thumb img,
body.single.single-sponsor .cc-thumb-placeholder {
  width: 100%;
  height: 100px;
  object-fit: contain;
  background: #fafafa;
  border: 1px dashed #eee;
  border-radius: 4px;
}
body.single.single-sponsor .cc-carousel__name {
  font-weight: 600;
  color: #111827;
  text-align: center;
}

/* Single Sponsor: card layout and map */
body.single.single-sponsor .cc-sponsor-detail { display: grid; gap: 1.5rem; }
body.single.single-sponsor .cc-sponsor-card { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 1024px) {
  body.single.single-sponsor .cc-sponsor-card { grid-template-columns: 1.2fr 0.8fr; align-items: start; }
}
body.single.single-sponsor .cc-sponsor__header { display: grid; grid-template-columns: 160px 1fr; gap: 1rem; align-items: center; }
body.single.single-sponsor .cc-sponsor__logo { width: 160px; height: 160px; object-fit: contain; background: #fafafa; border: 1px dashed #eee; border-radius: 4px; }
body.single.single-sponsor .cc-sponsor__name { margin: 0; }
body.single.single-sponsor .cc-sponsor__meta { color: #64748B; font-size: .95rem; }
body.single.single-sponsor .cc-chip { margin-right: .5rem; }
body.single.single-sponsor .cc-sponsor__content { line-height: 1.7; }
body.single.single-sponsor .cc-sponsor-card__col { display: grid; gap: 1rem; }
body.single.single-sponsor .cc-sponsor-card__aside { display: grid; gap: 1rem; }
body.single.single-sponsor .cc-sponsor__sections { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 768px) { body.single.single-sponsor .cc-sponsor__sections { grid-template-columns: 1fr 1fr; } }
body.single.single-sponsor .cc-section { border: 1px solid #eee; border-radius: 8px; padding: 1rem; background: #fff; }
body.single.single-sponsor .cc-section h3 { margin-top: 0; }
body.single.single-sponsor .cc-map { border: 1px solid #eee; border-radius: 8px; overflow: hidden; background: #f8fafc; }
body.single.single-sponsor .cc-map__frame { width: 100%; aspect-ratio: 4/3; border: 0; }
body.single.single-sponsor .cc-website { border: 1px solid #eee; border-radius: 8px; padding: 1rem; background: #fff; }
body.single.single-sponsor .cc-carousel__sector {
  font-size: 12px;
  color: #6b7280;
  text-align: center;
}
/* Contenitore esterno con frecce ai lati */
body.single.single-sponsor .cc-carousel-outer {
  display: block;
}
body.single.single-sponsor .cc-carousel-wrap { flex: 1 1 auto; width: 100%; }
/* Nascondi frecce: non necessarie con swipe/drag */
body.single.single-sponsor .cc-carousel__prev,
body.single.single-sponsor .cc-carousel__next { display: none !important; }
body.single.single-sponsor .cc-carousel__prev:disabled,
body.single.single-sponsor .cc-carousel__next:disabled {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}
@media (max-width: 640px) {
  /* Mobile: mostra 1 card intera + una tagliata per incentivare lo swipe */
  body.single.single-sponsor .cc-carousel {
    /* Larghezza card ~100% meno un offset, con limiti min/max */
    grid-auto-columns: clamp(200px, calc(100% - 64px), 290px) !important;
  }
}

/* Desktop: aumenta le card visibili nel carosello correlati */
@media (min-width: 1024px) and (max-width: 1399px) {
  body.single.single-sponsor .cc-carousel { grid-auto-columns: calc((100% - (3 * var(--cc-carousel-gap))) / 4); }
}
@media (min-width: 1400px) {
  body.single.single-sponsor .cc-carousel { grid-auto-columns: calc((100% - (4 * var(--cc-carousel-gap))) / 5); }
}

/* Carosello per Eventi e Offerte: stesse regole del single Sponsor */
body.single.single-event .cc-carousel,
body.single.single-offer .cc-carousel {
  display: grid;
  grid-auto-flow: column;
  --cc-carousel-gap: 16px;
  grid-auto-columns: clamp(140px, calc((100% - (3 * var(--cc-carousel-gap))) / 4), 220px);
  gap: var(--cc-carousel-gap);
  overflow-x: auto;
  padding: 8px 2px 12px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
  touch-action: pan-y pan-x;
  width: 100%;
}
body.single.single-event .cc-carousel::-webkit-scrollbar,
body.single.single-offer .cc-carousel::-webkit-scrollbar { display: none; }
body.single.single-event .cc-carousel.is-dragging,
body.single.single-offer .cc-carousel.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
}
body.single.single-event .cc-carousel__item,
body.single.single-offer .cc-carousel__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid #eee;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  scroll-snap-align: start;
}
body.single.single-event .cc-carousel__thumb img,
body.single.single-event .cc-thumb-placeholder,
body.single.single-offer .cc-carousel__thumb img,
body.single.single-offer .cc-thumb-placeholder {
  width: 100%;
  height: 100px;
  object-fit: contain;
  background: #fafafa;
  border: 1px dashed #eee;
  border-radius: 4px;
}
body.single.single-event .cc-carousel__name,
body.single.single-offer .cc-carousel__name {
  font-weight: 600;
  color: #111827;
  text-align: center;
}
body.single.single-event .cc-carousel__sector,
body.single.single-offer .cc-carousel__sector {
  font-size: 12px;
  color: #6b7280;
  text-align: center;
}
body.single.single-event .cc-carousel-outer,
body.single.single-offer .cc-carousel-outer { display: block; }
body.single.single-event .cc-carousel-wrap,
body.single.single-offer .cc-carousel-wrap { flex: 1 1 auto; width: 100%; }
body.single.single-event .cc-carousel__prev,
body.single.single-event .cc-carousel__next,
body.single.single-offer .cc-carousel__prev,
body.single.single-offer .cc-carousel__next { display: none !important; }
body.single.single-event .cc-carousel__prev:disabled,
body.single.single-event .cc-carousel__next:disabled,
body.single.single-offer .cc-carousel__prev:disabled,
body.single.single-offer .cc-carousel__next:disabled {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}
@media (max-width: 640px) {
  /* Mobile: mostra 1 card intera + una tagliata per incentivare lo swipe */
  body.single.single-event .cc-carousel,
  body.single.single-offer .cc-carousel { grid-auto-columns: clamp(200px, calc(100% - 64px), 360px); }
}

@media (min-width: 1024px) and (max-width: 1399px) {
  body.single.single-event .cc-carousel,
  body.single.single-offer .cc-carousel { grid-auto-columns: calc((100% - (3 * var(--cc-carousel-gap))) / 4); }
}
@media (min-width: 1400px) {
  body.single.single-event .cc-carousel,
body.single.single-offer .cc-carousel { grid-auto-columns: calc((100% - (4 * var(--cc-carousel-gap))) / 5); }
}

/* Separatore prima della paginazione in liste Eventi/Offerte */
.cc-pagination__separator {
  display: none; /* mostrato via JS solo quando la paginazione è presente */
  border: 0;
  height: 0;
  margin-top: 84px;
  margin-bottom: 24px;
  border-top: 1px solid #e5e7eb; /* grigio chiaro, coerente con i bordi delle card */
}

/* Link "Torna su" vicino alla paginazione (desktop) */
.cc-pagination__top {
  background: none;
  border: none;
  color: #2563eb; /* blu accessibile */
  font-size: var(--cc-font-size-sm, 0.875rem);
  cursor: pointer;
  padding: 0;
  margin-left: .75rem;
}
.cc-pagination__top:hover { text-decoration: underline; }

/* =========================================
   PORTAL PAGE CAROUSELS (#cc-public-portal)
   ========================================= */
#cc-public-portal .cc-carousel {
  display: grid;
  grid-auto-flow: column;
  --cc-carousel-gap: 16px;
  /* Desktop default: ~4 cards visible */
  grid-auto-columns: clamp(260px, calc((100% - (3 * var(--cc-carousel-gap))) / 4), 320px);
  gap: var(--cc-carousel-gap);
  overflow-x: auto;
  padding: 8px 2px 20px; /* Extra bottom padding for shadows */
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
  touch-action: pan-y pan-x;
  width: 100%;
}
#cc-public-portal .cc-carousel::-webkit-scrollbar { display: none; }
#cc-public-portal .cc-carousel.is-dragging { cursor: grabbing; scroll-snap-type: none; }

/* Responsive grid columns */
@media (min-width: 1024px) and (max-width: 1399px) {
  #cc-public-portal .cc-carousel { grid-auto-columns: calc((100% - (3 * var(--cc-carousel-gap))) / 4); }
}
@media (min-width: 1400px) {
  #cc-public-portal .cc-carousel { grid-auto-columns: calc((100% - (4 * var(--cc-carousel-gap))) / 5); }
}

#cc-public-portal .cc-carousel__item {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  scroll-snap-align: start;
  height: 100%;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
  transition: transform 0.2s, box-shadow 0.2s;
}
#cc-public-portal .cc-carousel__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04);
}

#cc-public-portal .cc-carousel__thumb {
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: 6px;
  background: #f3f4f6;
}
#cc-public-portal .cc-carousel__thumb img,
#cc-public-portal .cc-thumb-placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

#cc-public-portal .cc-carousel__name {
  font-weight: 600;
  color: #111827;
  font-size: 1.1rem;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#cc-public-portal .cc-carousel__sector {
  font-size: 0.875rem;
  color: #6b7280;
  margin-top: auto; /* Push to bottom */
}

/* Controls positioning - Moved below carousel as requested */
#cc-public-portal .cc-carousel-outer {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: center; /* Center buttons below */
}
#cc-public-portal .cc-carousel-wrap {
  width: 100%;
  order: 1;
}

#cc-public-portal .cc-carousel__prev,
#cc-public-portal .cc-carousel__next {
  appearance: none;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #111827;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* Static position for flow layout below */
  position: static;
  transform: none;
  z-index: 10;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: all 0.2s;
  order: 2; /* Below wrap */
  margin-top: 8px;
}
#cc-public-portal .cc-carousel__prev:hover,
#cc-public-portal .cc-carousel__next:hover {
  background: #f9fafb;
  border-color: #d1d5db;
  color: #000;
  transform: translateY(-1px);
}
/* Remove specific positioning */
/* #cc-public-portal .cc-carousel__prev { left: -20px; } */
/* #cc-public-portal .cc-carousel__next { right: -20px; } */

#cc-public-portal .cc-carousel__prev:disabled,
#cc-public-portal .cc-carousel__next:disabled {
  opacity: 0.4; /* Visible but disabled state */
  cursor: not-allowed;
  pointer-events: none;
  background: #f3f4f6;
}

@media (max-width: 768px) {
  #cc-public-portal .cc-carousel__prev,
  #cc-public-portal .cc-carousel__next { display: none; }
}
@media (max-width: 768px) {
  .cc-pagination__top { display: none; }
}

/* Indicatore mobile per suggerire lo swipe, senza spostare il focus della pagina */
/* Pulsante/hint "Scorri" sotto le card (mobile) */
.cc-carousel__hint-wrap { margin-top: 8px; text-align: center; }
.cc-carousel__hint {
  background: #fff;
  border: 1px solid #e5e7eb;
  color: #374151;
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
}
.cc-carousel__hint-wrap { display: block; }
.site-header nav .menu > li > a,
header nav .menu > li > a {
  position: relative;
  text-decoration: none;
  transition: color 0.2s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .site-header nav .menu > li > a,
  header nav .menu > li > a { transition: none; }
}
.site-header nav .menu > li > a::after,
header nav .menu > li > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.2em;
  width: 100%;
  height: 2px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.2s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .site-header nav .menu > li > a::after,
  header nav .menu > li > a::after { transition: none; }
}
.site-header nav .menu > li > a:hover::after,
.site-header nav .menu > li > a:focus-visible::after,
.site-header nav .menu > li.current-menu-item > a::after,
.site-header nav .menu > li.current-menu-ancestor > a::after,
header nav .menu > li > a:hover::after,
header nav .menu > li > a:focus-visible::after,
header nav .menu > li.current-menu-item > a::after,
header nav .menu > li.current-menu-ancestor > a::after {
  transform: scaleX(1);
}
.site-header nav .menu > li > a[aria-current="page"]::after,
header nav .menu > li > a[aria-current="page"]::after { transform: scaleX(1); }
.site-header nav .menu > li > a:focus-visible,
header nav .menu > li > a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
  border-radius: 2px;
}
.site-header nav .menu > li > a:focus:not(:focus-visible),
header nav .menu > li > a:focus:not(:focus-visible) { outline: none; }

#cc-public-portal .site-header nav .menu > li > a,
#cc-public-portal header nav .menu > li > a {
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .02em;
  border: none;
  border-radius: 10px;
  padding: 8px 14px;
  color: #1F2937;
  background: transparent;
}
#cc-public-portal .site-header nav .menu > li > a:hover,
#cc-public-portal header nav .menu > li > a:hover { background: #F3F4F6; text-decoration: none; }
#cc-public-portal .site-header nav .menu > li > a::after,
#cc-public-portal header nav .menu > li > a::after { display: none; }
#cc-public-portal .site-header nav .menu > li > a:focus-visible,
#cc-public-portal header nav .menu > li > a:focus-visible { outline: 3px solid #2563EB; outline-offset: 2px; }
#cc-public-portal .site-header nav .menu > li.current-menu-item > a,
#cc-public-portal header nav .menu > li.current-menu-item > a { background: #111827; color: #fff; }

#cc-public-portal .primary-menu > li > a,
#cc-public-portal .primary-menu li a {
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .02em;
  border: none;
  border-radius: 10px;
  padding: 8px 14px;
  color: #1F2937;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#cc-public-portal .primary-menu li a:hover { background: #F3F4F6; text-decoration: none; }
#cc-public-portal .primary-menu li a:focus-visible { outline: 3px solid #2563EB; outline-offset: 2px; }
#cc-public-portal .primary-menu li a::after { display: none; }
#cc-public-portal .primary-menu > li.current-menu-item > a { background: #111827; color: #fff; }

/* Ensure header menu is styled even if it's outside #cc-public-portal */
body:has(#cc-public-portal) .primary-menu li a,
body.public-area:has(#cc-public-portal) .primary-menu li a {
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .02em;
  border: none;
  border-radius: 10px;
  padding: 8px 14px;
  color: #1F2937;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Icona utente nel menù Portale Pubblico */
li.cc-menu-user > a {
  position: relative;
  padding-left: 28px;
}
li.cc-menu-user > a::before {
  content: "👤";
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  color: #2563EB;
  font-size: 16px;
  line-height: 1;
}
li.cc-menu-user > a:focus-visible {
  outline: 3px solid #2563EB;
  outline-offset: 2px;
  border-radius: 6px;
}
body:has(#cc-public-portal) .primary-menu li a:hover { background: #F3F4F6; text-decoration: none; }
body:has(#cc-public-portal) .primary-menu li a:focus-visible { outline: 3px solid #2563EB; outline-offset: 2px; }
body:has(#cc-public-portal) .primary-menu > li.current-menu-item > a { background: #111827; color: #fff; }

/* Block theme navigation support */
body:has(#cc-public-portal) .wp-block-navigation .wp-block-navigation-item__content {
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .02em;
  border: none;
  border-radius: 10px;
  padding: 8px 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body:has(#cc-public-portal) .wp-block-navigation .wp-block-navigation-item__content:hover { background: #F3F4F6; text-decoration: none; }
body:has(#cc-public-portal) .wp-block-navigation .wp-block-navigation-item__content:focus-visible { outline: 3px solid #2563EB; outline-offset: 2px; }

/* Primary menu container markup support */
body:has(#cc-public-portal) .primary-menu-container.header-menu-container #primary-menu.menu > li > a {
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .02em;
  border: none;
  border-radius: 10px;
  padding: 8px 14px;
  color: #1F2937;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
body:has(#cc-public-portal) .primary-menu-container.header-menu-container #primary-menu.menu > li { margin: 0 6px; }
body:has(#cc-public-portal) .primary-menu-container.header-menu-container #primary-menu.menu > li > a:hover { background: #F3F4F6; text-decoration: none; }
body:has(#cc-public-portal) .primary-menu-container.header-menu-container #primary-menu.menu > li > a:focus-visible { outline: 3px solid #2563EB; outline-offset: 2px; }
body:has(#cc-public-portal) .primary-menu-container.header-menu-container #primary-menu.menu > li.current-menu-item > a { background: #111827; color: #fff; border-color: #111827; }

#cc-public-portal .cc-carousel { display: grid; grid-auto-flow: column; --cc-carousel-gap: 16px; grid-auto-columns: clamp(280px, calc((100% - (3 * var(--cc-carousel-gap))) / 4), 360px); gap: var(--cc-carousel-gap); overflow-x: auto; padding: 8px 2px 12px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; -ms-overflow-style: none; scrollbar-width: none; cursor: grab; user-select: none; touch-action: pan-y pan-x; width: 100%; }
#cc-public-portal .cc-carousel::-webkit-scrollbar { display: none; }
#cc-public-portal .cc-carousel.is-dragging { cursor: grabbing; scroll-snap-type: none; }
#cc-public-portal .cc-carousel__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid #eee;
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  scroll-snap-align: start;
}
#cc-public-portal .cc-carousel__thumb img,
#cc-public-portal .cc-thumb-placeholder {
  width: 100%;
  height: 100px;
  object-fit: contain;
  background: #fafafa;
  border: 1px dashed #eee;
  border-radius: 4px;
}
#cc-public-portal .cc-carousel__name { font-weight: 600; color: #111827; text-align: center; }
#cc-public-portal .cc-carousel__sector { font-size: 12px; color: #6b7280; text-align: center; }
#cc-public-portal .cc-carousel-outer { position: relative; display: block; }
#cc-public-portal .cc-carousel-wrap { flex: 1 1 auto; width: 100%; }
#cc-public-portal .cc-carousel__prev,
#cc-public-portal .cc-carousel__next { appearance: none; border: 1px solid #e5e7eb; background: #fff; color: #111827; border-radius: 50%; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
#cc-public-portal .cc-carousel__prev { left: 4px; }
#cc-public-portal .cc-carousel__next { right: 4px; }
#cc-public-portal .cc-carousel__prev:focus-visible,
#cc-public-portal .cc-carousel__next:focus-visible {
  outline: 2px solid #2563EB;
  outline-offset: 2px;
}
#cc-public-portal .cc-carousel__prev:disabled,
#cc-public-portal .cc-carousel__next:disabled { opacity: 0.4; cursor: default; pointer-events: none; }
@media (max-width: 640px) {
  #cc-public-events .cc-carousel,
  #cc-public-offers .cc-carousel,
  #cc-public-sponsors .cc-carousel,
  #cc-public-top-sponsors .cc-carousel { grid-auto-columns: clamp(200px, calc(100% - 64px), 290px) !important; }
}
@media (max-width: 640px) {
  #cc-public-portal .cc-carousel-outer { max-width: 100vw; margin-left: auto; margin-right: auto; padding-left: 8px; padding-right: 8px; display: grid; grid-template-columns: 1fr auto auto 1fr; column-gap: .75rem; row-gap: 8px; align-items: center; }
  #cc-public-portal .cc-carousel-outer > .cc-carousel-wrap { grid-column: 1 / span 4; }
  #cc-public-portal .cc-carousel__prev,
  #cc-public-portal .cc-carousel__next { position: static; transform: none; }
  #cc-public-portal .cc-carousel-outer > .cc-carousel__prev { grid-column: 2; justify-self: end; }
  #cc-public-portal .cc-carousel-outer > .cc-carousel__next { grid-column: 3; justify-self: start; }
  #cc-public-portal .wp-block-group.alignwide { overflow: visible !important; }
  #cc-public-portal .cc-carousel-outer { overflow: visible; }
}
@media (min-width: 1024px) and (max-width: 1399px) {
  #cc-public-portal .cc-carousel { grid-auto-columns: clamp(280px, calc((100% - (3 * var(--cc-carousel-gap))) / 4), 360px); }
}
@media (min-width: 1400px) {
  #cc-public-portal .cc-carousel { grid-auto-columns: calc((100% - (3 * var(--cc-carousel-gap))) / 4); }
}
#cc-public-portal .cc-portal-menu { display: flex; gap: 12px; align-items: center; justify-content: center; margin-top: 12px; }
#cc-public-portal .cc-portal-menu__link { display: inline-flex; align-items: center; justify-content: center; padding: 8px 14px; border-radius: 10px; color: #fff; text-decoration: none; text-transform: uppercase; font-weight: 800; letter-spacing: .02em; -webkit-text-stroke: .6px rgba(0,0,0,.35); text-shadow: -1px -1px 0 rgba(0,0,0,.35), 1px -1px 0 rgba(0,0,0,.35), -1px 1px 0 rgba(0,0,0,.35), 1px 1px 0 rgba(0,0,0,.35); }
#cc-public-portal .cc-portal-menu__link:hover { background: rgba(255,255,255,.15); text-decoration: none; }
#cc-public-portal .cc-portal-menu__link:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

#cc-public-portal #events-title,
#cc-public-portal #offers-title,
#cc-public-portal #sponsors-title { scroll-margin-top: 96px; }

/* Generic carousel styles to ensure horizontal layout outside #cc-public-portal as well */
.cc-carousel { display: grid; grid-auto-flow: column; --cc-carousel-gap: 16px; grid-auto-columns: clamp(280px, calc((100% - (3 * var(--cc-carousel-gap))) / 4), 360px); gap: var(--cc-carousel-gap); overflow-x: auto; padding: 8px 2px 12px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; -ms-overflow-style: none; scrollbar-width: none; width: 100%; }
.cc-carousel::-webkit-scrollbar { display: none; }
.cc-carousel__item { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px; border: 1px solid #eee; border-radius: 8px; background: #fff; text-decoration: none; scroll-snap-align: start; }
.cc-carousel-outer { position: relative; display: block; }
.cc-carousel-wrap { flex: 1 1 auto; width: 100%; }
.cc-carousel__prev, .cc-carousel__next { appearance: none; border: 1px solid #e5e7eb; background: #fff; color: #111827; border-radius: 50%; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.cc-carousel__prev { left: 4px; }
.cc-carousel__next { right: 4px; }
.cc-carousel__prev:focus-visible, .cc-carousel__next:focus-visible { outline: 2px solid #2563EB; outline-offset: 2px; }
.cc-carousel__prev:disabled, .cc-carousel__next:disabled { opacity: 0.4; cursor: default; pointer-events: none; }

html:has(#cc-public-portal) { background-color: #fff !important; }
body:has(#cc-public-portal) { background-color: #fff !important; }
body:has(#cc-public-portal) .wp-site-blocks { background-color: #fff !important; }
body:has(#cc-public-portal) .site { background-color: #fff !important; }
body:has(#cc-public-portal) .content-area { background-color: #fff !important; }
/* Ensure ClubConnect variable background is white on public portal */
body:has(#cc-public-portal) { --cc-color-bg: #FFFFFF !important; --cc-color-surface: #FFFFFF; }

/* Text alignment for Gutenberg sections (Sponsor/Events/Offers) */
.wp-block-group.alignwide .wp-block-heading#sponsors-title,
.wp-block-group.alignwide .wp-block-heading#events-title,
.wp-block-group.alignwide .wp-block-heading#offers-title { text-align: center; }

.wp-block-group.alignwide .wp-block-heading#sponsors-title ~ p,
.wp-block-group.alignwide .wp-block-heading#events-title ~ p,
.wp-block-group.alignwide .wp-block-heading#offers-title ~ p { text-align: center; margin-left: auto; margin-right: auto; max-width: 72ch; }

.wp-block-group.alignwide .wp-block-heading#sponsors-title ~ .wp-block-buttons,
.wp-block-group.alignwide .wp-block-heading#events-title ~ .wp-block-buttons,
.wp-block-group.alignwide .wp-block-heading#offers-title ~ .wp-block-buttons { justify-content: center; }
